とってもつまらない独り言ですが。(^^;)最近になってようやくソフト開発における設計の重要性を感じるようになってきました。きっかけはソフトウェアの見積もりを今まで以上に正確に算定し始めたことにあります。見積もりを正確にするということは工数を正しく算定することであり、言い換えると現実とのぶれを小さくすることともいえます。ぶれを小さくするためにはリスクファクターを抽出し、その解決策を事前に持っておく、もしくは工数に入れておく必要があります。見積もりを正確に算出することはとても重要だと思います。プロジェクトの採算割れを防ぐだけでなく、プロジェクト全体に余裕が生まれ、バグが少なく、高品質のアプリケーションの開発が可能になります。ところで、ソフトウェアの設計は根性やパッションによって失敗を(ある程度)補うことも可能であるため、建築設計に比べ、その重要性が認識されるには多くの時間がかかるかもしれません。たとえば、コンピュータの性能の向上。このおかげで多少パフォーマンスが低くても、買い換えでどうにかなります。部品も同様で、建築部品だと買い直しが必要ですが、ソフトウェア部品は元手をかけずに生産できるものなので、プログラマの努力次第でどうにかなります。これがかえって設計を甘くする要因になっているのかもしれません。今までの私の設計手法は「仕様変更しやすい設計」に重きを置くものでした。つまり、部品として使いやすい部品を作ることが目的でしたが、最近ではリスクを把握するために設計を行うようになりました。それは前述の通り、正しく見積もり行うためです。それにしても、設計はあくまでも顧客にとって有益なアプリケーションを開発するための一手段であり、全体の一角にすぎません。本当の目標はこれだけでは達成できないことにソフトウェア開発の奥深さを感じます。