a. 代表的なコスト見積手法
【 パラメトリック見積り 】
パラメトリック見積りは、特定の係数モデルを利用し、重み付けをして工数を算出する手法です。
ファンクションポイント法やCOCOMO/COCOMO IIといった手法があります。
【 ファンクションポイント法 】
ソフトウェアの規模を「ソフトウェアが実現する機能の数と複雑さ」の面から見積もる技法。
プログラムの入力画面、出力画面、出力帳票、ファイルなど、ユーザから見た機能について、個数や難易度を算出し補正係数をかけて見積もる方法。
データ機能 |
内部論理ファイル |
開発するソフトウェアが管理するファイル |
外部インターフエイスファイル |
開発するソフトウェアが参照するファイル |
トランザクション機能 |
外部入力 |
内部論理ファイルを更新するためのデータ入力機能 |
外部出力 |
外部へのデータ出力機能 |
外部照会 |
入力と出力が一体となったデータ処理機能 |
- ユーザーインターフェイスや機能で分ける
ユーザーファンクションタイプと呼ばれる機能で分け、それぞれの個数を算出する。
- 機能の複雑さを評価する
上記で洗い出した機能の複雑さを低・中・高の3段階で評価する。
- 補正前のファンクションポイント数を算出する
洗い出した機能の個数と機能の複雑さの係数をかける。それぞれのユーザーファンクションタイプごとに計算し、
それぞれを合計してファンクションポイント数を算出する。
- ファンクションポイント数を補正する
ソフトウェアに与える影響度をもとに、合計のファンクションポイント数に複雑さの係数をかける。
- 工数を算出する
上記の計算結果より、見積もり工数を算出する。
特徴としては、
・ユーザの理解が得られやすい。
・プログラム言語に依存しない。
【 LOC ( Lines of Code ) 法 】
プログラムステップ法とも呼ばれる。プログラムのステップ数(行数)をもとにして、システムの開発費用を見積もる手法のことである。
プログラムステップ法は、プログラムが既に存在していれば、容易に見積りを出すことができるという特徴がある。一方、プログラムが存在しない場合には、過去の開発事例を参考にするなどしてステップ数を割り出して見積もる。
プログラムステップ法では、プログラムの書き方やプログラマーの技量により、見積もり額が左右されることがある。目安にはなるが、ファンクションポイント法やCOCOMOより見積もり精度は低い。
【 COCOMO ( Constructive Cost Model ) 】
工数 = a × Sb
ここで、a bは統計的に求めた定数で、「S」がソフトウェアの規模を表す指標です。当初、これは、「ソースプログラムの行数」を使用していました。しかし、これでは、分析や設計工程の見積もりが困難なため、「COCOMOiⅡ」ではソースプログラムの行数とオブジェクトポイント、ファンクションポイントが追加されました。
【 三点見積法 】
見積もり値を以下の三つに分けて算出する。
- 楽観値
最も良い条件で作業が進むと考えた場合の値
- 通常値(期待値)
一般的な条件で作業が進むと考えた場合の値
- 悲観値
最も悪い条件で作業が進むと考えた場合の値
三点見積もり値 =( 楽観値 + 通常値 × 4 + 非観値 )÷ 6
の計算で求める。
【 類推見積法 】
過去の類似プロジェクトの実績値を参考に現行プロジェクトのコストを見積もる方法。トップダウン見積法ともいう。
参考にする内容の類似性が高い場合や見積もり者の専門性が高い場合は見積もりの信頼性は高まるが、一般的には、見積もり精度は低い。
【 ボトムアップ見積法 】(積み上げ見積法)
個々の作業をそれぞれ見積もり、それらを合計して全体のコストを見積もる方法
WBSで細分化したワークパッケージごとの見積もり額を算出し、それらを合計する手法。
WBSの正確性で見積もり額の精度が決まる。WBSが正確に細分化されていると見積もり精度は他に比べて高い。
【 係数見積法 】(パラメトリック見積法)
過去のプロジェクトの実績値を参考に作業別の係数を計算し、現行プロジェクトの作業数と係数を掛けてコストを見積もる方法
ファンクションポイント法
b. 代表的なコスト管理手法
【 EVM 】(Earned Value Management)
アーンドバリューマネジメント法 は、プロジェクトの進捗や作業のパフォーマンス、今後の予測などを、出来高の価値(通常は金額換算)によって把握・管理する方法。具体的には、以下に示すBAC~EAC等の指標を用いて、進捗の把握・分析を行う。
ITシステム構築などのプロジェクト活動の進捗状況を管理する手法の1つです。EVMの特徴の1つとして、活動の進捗状況だけでなくコストの発生状況なども合わせて指標に換算して同一のグラフで管理できることが挙げられます。
進捗状況を金銭的価値に置き換えて、数量的に進捗を管理する手法
EVMには、4 つの基本要素といくつかの指標がある。
- PV(Planned Value : 計画価値)・・・出来高の計画値(ベースライン)
計画した作業に対して現時点までに割り当てられているコスト
現時点までの計画工数
- EV(Earnd Value : アーンドバリュー)・・・出来高の実績値
現時点までに完了した作業に割り当てられているコスト
実際に行った作業を計画値に換算したコスト
- AC(Actual Cost : 実コスト)・・・コスト実績値
現時点までに実際に掛かったコスト
スケジュール通り開発が進んでいれば、PVと同じ値になる。
- BAC(Budget at Completion : 完成時総予算)・・・完了時の総予算
プロジェクトの開始から完了までに割り当てられた計画上の総コスト
EVMでは、これらの指標をグラフ化することで、計画と比べた作業の遅れやコストの超過などを視覚的に把握しやすくします。EV、PV、ACの各指標は、コストを縦軸、経過期間を横軸とするグラフで、3本の曲線として表すことができます。
- CV(Cost Variance : コスト差異)・・・コスト差異のこと。
CV = EV - AC で求める。マイナスはコスト超過
- SV(Schedule Variance : スケジュール差異)・・・スケジュール差異のこと。
SV = EV - PV で求める。プラスなら計画のスケジュール以上に進んでいる。マイナスなら計画より遅れている。
- CPI(Cost Performance Index : コスト効率指数)・・・コスト効率指数のこと。
CPI = EV ÷ AC で求める。1 以上が良い。1 以下はコスト超過
- SPI(Schedule Performance Index : スケジュール効率指数)・・・スケジュール効率指数のこと。
SPI = EV ÷ PV で求める。1 以上が良い。1 以下はスケジュール遅れ
- EAC(Estimate At Completion : 完了時コスト予測)・・・完成時総コスト見積もりのこと。
EAC = AC + (BAC - EV) ÷ CPI で求める。予想されるプロジェクト完了時点における総コスト
- ETC(Estimate To Complete : 残作業コスト予測)・・・残作業コスト予測のこと。
ETC = EAC - AC = (BAC - EV) ÷ CPI で求める。現時点から完成までに見積った残作業のコスト見積り。
- VAC(Variance At Completion : 完了時コスト差異)・・・完成時コスト差異のこと。
VAC = BAC - EAC で求める。完成時点での予算に対する実績の差異予測。
- プランド・バリュー(PV:Planned Value)
計画時の作業価値を定量化した値のことで、現時点(計測時点)において計画した作業を完了するために割り当てられた予算(価値)のこと。
ある時点において、計画通りだとどこまで進んでいるかをあらわしたもの。
作業計画をベースにして、経過した日数(時間)からプランド・バリューを求めることができる。
- 実コスト(AC:Actual Cost)
実際に費やした作業コストのこと。
作業実行者のコスト単価と要した時間で求めることができる。
- コスト差異(CV:Cost Variance)
ある時点における計画コスト値と実績コスト値の差のこと。
アーンド・バリュー(EV)から実コスト(AC)を引いた値がコスト差異(CV)となる。
CV = EV - AC
値が 0 であれば計画通りであることを示す。正の値なら計画を下回っていることを示して、負の値だと計画コストを超過していることになる。
- スケジュール差異(SV:Schedule Variance)
ある時点における計画スケジュール値と実績進捗値の差のこと。
アーンド・バリュー(EV)からプランド・バリュー(PV)を引いた値がスケジュール差異(SV)となる。
SV = EV - PV
値が 0 であれば計画通りであることを示す。正の値なら計画を前倒ししていることを示して、負の値だと計画から遅れていることになる。
- コスト効率指数(CPI:Cost Performance Index)
プロジェクトのパフォーマンスを計測する指標で、計画時の予算をベースにコストの効率を測る。
つまり、計画予算から計測時点で超過しているのか下回っているのか、また何パーセント乖離しているかを知ることができる。
CPIの値は、実コスト(AC)に対するアーンド・バリュー(EV)の割合で求められる。
公式では、CPI = EV / AC
CPIが1.0未満のときにはコスト超過を示し、1.0を上回っている場合には見積りコストを下回っていることを示す。
CPI < 1 : コスト効率が悪い … 予定された作業に対して時間がかかりすぎている。
CPI = 1 : 計画予算通り進んでいる。
CPI > 1 : コスト効率が良い … 少ない時間で予定以上の作業を完了している。
- スケジュール効率指数(SPI:Schedule Performance Index)
プロジェクトのパフォーマンスを計測する指標で、計画時の予算をベースにスケジュールの効率を測る。
つまり、計画スケジュールから計測時点で超過しているのか下回っているのか、また何パーセント乖離しているかを知ることができる。
SPIの値は、プランド・バリュー(PV)に対するアーンド・バリュー(EV)の割合で求められる。
公式では、SPI = EV / PV
SPIが1.0未満のときにはスケジュールが遅れていることを示し、1.0を上回っている場合には計画より前倒しに進んでいることを示す。
SPI < 1 : 計画よりも作業が遅れている。
SPI > 1 : 計画よりも早く作業が完了している。
- 完成時総コスト見積り(EAC:Estimate at Completion)
ある時点で、その作業が全て完了した際の総コストを予想した値が EAC。
EAC を求めるには3種類の方法がある。
残工数 = BAC - EV
- 差異を反映した EAC (中間的予測)
現在生じている計画と実績の差異が今後も継続すると判断した場合に用いられる。(残りがこれまでのコスト生産性で推移すると考えた場合)
つまり、現時点で計測したコスト効率(CPI)が、今後も変化せずに継続すると判断できる場合にこの方法を採用する。
公式は、
ETC = (BAC – EV) / CPI
EAC = AC + ETC = AC + (BAC - EV) / CPI = BAC / CPI
- 偶発差異を織り込んだ EAC (楽観的予測)
現在の計画と実績の差異が特殊なもので今後同様の差異は生じないだろうと判断した場合に用いられる。(残りが予定の計画コストで推移すると考える場合)
つまり、以降は計画時に設定したコスト効率で作業が進められると判断できるときは、これらの方法を使用する。
(CPIは1なので)
公式は、
ETC = BAC – EV
EAC = AC + ETC = AC + (BAC - EV)
- SPIとCPIを考慮したEAC (悲観的予測)
残りがこれまでのコスト生産性とスケジュール生産性で推移すると考えた場合で、スケジュールが遅れていればリカバリーのコストなども必要であることを意味している。
公式は、
ETC = (BAC – EV) / (CPI × SPI)
EAC = AC + ETC = AC + (BAC – EV) / (CPI × SPI)
- 前提条件に誤りがある場合の EAC
これはつまり、見積もり直す必要があるということで、それまでの実績値では求めることはできない。
再見積もりした残作業見積もり(ETC)を現在の実コストに足すことで、EAC の値になる。
公式は、
EAC = AC + ETC
- 残作業のコスト見積り(ETC:Estimate to Complete)
ある時点で、終わっていない作業量をコスト的に定量化した値のこと。
これからの作業で実際に発生するであろうコスト
公式は、
ETC = EAC - AC = (BAC - EV) / CPI
- 完成時総予算(BAC:Budget at Completion)
作業が完了した時点のPVの値のこと。
作業が完了した時点のEVの値でも同じ。
つまり、その作業が完了するのに必要だと見積もった計画値のこと。
- 残作業効率指数 (TCPI:To Complete Performance Index)
残作業効率指数(TCPI)とは、BACやEACなどのマネジメント目標を達成するために、残りの作業で達成しなければならないコスト・パフォーマンスのことです。
TCPIの算出式は以下の通りです。
TCPI = 残作業 / 残コスト
TCPI = (BAC – EV) / (EAC – AC)
または、
TCPI = (BAC – EV) / (BAC – AC)
◆EVMの計算例
- 計画:
20本のプログラム作成
1本当たり 2.5人月必要
1人月あたりの費用:20万円
a.完了予定予算 BAC = 1000万円
b.予定工期 5ヶ月
2.5 × 20 ÷ 5 = 1ヶ月当たり10人
- 現時点の測定値:
c.測定時の計画価値(予算) PV = 300万円
300 ÷ 20 ÷ 2.5 = 6本完成予定
6 × 2.5 ÷ 10 = 1.5ヶ月経過
d.アーンド・バリュー EV = 240万円
240 ÷ 50 = 4.8本完成
実コスト AC = 400万円
400 ÷ 20 = 20人月
- 現状把握:
e.コスト差異
CV = EV-AC = 240-400 = -160万円(160万円のコスト超過)
f.スケジュール差異
SV = EV-PV = 240-300 = -60万円(60万円分のスケジュール遅延)
g.コスト効率指数
CPI = EV/AC = 240/400 = 0.6(予定より40%コスト超過)
*予算消費実績(400万円)に対して60%の価値しか生み出していない。
h.スケジュール効率指数
SPI = EV/PV = 240/300 = 0.8(予定より20%スケジュール遅延)
*スケジュールは予定に対して 80% しか進んでいない。
- 完了時予測:
i.今後発生するコスト予測
ETC =(BAC-EV)/CPI =(1000-240)/0.6
≒ 1267万円(但し今後も同様の傾向が続くと仮定)
j.完了時総コスト予測
EAC = AC + ETC = 400 + 1267 = 1667万円(667万円のコスト超過)
k.予測工期
完了予測工期 = 予定工期/SPI = 5/0.8 = 6.25ヶ月(1.25ヶ月の工期超過)
【ブルズ・アイ・チャート】
ブルズ・アイ・チャートとは、SPIとCPIを統合したチャートのこと
- Aは、スケジュールは少し遅れているが、コスト効率は良いのでこれからの挽回は可能。
- Bは、スケジュールは順調だが、コスト効率が悪い。がんばれば納期に間に合うが、利益を確保するのは難しい。開発効率の改善の検討が必要。
- Cは、コストとスケジュールは計画を上回っている。このままでよい。
- Dは、スケジュールは少し遅れているが、挽回可能な範囲。コストは大幅に超過しているので、すぐに改善策が必要