人月の神話 新装版 --狼人間を撃つ銀の弾はない

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)
下記の感想は一読した上で読み返しも無く書いただけなので、ひょっとしたら文意を大幅に取り違えて解釈している可能性があるということだけは記しておきます。
人月の神話 新装版を読みました。ソフトウェア開発は本質的な部分(設計)と偶発的な部分(実装)に分けられ、ソフトウェア開発をタールの沼たるものとしているのは前者の設計であり、まさにそうであるからこそ、スケジュール調整の為の人員追加には意味が無い、とする話でした(設計には貴族政治が重要という意見も述べています)。ただ現実問題として少人数で大規模プロジェクトを行なうというのも現実的ではないわけで、正しい期間の見積もりを行なうことが非常に重要であり、見積もりがずれてきたときに人員を追加しても問題の解決には全く役に立たないという意味で、「人員追加には意味が無い」と言っています。ただ僕には、人員を追加してもスケジュールが全く縮まらない、との説は信じられなかったです。実際、「コストは高くつくが、納期を早められる事もある」程度であるという検証(反証?)結果が、最後のほうで上げられていました。
スケジュールについてのブルックスの説はそういう意味で机上の論理ゲームに寄り過ぎている所はあると感じられるけれども、設計と実装における設計が非常に重要であるという主張は経験上確かに納得がいきます。ただブルックスは念頭に開発工程として「ウォーターフローモデル」を想定していて、その想定においてはもちろん前設計の重要さは大きくなるだろうから、ブルックスの放つ熱意からある程度差し引いて受け止めなくてはならないでしょうけれど。
時代の流れか、新装版(本書)で追記された部分ではウォーターフローモデルよりも漸次的(インクリメンタル?)開発モデルを推しているのが面白かったです。漸増的開発モデルのメリットとして、すぐそこに動くものが出来る事の開発者へのやる気への好影響を指摘しています。学生実験においても、設計方法を変えた効果は非常に顕著だったと述べていました。
漸増的開発に関連して興味深かった指摘が、「プロトタイピングと漸増的開発は関連しているものの、全く異なる」というものであった。この指摘を読んで、僕はこの2つを混同していることに気づきました。後に続く、「出荷に向けて成長している製品の一部分には全然なっていないプロトタイプを構築することは可能だ」という一文が、プロトタイピングと漸増的開発の性質の違いを鋭く言い表していると思いました。ブルックスの言う漸増的開発というのは今でいうXP開発手法の一側面を表したものなのかも知れません。XPに詳しくないので断言は出来ないですけど。
この本はプロジェクトの進め方についての興味深い示唆に富んだ本であり、これを読んだからコーディングが上手くなるという話ではなく*1、今の僕にどれほどの直接的影響があるかは不明です(ただオタクとしての教養が増えただけかもしれない)が、色々考えさせられる本であったというのは確かでした。お勧めです。

*1:それが目的ならCODE COMPLETEがお勧めです