ソフトウェア開発はなぜ難しいのか 「人月の神話」を超えて (ISBN:4774140287)

ブルックスの「人月の神話」は、ソフトウェア開発に携わる人なら、読んで損の無い、ためになる、そして面白い本です。
OS/360のマネージャであったブルックスが、いわゆるデスマーチプロジェクトであったOS/360開発プロジェクトで得た教訓を本にしたためたもので、ソフトウェア開発の困難を解決する万能な解決策が無い事を示した「銀の弾丸などない」というフレーズが特に有名です。
で、「人月の神話」の解説書?として登場したのがこの本です。構成としては、前半で「人月の神話」で挙げられている「神話」の解説を、後半でこれまでの技術/マネジメント手法がどう対処して来たか、これからはどうなっていくか、についての解説がなされています。
ただ、読んでみて分かったのですが、「人月の神話」の内容をつまみ食いして、著者が自分の言いたい事をいっている本でしかありませんでした。残念ながら、これなら、原著を読んだ方が100倍マシです。いくつか問題のある箇所を書くと

  • 原著の注釈箇所について自説を多く混ぜすぎ
    • 例えば、ソフトウェア開発の本質的な困難さのうち、「複雑性」に関する説明において、原著(ISBN:4894716658)では、複雑性の増加は、ソフトウェアの要素と状態の規模が拡大する事である旨の記載があります。しかし、こちらの本には、要素の規模拡大、と取れる箇所はあるものの、状態の規模拡大、と直接的にとれる箇所はありません。
    • 原著と完全に違う事を書いている訳ではないのですが、かなり独自の説が入っている事は確かです。例えば、まとめの箇所に「ソフトウェア開発には<<製造>>の概念はない」などと記述されていますが、原著にはそんな記述は見つかりません。原著とはニュアンスの異なる記述がかなり多いため、この本を読んで得た理解が原著の理解と直結しない事は抑えておくべきです。
  • 「真鍮の弾丸」オブジェクト指向プログラミングに関する記述がほとんど無い
    • 失礼ながら、この本の著者はオブジェクト指向に関する話題は不得手なのかな?と邪推してしまいます。生産性の指標としてステップ数を用いている記述がやたら多いですしね(OOPではステップ数で労働量を測る事はできたとしても、生産性を測る事は出来ない、というのは定説です)。
    • 原著の中で、オブジェクト指向プログラミングに関しては、大きな期待と、その限界に関する記述が多くなされており、「銀の弾丸」とはいわないまでも「真鍮の弾丸」として期待される重要な技術として扱われています。が、この本にはほとんどオブジェクト指向に関する記述はありませんでした。なぜ、「人月の神話」を扱っておきながら、オブジェクト指向を無視するのか、私には全く分かりません。
    • ここ20年程度のソフトウェア開発技術を語る上でも、これから少なくとも10年程度のソフトウェア開発技術を語る上でも、最も重要なファクターの一つである事は間違いないオブジェクト指向を無視して、何を語れるというのかと、私は強く思います。
  • ほとんど「銀の弾丸」扱いされている、パッケージソフトウェアに関する記述もほとんど無い
    • 原著内の「人月の神話から二十年を経て」という、最新の論文では、パッケージソフトウェアの事を「概念構造体を作り上げる事の本質を攻略するものだから、急速に成長していくことだろう。」とまで絶賛してます。が、こちらの本にはやはりその事に関する記述はあまり見られません。
    • パッケージソフトウェアについて語れない以上、その延長線上にあるクラウドコンピューティング(特にSaaS)についても語れていないのが、残念ながらこの本の水準です。

この本では、現代のソフトウェア開発に関するトピックをいくつか取り上げており、そこそこ読めなくもないのですが、教科書レベル以上の説明は見られず、しかも全体的につまみ食い程度の説明でしかないため、残念ながらあまり考えを深める契機にはなりませんでした。
余談ですが、「プログラミング言語の系譜」と称した図で、プログラミング言語の進化の過程が記されていたのですが、これがまたかなりの失笑ものだったので、この図にツッコミを入れてお酒を飲みたい方にのみ、この本をお薦めする事にします。それ以外の方は迷わず原著を買った方が良いと思います。別に難しい本でもないですので。