見積もりは手法こそ整備されてきたものの,精度を上げるのが難しくなってきた。現場担当者が疑問に思う七つの問題を取り上げる。

問題&解決
根拠なくして納得感は得られない

 「こんな見積もりはのめない!」。味噌メーカー,マルコメの役員はあるシステム開発プロジェクトの会議の席上,決断を下した。販売/生産/財務など基幹システム再構築を発注していたベンダーとの契約を打ち切り,改めて他ベンダーを探すことになった。

 プロジェクトは既に要件定義を終え,設計工程に入ろうとしていた。ここで最初に開発を発注していたベンダーが「最初の見積もりではできません」と,当初とはまるで違う再見積もりを通知してきたのである。

 当初の見積もりと再見積もりの乖離幅は2倍以上。発注時に4社から相見積もりを取り,最も安価なベンダーに発注した経緯があるだけに,後になって2倍超ものコスト上積みなどとうてい受け入れがたいものだった。

 現場の指揮を執る近藤光治氏(情報システム部 ゼネラルマネージャー)は「見積もりは難しいと実感した。おかしいと思っても反論する材料がない」と当時を振り返る。

 情報システムの見積もりは,類似法や,LOC(Line of Code)法*1,FP(ファンクション・ポイント)法*2,COCOMO/COCOMOII*3,WBS(Work Breakdown Structure)法*4などいくつもの手法が確立されている。もちろんマルコメが発注していたベンダーもそれら手法を駆使したはずだが,要件定義を終えるまで正確な見積もりを出すことができなかった。

 開発の上流工程に詳しいアイネスの菊島靖弘氏(金融システム本部 副本部長)は「システムが戦略性を帯びてステークホルダーが増え,しがらみが多くなってきた。その結果,見積もりが困難になっている」と指摘する。

 見積もり担当者は,様々な手法を駆使した上で,試行錯誤を繰り返しながら後で困らない見積もりの算出に苦心している。まずは「見積もりの精度を上げるには?」「見積もりミスを後でカバーできる?」など見積もり担当者が疑問に思う七つの問題を取り上げ,現場での工夫からその解決策を探っていこう(表1)。

表1●見積もりを巡る七つの問題
表1●見積もりを巡る七つの問題


問題(1) 見積もりの精度を上げるには?
解決:ぶれる要因を織り込んでおく

 なぜ同じようなシステムなのに開発工数に差が出てしまうのか。対策はあり得るのか――。

 多くの見積もり担当者に共通する悩みである。システムインテグレータの松田孝宏氏(パッケージソフトウェア部 マネージャー)は「例えば,要求があいまいなとき,仕様でもめそうなときは工数が膨らむことを織り込んでおく。高い信頼性を求められるシステムなら,テストの工数を厚く積んでおく」と語る。勘と経験に優れた担当者なら正確さは増すが,そのスキルによりバラツキが大きく出やすい。

 ソフト開発会社ジャステックの太田忠雄氏(常務取締役 兼 常務執行役員営業本部本部長)は,こうした悩みをなるべくシステマティックに解決しようと取り組みを続けている。「ぶれる原因と対策を可視化して,見積もりに反映する仕組みを作る」(太田氏)のが目的だ。その成果が現在同社が利用している「見積もりリスク要因チェックシート」である(図1)。

図1●見積もりがぶれる要因を洗い出す
図1●見積もりがぶれる要因を洗い出す
ジャステックは見積もりがぶれるリスク要因を整理している。要因ごとに工数を上乗せまたは削減する割合を定義しておき,机上で算出した見積もりに加味した上で,見積もりを確定する
[画像のクリックで拡大表示]

 チェックシートでは,まず工数を算出するための“開発規模”と“生産性”それぞれについて,見積もりがぶれる要因をすべて洗い出した。その上で,各要因が工数に与える影響を数値化したのである。

 例えば「中核メンバー全員が当該業務経験多数」なら「要件定義」「設計」「テスト」の各工数を10%ずつ引き下げる。逆に「メンバー全員が当該業務経験無し」なら「要件定義」の工数を50%,「設計」「テスト」の工数を10%それぞれ引き上げる。

 これと同様の考え方は,COCOMO/COCOMOIIなど標準的な見積もり手法にもある程度は盛り込まれている。COCOMO/COCOMOIIでは,開発規模に「技術者の能力」や「要求の信頼性」などぶれる要因を係数として掛けることで,開発に必要な期間などを算出できる。

 ジャステックの場合は「ユーザー側とベンダー側で,要因を分けて考えたかった。COCOMO/COCOMOIIには両者を分ける考えがないのでそのままでは使えなった」(太田氏)。手法を利用する場合でも独自のカスタマイズや,ジャステックのような独自項目の作成が必要になる。