人月の神話【新装版】

人月の神話【新装版】
2005/07/26 記
 コンピュータソフトウェア構築プロジェクトに関わる全ての方々に勧められる、素晴らしき古典。ブルックスの名言、そして編集者の熱い解説付き。

 まず最初に『これはエッセイなんだ』というブルックスからの言葉に驚く。この本は何かしらの手法を解説するために書かれた本ではなく、ブルックス本人の経験から書き起こされたエッセイなのだ。だから僕は、(この日記がそうであるように)似たような事をやっていたブルックスに共感し、強い興味を覚えた。この偉大なる先人はOS開発(System/360)において、何を感じ、何を考えていたのだろうか? そんな風に、僕はかなり楽しみながらこの本を読み進めていた。もちろん、今となっては古くさすぎる様な話も出てきたりもするが、しかし、大部分は今でも通用する内容になっている。それは恐らく、ブルックス本人の鋭さと、そして同じような問題に直面したとき、人間のとる行動が大きく様変わりしたわけではない、と言うことなのだろう。

 まず、最初に目につくのが、第1章でもある『タールの沼』だ。ソフトウェア開発というものはタールの沼のように開発者をがんじがらめにからめとって、身動きできなくさせてしまう。それくらいとても複雑で難しい。まず、そのことを自覚させられる。かといって近づくなと言っているわけでもない。ソフトウェア開発は様々な要素が複雑に絡み合い、もがけばもがくほど身動きがとれなくなってしまう『タールの沼』ではあるけれど、けれどそこには、何かを作り上げる楽しさ、喜びもまた、存在している。では、何が楽しさで、何が『タールの沼』なのだろうか? その二つをブルックスは定義している。

 続いて、本のタイトルにもなっている『人月の神話』について。もし、人月という概念が全く正しいとしたら、人と月が交換可能でなければならなくなってしまう、とブルックスは指摘する。200人で5年かけてソフトウェアを開発するプロジェクト=12000人月のプロジェクトは、では果たして2000人を集めれば半年で作成可能だろうか? それとも不可能だろうか? そして、そこに絡む要素として『分割可能な仕事/分割不可能な仕事』『コミュニケーション』『学習期間』などを交えつつ、人月という考え方が完全ではない事を指摘する。

 そして第3章。僕が最も感銘を受けた部分、『外科手術チーム』の章。ソフトウェア開発において重要なのはコンセプトの完全性にあるとブルックスは主張し、その完全性を保つために10人で編成される『外科手術チーム』の様な構成のチームを作ってはどうか? と一つの案を紹介してくれた。ハーラン・ミルズの『主任プログラマチーム』という方式(本にもなっている。未読)だ。みんながそれぞれに作るのではなく、執刀医のように、たった一人の人間が全てを決め、周りの人間はそれを補佐する立場に徹する、という案だ。執刀医は意見を求めることが出来るが、聞いた意見を必ず採用しなくても良い。確かにこれなら一貫した完全性のあるコンセプトを保ちながらシステム構築を行うことが出来る。建築業界ばかりでなく、医療業界からも学べるものがたくさんあるのかも知れない。

 その、コンセプトの完全性――一貫したアーキテクチャ、という言葉は、その後も度々出てくる。ブルックスにとってはそれが強く気になることのようだ。もちろん、その他にもコミュニケーションの重要性、セカンドシステム症候群、ツール類を活用すること、プロジェクト破綻の予兆、等々、多くのことが分析され、定義され、まとめられている。その多くが示唆に富み、今でもなお参照すべきだけの価値を持ち続けている。


 最初にも書いたとおり、この本はソフトウェア開発に関わる全ての人に進められる素晴らしい古典だ。もし、まだ読んだこと無いのであれば、是非とも読むことをオススメする。この本が長い間読み続けられ、そして新装版として復刻するだけの価値を含んでいることが、よく解るはずだ。とはいえ、矢張り、現時点で最高にお薦めしたい本は『ソフトウェア開発プロフェッショナル』であるのは揺るぎないが。
Back