shimashimaの日記: [ソフトウェア工学]人月の神話 5
日記 by
shimashima
すでにソフトウェア工学の古典となっている「人月の神話」。この中で紹介されている有名な法則として、遅れているプロジェクトに要員追加を行うとより遅れるというものがある。
この話はソフトウェア開発に身を置くものであればたいていの人は同意するだろうし、一定の条件下ではたしかにその通りだろう。(既存メンバの数倍の投入を行い、プロジェクトの再構成を行う場合はこの限りではない)
だが、タイトルになっている「人月の神話」の本質はそこではない。
「人月(man-manth)」という言葉が「要員数×時間(月)」という計算式であらわされた作業量だとしても、そこに人とと時間の可換性はなりたたないということだ。つまり、作業量300人月とされたとしても一月で300人動けばできるかといえばそうではないということだ。
商取引の金額を求めるための人月としての役割はある、人月で出された工数自体に意味はないということを理解しなければならない。
Capers Jones先生のFirst Order見積もりも、すこしずれるがみてみるといいだろう。
規模(単位はFP)に応じてミニマム必要な期間を割り出すことができる。
なんとなく、ブルックス先生の新刊「The Design of Design」の邦訳がでるので書いてみた。
開発工期 (スコア:1)
http://www.atmarkit.co.jp/news/200806/26/juas.html [atmarkit.co.jp]
「標準の開発工期は投入人月の立方根の2.4倍である」
とか、人月からざっくり工期を出す計算式は割りと見る気がする。
Re:開発工期 (スコア:1)
つまり開発工期を x, 投入人数を y とすると
って感じか。
…ん?これだと人数が1の時ですら、必ず1年以上かかるプロジェクトになるなぁ…。
# もちろん、人数が 2 以上だと、さらに大きな数字になる。
「よし。では技術者A をこのプロジェクトには 1/10 だけ関わらせることにしよう。そうすれば 0.13824 ヶ月の開発工期で完成するぞっ。
おいっ、他に後9個、このクラスの開発事案もってこい。」
fjの教祖様
Re:開発工期 (スコア:1)
x^2 = ( 2.4^3 ) * y で
x = sqrt(13.824) * sqrt( y ) ≒ 3.718 * sqrt( y ) では?
あとsqrt(0.1)≒0.316なので
13.824 * 0.316 ≒ 4.372
で4.372ヶ月の開発工期では?
#もっと根源的な部分で違和感があるのだけれど、いまいち表現しきれない。。。
Re:開発工期 (スコア:1)
二行目から計算を間違えていますよ。
になるのでは?
つまり、1人プロジェクトなら1人月くらいで1ヵ月くらいが「標準的」というのが IPA 的結論になるはず。
Re:開発工期 (スコア:1)
あ〜、すみません、当方が計算を間違えていました。
# 工数 = 工期×人数 という定義には噛みつく余地があると思うけど
# それはまた別の話。