人月の神話
1960年代初頭、フレッド・ブルックスはIBMのSystem/360コンピューターシステムの開発プロジェクトを統括した。プロジェクト終了後、彼はその経験を『人月の神話』という本にまとめた。1975年の出版以来、ソフトウェア開発において最も影響力のある一冊になった。2026年に読み返してみたところ、いくつか時代遅れになっているところもあったが、今でも有効な教訓が数多く含まれていた。
この本にはブルックスの法則「遅れているソフトウェアプロジェクトへの要員追加はさらに遅らせるだけだ」が含まれている。ここでの課題はコミュニケーションにある。要員が増えるとコミュニケーション経路が指数関数的に増加する。コミュニケーション経路を適切に設計しなければ、作業はたちまち混乱に陥る。
私が本書で印象に残っている教訓は「コンセプトの完全性」の重要性である。
(書籍からの引用)コンセプトの完全性こそシステムデザインにおいてもっとも重要な考慮点だと言いたい。一つの設計思想を反映していれば、統一性のない機能や改善点などは省いたシステムの方が、優れていてもそれぞれ独立していて調和のとれていないアイデアいっぱいのシステムよりましである。
(独自の翻訳)システム設計において、コンセプトの完全性が最も重要な考慮事項であると強く主張したい。例外的な機能や改良を省いているが、設計思想に一貫性のあるシステムと、優れたアイデアがいくつも盛り込まれているが、それらが独立しており、うまく調整されていないシステムであれば、前者のほうが望ましい。
コンセプトの完全性は「簡潔さ(simplicity)」と「直截(straightforwardness)」から生まれるとされている(後者は要素を容易に組み立てられるかどうかである)。この考え方は私のキャリアに大きな影響を与えた。コンセプトの完全性の追求が、私の多くの仕事の基盤となっている。
できれば20周年記念版を入手してほしい。さらに影響力の大きい1986年の論文「銀の弾などない」が収録されているからだ。