求められる見積りとは
見積りの多くはKKD(勘、経験、度胸)に基づいて行われているのではないでしょうか。これは「予想」です。見積りには、「予想」ではなく「予測」であること、つまり「科学的、客観的であること」と「論拠を第三者に説明可能であること」が求められています。
これは、プロジェクトを実施する立場から見ると「プロジェクトマネジメントのベースラインとなる精度の高い見積り」、お客さまとの関係で見ると「顧客と合意のできる論拠の確かな見積り」ということになります。
COCOMOの概要と基本的な考え方
まず、ソフトウェア開発における見積りの基本的な手順は次のようになります。
- 要件から規模の見積りを行う。
- その規模から工数の見積りを行う。
- その工数から期間の見積りを行う。
COCOMOのカバー範囲は「工数の見積り」と「期間の見積り」です。
COCOMOの概要
COCOMOは「COnstructive COst MOdel」の略であり、ソフトウェア開発の規模に基づいて工数と開発期間を算出するモデル式です。
COCOMOは、システムの規模と開発工数の関係をモデル化して、プロジェクト実績によってモデルを精密にしていく手法です。精密化の段階では、統計解析の一種である回帰分析を利用します。COCOMOのもう1つの特徴として、システムや開発チーム、プロジェクトの特性による工数の変動を反映できるという点があります。
- COCOMO81
1981年にバリー・ベームが発表した最初のCOCOMOモデル。TRW社(主に軍需、精密機器のソフトウェア開発企業)でのプロジェクト実績データを基に作成。
- COCOMO II
USCに移ったベームが1995年に発表したモデル。COCOMO81をベースとして、繰り返し型開発、オブジェクト指向開発、1980~1990年代のツールや開発環境の変化などに対応。1998年、1999年、2000年に更新。
COCOMO II.2000は、2,000件以上のプロジェクトデータから精査した161件を基に作成されている。Early Design Model(製品のアーキテクチャが決定していない開発初期段階向き)とPost-Architecture Model(アーキテクチャ決定以降の段階向き)の2つのモデルがある。
COCOMOの基本的な考え方
COCOMOには、2つの基本的な考え方があります。
1つは「工数と規模の関係は単純な比例関係ではない」という考え方です。この工数と規模の関係は「単純で小規模なものと非常に大規模なものでは生産性が違う」と言うと分かりやすいでしょう。
もう1つは「工数(人月)に関して人と月は交換可能ではない」という考え方です。この工数と開発期間の関係は直感的に分かってもらえると思います。例えば、100人月で開発できるソフトウェアがあったとします。それを10人により10か月で開発することは可能でしょうが、100人用意しても1か月で開発することは不可能です。つまり、「工数に応じて最適な開発期間が存在する」ということです。
次のグラフは、標準工数と標準開発期間を相対的に1とした場合、開発期間を縮めようとしたときにどうなるかを表しています。開発期間を短くしようとすればするほど、工数は増えていきます。そして、開発期間を短くすることは、ある一定のところ(0.75)で限界に達します。開発期間を短くすることは人を多くすることを意味しますが、限界を超えてさらに人を多くすると、開発期間は逆に長くなり、工数も増えることになります。
COCOMOのモデルには、この2つの関係が反映されています。