このページでは、標準タスク法・FP法・COCOMOなどの見積手法と、EVMのPV・EV・ACを使ってコストとスケジュールを評価する計算がわかります。
- 一言で言うと:
- プロジェクトに「いくらかかるか」を事前に見積もり、始まったら「お金と進み具合」を同じ物差し(金額)で追いかける(EVM)話
事前に見積もる → 途中で追いかける(EVM)
覚え方の軸
- 見積手法は「何を手がかりに数えるか」で4つに分ける
- ①作業を積み上げる ②プログラムの行数 ③機能の数 ④過去の経験
- 初期ほど粗い手がかり、後になるほど細かい手がかりを使う
- 初期は経験や機能、後になると行数や作業
- EVMは「EVが主役」
- 差異は「EV − ○○」、効率は「EV ÷ ○○」
- ○○には、コスト(C)ならAC、スケジュール(S)ならPVが入る
- マイナス、または1未満なら「悪い」
- 予算オーバー、または遅れ
開発規模・工数の見積手法:いくらかかるか
| 手がかり | 手法 | 一言で | 向いている時期 |
|---|---|---|---|
| ①作業を積み上げる(ボトムアップ) | 標準タスク法 | WBSで細かく分けた作業の工数を足し上げる | 後半(細かく分けられてから) |
| ②プログラムの行数 | LOC法、Dotyモデル、COCOMO | 何行のプログラムになるかから工数を出す | 中盤以降 |
| ③機能の数 | ファンクションポイント法(FP法)、COSMIC法 | 画面や帳票などの機能を数えて規模を出す | 初期から使える |
| ④過去の経験 | 類推見積法(デルファイ法など) | 似た過去の案件から類推する | 初期(大まかでよいとき) |
- パラメトリック見積り(係数見積り):
- 過去のデータと数式(統計的な関係)を使う見積りの総称
- COCOMO、FP法、LOC法、Dotyモデルがこれにあたる
① 作業を積み上げる
- 標準タスク法(標準値法ともいう):
- 作業を見積もれる単位まで分解し、それぞれの標準工数をボトムアップで足し上げる
- ふつうはWBSに沿って積み上げる
- 標準タスク法の長所:
- 小規模なシステムなら精度が高い
- 標準タスク法の短所:
- プロジェクトの初期は、細かく分解するのが難しい
- 三点見積法:
- 作業ごとの標準工数を出すときに使う
- 悲観値(一番長い)、最頻値、楽観値(一番短い)の3つを使う
- 三点見積法の標準工数=
- (悲観値 + 4×最頻値 + 楽観値)÷ 6
- 一番ありそうな値を4倍に重くした平均
- 例題(三点見積法):
- 楽観4日、最頻6日、悲観14日なら、(14 + 24 + 4)÷ 6 = 7日
② プログラムの行数
- LOC法(プログラムステップ法ともいう):
- プログラムの全ステップ数(行数)から規模を見積もる
- LOC法の弱点:
- 言語の種類や、むだなコードの量によって行数が変わる
- 担当者によって見積りに大きな差が出る(FP法の長所の裏返し)
- Dotyモデル:
- LOC法の一つ
- ステップ数の指数乗を使って規模を見積もる
- COCOMO:
- 行数(KLOC:千行単位)から工数を出し、その工数から期間を出す
- 使うには、自社の生産性の実績データが欠かせない
- COCOMOの開発工数 E(人月)=
- a × L^b × 努力係数
- Lは千行単位の行数。a、bは補正係数
- COCOMOの開発期間 D(月)=
- 2.5 × E^c
- cも補正係数
- 努力係数:
- 工数を増やす要因(求められる信頼性、製品の複雑さ、開発要員の能力など)から計算する係数
- COCOMOの3段階:
- 基本COCOMO(初級COCOMO)は、行数だけで見積もる。努力係数はない
- 中間COCOMOは、基本の値を努力係数で調整する
- 詳細COCOMOは、さらに細かく見積もる
- 規模と工数の関係(★グラフの形が問われる):
- 規模が大きくなると、工数は比例以上に(指数的に)増える。大きい開発ほど生産性が落ちるから
- 例えば、工数が規模の1.2乗に比例するとすると、規模が10倍なら工数は約16倍(10^1.2 ≒ 15.8)、100倍なら約251倍(100^1.2 ≒ 251)
③ 機能の数
- ファンクションポイント法(FP法)(★長所がよく問われる):
- 画面や帳票など、外から見える仕様をもとに機能の量を数え、規模を見積もる
- FP法の手順:
- 機能を5つのファンクションタイプに分けて数える
- 複雑さ(低・中・高)の重みを掛けて合計する(未調整FP)
- 補正係数を掛ける(FP)
- 生産性で割る(工数)
- 5つのファンクションタイプ:
- トランザクションファンクション(データの出入り)は、①外部入力 ②外部出力 ③外部照会
- データファンクション(データのかたまり)は、④内部論理ファイル ⑤外部インタフェースファイル
- 例えば、「会員登録画面」は外部入力に分類し、難易度も評価する
- 例題(FP法):
- 未調整FP 300 × 補正係数1.1 = 330FP。生産性が15FP/人月なら、330 ÷ 15 = 22人月
- 簡単な数字では、未調整FP 200 × 0.9 = 180FP。生産性が10FP/人月なら、180 ÷ 10 = 18人月
- IFPUG法(JIS X 0142):
- FP法の代表的なやり方
- IFPUG法の補正係数=
- 14の観点の評価点の合計 × 0.01 + 0.65
- システムの特性を14の観点(データ通信、分散処理、性能など)で、それぞれ0〜5点で評価する
- 0.65〜1.35の範囲になる
- FP法の長所:
- プログラム言語に依存しない
- 初期から使える
- ユーザーから見える画面単位なので、ユーザーと合意しやすい
- 根拠が客観的なので、LOC法などより担当者による差が小さい
- FP法の短所:
- 基準値を決めるために、実績データの収集・評価が必要
- 数え方の解釈をそろえる(標準化する)必要がある
- COSMIC法:
- 機能プロセスごとに、データの移動(入力・出力・読込み・書込み)の回数を数え、単位規模を掛けて機能規模を出す
- IFPUG法より測りやすいとされる
④ 過去の経験
- 類推見積法:
- 過去の似たシステムの実績から類推して見積もる
- 経験者の感覚、標準のテンプレート、デルファイ法など、やり方には粗いものから整ったものまである
- デルファイ法:
- 複数の専門家が、他の人の意見を見ながら何度も意見を出し直して、まとめていく
EVM(アーンドバリューマネジメント):お金と進み具合を金額で追いかける(★計算がよく出る)
- EVM:
- 進み具合を金額に換算して、コストとスケジュールを同じ物差しで評価する
- 今の状況を評価し、このままいくと最後にいくらかかるかも予測する
- アーンドバリュー分析:
- PV・EV・ACの3つで成果を測ること
| 指標 | 意味 | 例え(家のペンキ塗り、総予算100万円) |
|---|---|---|
| PV(計画価値) | 今日までに終わっているはずの作業の金額 | 今日までに半分塗る予定 → 50万円 |
| EV(出来高) | 今日までに実際に終わった作業の金額 | 実際は4割しか塗れていない → 40万円 |
| AC(実コスト) | 今日までに実際に使ったお金 | 実際には50万円使った |
| BAC(完成時総予算) | 全体の予算 | 100万円 |
- PV:
- 経過期間に比例して増える
- BAC:
- 完成時点のPVのこと
- 例:
- BACが2,000万円で、期間の60%が過ぎた時点なら、PVは1,200万円
- そのときの進捗率が50%なら、EVは1,000万円
- それまでにかかったコストが1,100万円なら、ACは1,100万円
今の状態を見る(EVが主役。C→AC、S→PV)
| 評価値 | 式 | 例の答え | 読み方 |
|---|---|---|---|
| CV(コスト差異) | EV − AC | 40 − 50 = −10 | マイナスなら予算オーバー |
| SV(スケジュール差異) | EV − PV | 40 − 50 = −10 | マイナスなら遅れ |
| CPI(コスト効率指数) | EV ÷ AC | 40 ÷ 50 = 0.8 | 1未満なら予算オーバー(1円で0.8円分しか進んでいない) |
| SPI(スケジュール効率指数) | EV ÷ PV | 40 ÷ 50 = 0.8 | 1未満なら遅れ |
この先を予想する(今の効率がこのまま続くと考える)
| 評価値 | 式 | 例の答え |
|---|---|---|
| ETC(残りの作業にかかるお金) | (BAC − EV)÷ CPI | (100 − 40)÷ 0.8 = 75万円 |
| EAC(完成までの総額) | AC + ETC | 50 + 75 = 125万円 |
| VAC(完成時の予算との差) | BAC − EAC | 100 − 125 = −25万円(25万円オーバー) |
- CPIの読み方:
- 1なら予定どおり
- 1より大きければ、想定より生産性が高い
- 1より小さければ、想定より生産性が低い
- ETCの考え方:
- 残りの仕事は60万円分。でも1円で0.8円分しか進まないので、60 ÷ 0.8 = 75万円かかる
- グラフで出たときの読み方:
- EVの線が一番下なら、「コスト超過、かつ遅れ」(ACもPVもEVより上なので、CVもSVもマイナス)
- 遅れの日数は、「今のEVと同じ高さになるPVの時点」と「今日」の差で読む
混同しやすいペア
- PV / EV / AC
- PVは、終わっているはずの分
- EVは、実際に終わった分
- ACは、実際に使ったお金
- CV・CPI / SV・SPI
- CVとCPIの相手は、AC(コスト)
- SVとSPIの相手は、PV(スケジュール)
- 差異 / 効率
- 差異は引き算で、0より小さいと悪い
- 効率は割り算で、1より小さいと悪い
- ETC / EAC
- ETCは、残りにかかる額
- EACは、全体でかかる額
- 標準タスク法 / 類推見積法
- 標準タスク法は、ボトムアップ。細かく分けてから使う
- 類推見積法は、過去から類推する。初期向き
- FP法 / LOC法
- FP法は、機能を数える。言語に依存しない
- LOC法は、行数を数える。言語や人で差が出る
- IFPUG法 / COSMIC法
- IFPUG法は、5つのファンクションタイプに重みを掛ける
- COSMIC法は、データの移動の回数を数える。測りやすい
- トランザクションファンクション / データファンクション
- トランザクションファンクションは、外部入力・外部出力・外部照会
- データファンクションは、内部論理ファイル・外部インタフェースファイル
- 基本COCOMO / 中間COCOMO / 詳細COCOMO
- 基本は、行数だけ。努力係数なし
- 中間は、努力係数で調整する
- 詳細は、さらに細かく見積もる