ソフトウェア見積もりに関するメモ

良い見積り

プロジェクトのコントロールが適切であれば、見積りに対してプラスマイナス10%の正確性を達成することが可能である。(Capers Jones 1998)
良い見積りのアプローチとは、実績値の75%のケースで誤差が25%以内に収まる見積りを提供することである(Conte,Dunsmore,Shen 1986)

見積りの真の目的

見積りにとって重要なことは、完璧なまでに正確であることより、有用な情報を提供することである。正確な見積り、適切なターゲットの設定、適切な計画とコントロールの三拍子が揃って「見積り」に近いプロジェクトの結果が実現できる。

実務的な良い見積りとは

プロジェクトの責任者がプロジェクトのターゲットを達成するためのコントロールを行ううえで、適切な意思決定ができる明確な視点を提供するものである。

開発アクティビティにおける見積り誤差

プロジェクトの見積もりは、プロセスの各段階における予測可能な量の不確実性に支配される。

フェーズ 少ない側の誤差 多い側の誤差
初期コンセプト 0.25x(-75%) 4.0x(+300%)
製品定義の承認 0.5x(-50%) 2.0x(+100%)
要求の完了 0.67x(-33%) 1.5x(+50%)
UI設計の完了 0.80x(-20%) 1.25x(+25%)
詳細設計の完了 0.90x(-10%) 1.10x(+10%)

開発者の楽観的見積り

開発者の見積りには20%〜30%の楽観的要因が含まれている。
開発者の見積りを削ってはならない。なぜなら既に十分楽観的すぎるからだ。

規模の不経済

規模の大きなプロジェクトでは、コミュニケーションパスが急激に増加する。その結果、プロジェクトの工数もプロジェクトの規模が増えるにつれ急激に増加する。
プロジェクトの規模が大きくなるにつれて、工数が直線的にスケールアップすると想定してはいけない。工数は指数関数的にスケールアップする。

ソフトウェアの種類

見積りには開発しようとしているソフトウェアの種類が大きく影響する。社内向けのイントラネットシステムを開発しているチームは、航空電子工学関連やリアルタイムシステムや組み込みシステムのプロジェクトで作業しているチームに比べて、10〜20倍もコード生産性が高くなる。

PERTによる期待ケースの算出

個々の見積もりは最良ケースと最悪ケースを加味する必要がある。この最良ケースと最悪ケースから以下のPERT(Program Evaluation and Review Technique)の公式で期待ケースを計算できる。

期待ケース = [最良ケース + (4 × 最有力ケース)+ 最悪ケース]÷ 6

最有力ケースが楽観的すぎる場合は以下で期待ケースを計算できる

期待ケース = [最良ケース + (3 × 最有力ケース)+ (2 × 最悪ケース)]÷ 6

見積りと実績を比較して改善できるようにする

見積りの相対誤差の大きさであるMRE(Magnitude of Relative Error)は以下で計算できる。

MRE = [(実際の結果 - 見積り結果) ÷ 実際の結果] の絶対値

スケジュールの基本公式

プロジェクトの初期段階で大ざっぱなスケジュールを算出できる。

スケジュール(月) = 3.0 × 人月^(1/3)

右はじは人月の立方根