人月制度についての個人的なメモ

私の仕事の究極の目標は、現在の人月制度に代わるビジネスモデルを作り上げることです。ところで人月制度とは、この業界でいつ頃からはじまったのでしょう。この資料を見つけていませんが、私の予想では COBOL による業務アプリケーション開発がスタートした 1950 年代後半には、すでにあったのではないか?というものです。日本でも 1960 年代には使われていたはずです。

当時、人月制度が正しく(意図どおりに)機能していたのではないか?という仮説を立ててみます。その根拠は次のとおりです。

  • プログラマーのスキルに差がなく、経験によって能力を把握できた。例えば 3年選手より10年選手の方が、より多くのプログラムコードを書くことができるという常識が通用した。
  • 工数の把握が容易であった。業務アプリケーションは給与計算、販売管理など手計算のモデルの電子化が主であり、アプリケーションの対象ドメインが似通っていたため、類似プロジェクト経験に基づく工数積算が行えた。

では、この制度が怪しくなるきっかけは何か? これは UNIX と C 言語の登場だと考えました。時期的には 1972 年あとでしょうか。C 言語はプログラミングスキルによって、10倍以上の生産性が出せるという現実をつきつけます。また、新人でも優れたプログラムを書けることもある、という下克上も産み出したはずです。

ちなみに人月が必ずしも機能しないという指摘をフレデリック・P・ブルックス・Jrが行った「人月の神話」が書かれたのは 1975 年。この頃すでに人月制度の見直しが提案されたと理解しています。
http://www.atmarkit.co.jp/aig/04biz/mm.html

そして現在の開発(特にWebアーキテクチャを前提とした業務アプリケーション開発)はどうなっているかというと:

  • プログラマーのスキルに雲泥の差があることが常識となった。
  • 技術の変遷がはやく、経験年数をもって単価を設定することができない。
  • 工数積算はより複雑になっており、未経験のプロジェクトであれば、見積は不可能に近い。
  • 同程度のスキルをもったプログラマーを大量に確保することが難しい。

ということで、人月制度とは相容れない環境にあるはずなのですが、まだ代替案が出ていないのが現状です。

なぜ代替案を出すことができないのでしょう。これはプロジェクトを請け負うという受託ビジネスの根本に関わってきます。契約から納品に至る、受託ビジネスの構造と人月制度は一体化しています。部分的な改善ではなく、このビジネスモデルそのものについて、請負ではない新しい方式をつくりださないといけないということになります。