設計書

仕事でも趣味でも、設計書を書いてプログラミングするということがあまりない。
そもそも、プログラミングに必要十分な設計書を書くには、コードを書くより時間がかかる。理由は、コンピュータに必要な厳密さを記述するには、日本語よりプログラミング言語の方が効率的だからだ。一般的に言っても、設計書は不完全な状態のまま、コードを書いた方が効率的だろう。
当然、不完全な設計書で設計が完了しているわけではない。すなわち、効率的な開発において、コーディング作業とは、設計作業を含んでいる。設計の細部を詰めることにより、(データ構造の変更など)基本方針が変わることもありうるが、それをおそれていないし、むしろ(前進しているならば)楽しい。

チーム開発の場合でも、全体を私が作って細部を任せることが多い。その場合の設計に当たるのは、書きかけのクラスと説明に使ったホワイトボードだ。

ソフト開発は工場で作成するようにはいかない。
誰でも部品を組み合わせて開発できるようになるのは、数年後か数十年後かには可能になるだろうが、今は無理だ。
実現するには、人間のように自分で考える部品が必要だ。知能を持って限りなく単純な必要がある。