見積もりの手法には大きく分けて「類推」「係数モデル」「ボトムアップ」 の3種類がある(表2)。係数モデルならFP法やCOCOMO/COCOMOIIなど,ボトムアップならWBS法と,それぞれよく使われる標準的な手法が確立されている。

 見積もりの手法には大きく分けて「類推」「係数モデル」「ボトムアップ」の3種類がある(表2)。係数モデルならFP法やCOCOMO/COCOMOIIなど,ボトムアップならWBS法と,それぞれよく使われる標準的な手法が確立されている。

表2●標準的な見積もり手法
表2●標準的な見積もり手法

 3種類の手法は,それぞれに向き不向きがあり,「開発工程や用意できる材料によって使い分ける」(三菱電機 白石氏)のが現実的だ。三菱電機 神戸製作所では「見積もりガイドライン」の中で,3段階に分けてどの工程でどの手法を使って見積もりを実施すべきかを定義している(図8)。

図8●三菱電機 神戸製作所の見積もり(数値は実際のものではなくサンプル)
図8●三菱電機 神戸製作所の見積もり(数値は実際のものではなくサンプル)
[画像のクリックで拡大表示]

 標準的な見積もり手法は使いづらいと感じて,独自に工夫して見積もり手法を開発した会社や担当者もある(表3)。帳票/画面やロバストネス図*10など,見積もり時に自分が用意しやすい材料を基に見積もりのロジックを定義しているのが独自手法の特徴だ。

表3●現場担当者が独自に工夫して開発した見積もり手法の例
表3●現場担当者が独自に工夫して開発した見積もり手法の例

 以下,種類ごとに各手法のメリットとデメリットを見ていこう。

類推法:初期見積もり

 類推法とは,過去の類似システムとの比較から,開発するシステムの規模や工数を類推する見積もり手法。予算獲得時など,超上流工程*11の初期見積もりで使われることが多い。要件定義以降はほとんど使われない。

 情報処理推進機構(IPA)ソフトウェア・エンジニアリング・センター エンタプライズ系プロジェクト プロジェクトサブリーダー 石谷靖氏は「本来なら要件定義が完了した後でないと,見積もりは正確にできない。要件定義前に見積もるためには,手持ちの材料でいかに“類推”するかがポイントになる」と言う。

● メリット
 要件定義が完了していなくても,ある程度根拠のある工数やコストを算出できる。用意する材料はユーザーの業種,業務,ユーザー数,データ量など。同業種や同業務のシステムを開発した経験があれば,それとの差分を考慮して見積もれる。基幹システムなら,会社規模から売り上げの%で算出することもある。

 システムの性格だけでなく,工程の比率から類推することもできる。三菱電機 神戸製作所の場合は,要件定義の工数を詳細に見積もり,プロジェクト全体に占める要件定義の比率を参照して,全体を見積もるというアプローチを採用している。要件定義の工数だけなら,比較的詳細に見積もれる。

● デメリット
 そのプロジェクト特有の要件があまり加味されない。担当者の勘や経験に左右される部分が大きいため,精度的にも難がある。

 「もちろん勘も経験も重要だが,大ざっぱにしか見積もれないのが問題だ。100~200人月程度の小規模プロジェクトなら大きくぶれることはないだろうが,それ以上の規模になるとリスクが大きくなる」(エスジェイソリューションズ 武内氏)。

 複数の担当者の証言によれば,類推見積もりでは実績値と50%前後,乖離することも珍しくないようだ。

係数モデル:概算~詳細見積もり

 特定の係数モデルを使って,システムの規模や工数を算出するのがLOC法やFP法などの係数モデルだ。現在,最も一般的に使われている。三菱電機 神戸製作所では,要件定義後の概算見積もりと,基本設計後の詳細見積もりで係数モデルの一つであるFP法を採用している。

 FP法の場合,「外部入力」「外部出力」「内部論理ファイル」「外部インタフェース・ファイル」「外部照会」という5種類の機能をまず洗い出す。各要素のレコード数やファイル数に応じてFP値(未調整)を算出する。これに,システム特性に応じた重み付けをしたものが最終的なFP値となる。

● メリット
 ユーザーの納得感を比較的得られやすい。係数モデルは係数の設定次第で結果が大きく変わってしまうのが特徴だが,FP法やCOCOMO/COCOMOIIなど利用実績の多い標準的な手法は係数の信頼度もそれなりに高いことが期待できるからだ。

 ユースケース・ポイント法をよく利用している永和システムマネジメントの岸田氏は「ユースケースというユーザーでも理解できる図を基に見積もる。根拠が分かりやすいので,納得してもらいやすい」という。

● デメリット
 見積もりに必要な材料が厳密に決められている。多くの手法では少なくとも要件定義が完了していないと,見積もることが難しい。

 また,係数で算出できる数値がカバーする範囲に注意が必要だ。例えば「ユースケース・ポイント法は,設計から結合テストまたは導入までの見積もりをカバーしている」(永和システムマネジメント 岸田氏)。逆に要件定義などは範囲外となるので,必要に応じてボトムアップなどで別途,見積もる必要がある。

 LOCやFPはシステムの規模を表すだけなので,工数やコストを導き出すにはさらに別の係数(主に生産性指標)を掛けて算出しなければならない。

 COCOMOII は,LOCやFPなどシステム規模を算出した後に,各種の調整係数を掛けて,全体または工程ごとの最適な期間などを算出するものである。

 このように各手法のインプットとアウトプットは異なる。用途も異なるのである。

ボトムアップ:詳細見積もり

 プロジェクトで実施する作業単位に工数を積み上げていく見積もりの方法。作業単位ごとに工数を見積もり,それを加算していくWBS法や,あらかじめ設定してある標準的な工数を各作業に割り当てていく標準タスク法がよく使われる。三菱電機 神戸製作所では,要件定義後の概算見積もりと,基本設計後の詳細見積もりでWBS法を採用している。

 ソフトウエア開発以外の工数は,ボトムアップで見積もることがほとんどである。「ECサイトの操作をユーザーに教育する場合,通常は専属スタッフ一人が2日間張り付くから2人日必要といった計算を積み上げていく(システムインテグレータ 松田氏)」。

● メリット
 作業単位ごとに細分化された工数やコストを成果物として算出する。そのため,プロジェクトを開始した後,スケジュールやコストの予実管理にそのまま流用できる。

● デメリット
 ソフトウエア開発の場合,ドキュメントやプログラムなど作成する成果物を基準に見積もるので,少なくとも要件定義は完了している必要がある。