ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
コーディングの向こう側

設計ってナンダ? - PART2

ここで差がつく度

設計は何のため?

設計をすることが最終目的ではないので、本当のことを言うと、必要でないなら設計はしなくても構いません。設計なしで問題なく要求通りに作れるというなら、やるだけ時間の無駄です。でも多くの場合、そううまくはいきません。むしろ設計をしない方が時間を無駄にするはずです(プログラムは必要以上に複雑になってバグだらけ、そのあげく休日出勤や長時間の残業をしないと期限に間に合わなくなったりということが起こるでしょう)。

結論を言えば、設計は楽をするためにあるのです。設計がない状態より、だれかがきちんと設計した後の方が作るのが楽でしょう?

私は、ソフトウェアを作るという行為と家を建てるという行為が、とても似ているような気がしてなりません。どんな家にするかが決まれば、あとはその通りの家が完成しさえすればお客さんは文句ないでしょう。だからといって、大工さんはいきなり作り始めたりしないでしょう。その前に設計図を書いて、材料や作り方の方針を注意深く考察して、効率よく作業ができるような計画を練るはずです。

目的ではないが、必要なもの

繰り返しますが、設計すること自体は目的ではありません。設計は単なるツールです。それは仕様変更の痛みを和らげるツールであったり、作業量を減らすためのツールであったり、メンテナンスを簡単にするためのツールであったりします。もちろん、本当の目的はお客さんが喜んでお金を払ってくれるようなものを作ることですから、そのために意義のある仕様を考え、また、その仕様をなるべく効率よく実現できなければなりません(効率が悪ければ儲けが出ないので意味がありませんね)。設計は、仕様を効率的に実現するためのツールなのです。

--- 設計は、ツール(道具)なり ---

さて、設計をすること自体が目的ではないとすると、いったい何を目的にして設計したら良いのでしょうか?え、矛盾してないかって?いやいや、設計自体はプロジェクトの最終目的ではないけれど、設計をするという行為には当然目的があります。たとえば、「分割」がその一例であることはすでに述べた通りです。そしてほかにもいくつもの目的があります。

というわけで、次回からは設計の目的を明らかにしていきます。

前へ

目次へ
目的を決めよう

(「コーディングの向こう側」は2000年4月から2001年5月にかけて作成されたコンテンツです。)