ソフトウエア開発

近況ですが、java での開発から C/C++, JavaScript を使った開発が今はメインになっています。 現在、ざっくりとした要求仕様から、[基本仕様]-[詳細仕様] が確定していない状態で開発するスタイルが板に付いています。実装(コーディング)前の設計段階で、…

関数型言語を採用する時の壁

副作用のない処理、パターンマッチ、ケースクラス、ファーストクラス関数、高階関数、クロージャ、カリー化、関数部分適用、末尾再帰、アクター、並列処理、型推論.. それぞれが関連しあって簡潔なコードが書けて、副作用によるバグも減少できるメリットがあ…

Linux + java開発に戻ってきました。

ブランクは約1年ですね。 昨年の10月ぐらいから、Windows + PHP や NORTi + C の開発をやっていたのですが、 先月からLinux & java の開発プロジェクトに戻ってきました。やはり自分にはこの取り合わせでの開発が合っているように思います。

テストフェーズでの仕様変更に注意

以前は、単体テストの仕様書も作成していたが、最近は単体テストの仕様書は作成していない。以前といっても数年前だが、今は単体テストにJUnitを、使用するようにしている。 単体テストの有効性は、結合テスト時に、発生するNG項目の原因が限定しやすくなる…

時間効率と要求仕様

時間効率よく、ソフトウエア開発の仕事を行うには、要求仕様を矛盾なく、過不足なくまとめて文書化することが、最重要という認識がさらに強まった。 仕様は、固定化されるものではないので、常に変更される可能性が高い。しかし、だからと言って、要求仕様を…

 バージョンアップ

プログラムの見通しの良さと、仕様の明確化及び確定が、短期の修正バージョンアップを成功に導くと強く感じる。仕様もはっきりせず、以前の開発時のドキュメントもなく、そして既存のプログラムの内部が複雑怪奇な場合は、赤信号点滅です。しかし、このパタ…

コミュニケーション

ソフトウエア開発の仕事をしていて、一番大切だと思うことは、意思の疎通である。 仕様の質問、進捗の確認、機能の説明、等とコミュニケーションが必要となる場面は、多いはずなのに、一日中、PCに向かって、ほとんど何もコミュニケーションをとらないプロ…

過剰な作業量と責任感?

プロジェクトでの開発作業が一人の開発者に集中するケースでは、そのチームは、別のプロジェクトでも、同じパターンにはまっています。原因として考えられること 作業が集中する開発者は、技術的スキルが高く責任感も強い。 チーム内に開発経験の浅い技術者…

業務アプリケーション

業務アプリケーションは、実装方法やプラットフォームがかわっても、業務の知識やノウハウは、かわることがほとんどない。RDBMSがSQL ServerやOracleであったり、開発言語がCOBOLやVBやjavaであったりしますが、業務の知識は不変です。そういう意味では、業…

過去の資産

ソフトウエアの開発では、過去の資産を生かすという大義のもとに、見通しの悪い構造で不安定な過去の資産を、流用するはめにおちいることがあります。これには、できるかぎり抵抗して、できるだけ過去の負債を引き継がないようにする必要があります。が、不…

要求仕様書

過去に同じような、業務アプリケーションを作成したということで、ユーザーからのヒヤリングの後、業務フロー、要求仕様書、基本設計書のドキュメントを作成せずに、プログラミング作業に移行するのは、やはり問題が多い。何をシステムで実装したいのか、明…

Webアプリケーションのクライアント

Webアプリケーションのクライアントは、やはりブラウザで、HTML+JavaScript+CSSで開発するのが主流です。ブラウザを使うと、通常のGUIアプリケーションに比べて、操作性が良くないと、時々、批判を受けますが、そんなに悪くないです。ブラウザをIEに限定すれ…

なぜトラブルのか

ソフトウエアの開発の仕事をやっていて、トラブルが発生しているプロジェクトに遭遇することがあります。プロジェクトのトラブルが明確になるのは、ソフトウエア開発途中で具体化するケースと最初からトラブルを予感させるケースがあります。 最初からトラブ…