Murayama blog.

プログラミングと、その次の話

COCOMOによる実現性の評価

COCOMOの数式を使って見積もった開発工数から最適開発期間を求めます。
最適開発期間ってのは名前のとおり、最適な開発期間。


最適開発期間

最適開発期間 = 2.5 × (開発工数) ^ 0.35


この公式から最適な開発期間は

10人月 => 5.6ヶ月
100人月 => 12.5ヶ月
1000人月 => 28.1ヶ月

と推測できます。
100人月の作業は12.5ヶ月でスケジューリングするのが良い、ってことになります。

ちょっと考察してみると、、
要員数は10人弱くらいでまーまー妥当なかんじがします。
あまり、要員が増えすぎるとコミュニケーションコストやら管理コストやらかかるし。
余談だけど、コミュニケーションコスト、管理コストを定量化するのはどうするんだろ。


1000人月の作業は28.1ヶ月。
これも単純に割り算して要員数を求めると35人くらい。
規模が大きくなると失敗しそうな気がしてきた。


で、次に、要求開発期間率ってのを求める。
実際の開発現場で要求される開発期間(要求開発期間)と、先ほどの最適開発期間の比率を出す。

要求開発期間率 = 要求開発期間 / 最適開発期間


先ほどのサンプルを例にして、工数が100人月の作業に対して、最適開発期間を見積もると12.5ヶ月でした。
要求開発期間が10ヶ月だとすると、要求開発期間率は79%になります。


この要求開発期間率は、多くても、少なくても工数は増加すると言われています。*1
特に、少ない場合(100%を切る場合)は工数増加率も高まります。*2
また、75%を切る場合、作業の達成は困難であると言われています。


参考

本当に使える見積もり技術―ソフトウエア開発を成功に導く

本当に使える見積もり技術―ソフトウエア開発を成功に導く

*1:COCOMOの生みの親(ベームさん)曰く

*2:工数増加率の数式を調査中。。