最近、久しぶりに『人月の神話』という書籍を読み返して、改めて「やはりこの本はスゴイ」と感動したので、その内容をシェアしていきます。この書籍は私のようにSI業界で働いている人なら、一度は読んだことがあるでしょう。それほどとても著名な本なのです。
SIとはSystem Integrationの略で、簡単に言えば「システムを導入しようとしている顧客の面倒を最初から最後まで全部みる」という意味になります。
顧客の権限がやたら強くて、「締め切り厳守」をSI企業に押し付けた場合、SI企業はついつい投入する人員の数を増やして対応しようとします。しかし、それは間違いです。その間違いをより論理的に指摘したのが『人月の神話』になります。
この書籍で語られている概念は、IT企業で働いている人や投資を考えている人はもちろん、複数人で仕事をしている人なら誰でも知っておくべきことだと思います。(『ウォーレン・バフェットに学ぶ!1分でわかる株式投資~雪ダルマ式に資産が増える52の教え~』東条雅彦)
デスマーチに援軍は逆効果。スケジュール遅れへの正しい対応とは
プロジェクト失敗の本質は今も昔も同じ
『人月の神話』(にんげつのしんわ)という書籍をご存知でしょうか? この本は「ソフトウェア工学のバイブル」と呼ばれている伝説の書籍です。
システム開発の現場でプロジェクトマネージャーを務めている人がこの書籍を読んでいなかったら、「もぐり」だと言われています。それ程、とても有名な書籍なのです。
私も仕事柄、複数のプロジェクトを管理している関係上、10年程前にこの書籍は熟読しました。さすがにソフトウェア工学の古典と言われるだけあって、読みにくいと感じました。
しかし、そういう読みにくさを吹き飛ばす衝撃がありました。それはこの書籍の古さにあります。『人月の神話』が最初に出版されたのは、なんと今から42年前の1975年。
著者のブルックスの考察は、自身がIBMで「OS/360」というオペレーティングシステムの開発に携わったときの失敗に基づいています。ブルックスが経験した42年前の失敗事例が、現在でもほぼそのままの形で再現されてしまっているのです。
そのため、プロジェクトマネージャー、システムエンジニア、プログラマーの人が『人月の神話』を読むと、思わず唸ってしまいます。
この42年もの間にシステムを構築するための開発ツール、プログラミング言語、開発手法は劇的に変化しています。ただし、システム開発におけるプロジェクトの失敗の本質は今も昔も同じです。
ブルックスの法則とは?
この書籍の主張は至って単純明快です。タイトルの通り、プログラマーの失敗の原因は「人月」という考え方を使って見積もりをしているからであるとします。
人月(にんげつ)とは、1人が1か月で行うことのできる作業量(工数)を表す単位です。システム開発だけではなく、土木・建築の現場などの事業の作業工数見積もりにも使われている単位です。
例えば、Aというシステムを作るのに、1人のSEが2ヵ月の作業を必要とするので、2ヵ月分の人件費をお客さんに請求するというような使われ方をします。
<例>
システムAを作るための費用:SEの1ヵ月あたりの単価50万円×2ヵ月=100万円
ただ、ブルックスは、この人月という概念には大きな問題点が潜んでいると考えています。具体的には次のように指摘しています。
私たちが使っている見積もり手法は、コスト計算を中心に作られたものであり、労力と進捗を混同している。人月は、人を惑わす危険な神話である。なぜなら、人月は、人と月が置き換え可能であることを暗示しているからである。
出典:『人月の神話』(著:フレデリック・P・ブルックス Jr/刊:丸善出版)
『人月の神話』で最も有名な主張は、「ブルックスの法則」と呼ばれているものです。
ブルックスの法則:遅れているソフトウェア・プロジェクトに人員を投入しても、そのプロジェクトをさらに遅らせるだけである。
出典:同上
おそらく、この現象はシステム開発に携わる人であれば、誰でも一度は経験しているはずだと思います。さらに言えば、システム開発だけではなく、一般的なプロジェクトでも同じはずです。
ブルックスはこの法則が成り立つ理由を次のように分析しています。
ソフトウェア・プロジェクトに人員を追加すると、全体として必要となる労力が、次の3つの点で増加する。
すなわち、再配置そのものに費やされる労力とそれによる作業の中断、新しい人員の教育、追加の相互連絡である。出典:同上
この部分が、ブルックスが最も主張したかった点だと思われます。