転職先のチューターから、EVM については知っててほしい(というか、EVMくらい知ってるでしょ的なニュアンス)ということだったので、学習したメモを残します。
それと、EVMを調べて思ったこともポエムで残します。
EVM(Earned Value Management)とは
EVMなんて情報処理試験に出てきたなぁくらいだったんで、スタート地点は興味なかったです。
まずは学習させていただいたリンクを以下にはります。
↓定義としてのEVMを理解するのに役立ちました。
↓さすが識学さんの記事です。腹落ちします。
自分なりの言葉で説明すると、以下の感じです。
EVM の目的
プロジェクトには四天王がいます。(アジャイル侍より)
プロジェクトの進捗において、これらがリスク源泉となるのは有名な話です。
すべてを満たすことは不可能であり、トレードオフを前提として優先度付けをしてプロジェクトを進めるのが現代では当たり前と理解しています。
そんな中、乱暴な解釈ですが、EVMはこの四天王の中で予算に焦点を当てたプロジェクト管理手法と認識しています。
各種定義
例
以下のプロジェクトがキックオフしたとする。
- 予算400万円
- 工期4か月
現在、2か月経過して、
- 使用した予算は300万円
- 進捗率20%
上記の場合におけるEVMを計算する。
基本的な指標
名称 | 説明 |
---|---|
BAC(Budget at Completion) | プロジェクトの予算 |
AC(Actual Cost) | 現時点で実際にかかっているコスト |
PV(Planed Value) | 現時点でかかっていると予想していたコスト |
EV(Earned Value) | 現時点の成果(現時点の進捗までに予想していたコスト) |
BACとACとPVは、事実なので愚直に算出できます。
- BAC=400万円
- AC=300万円
- PV=2か月経過しているので、当初予想工期の半分経過しているから、2か月経過時の予想コストは、400 × 0.5 =200万円
ただし、EVが微妙です。進捗の仕方が線形であると仮定するならば、予算×進捗率
で計算できますが、非線形である場合はどうやって計算するんでしょう?ちょっと調べたけどわかりませんでした。ぱっと思いつく式としては以下の感じでしょうか。
EV = PV × 現時点の実際の進捗率 / 現時点で予想していた進捗率
ここでは上記式より、 EV=200 * 0.2 / 0.5=80万円
導き出される指標
名称 | 説明 |
---|---|
CPI(Cost Performance Index) | コスト効率指数。ぶっちゃけ後述する残りの予想コスト算出で使用するために使うので、意味はどうでもよさそう |
SPI(Schedule Performance Index) | スケジュール効率指数。個人的にはこの指標には何の意味もないと思っている。スケジュールに関しては後述するESMを使用したほうが良い |
CPI=EV/AC
残りの予想コストの算出
名称 | 説明 |
---|---|
ETC(Estimate To Completion) | 残作業コスト予測。プロジェクト完了するまでに、残りどのくらいのコストがかかるかの予想値 |
EAC(Estimate At Completion) | 完了時コスト予測。プロジェクト完了時の総コストの予想値 (つまり、ETC+現時点までのコスト) |
VAC(Variance At Completion) | 完了時コスト差異。プロジェクト完了時に、当初の予定よりどれくらいコストが超過するかの予想値 (つまり、当初予算-EAC) |
ETC=(BAC-EV)/ CPI
=(BAC-EV)/ (EV / AC)
=AC *(BAC-EV)/EV
上記の場合で言うと、
残作業コスト=300×(400ー80)/80=1200
よって、残り1200万円のコストが予想されるということ。
完了時コスト予測=残予想コスト+現時点のコスト
となるため、1500万円。
完了時コスト差異=当初予算-完了時コスト予測
となるため、-1100万円。
今回の例では、プロジェクト完了時にはコストが1100万円も超過するということになります。
EVMの利点
上記の通り、EVMはコスト(予算)を指標としてプロジェクトを管理するため、コストに関しては厳しく管理できます。
また、コスト超過が見つかった際には、以下の選択肢をとることにより、その後のプロジェクトの開発方針を決めることができます。
- コスト超過を許容して、プロジェクトを推し進める
- スコープを縮めて、コスト超過を抑制してプロジェクトを推し進める
- 品質レベルを下げて、コスト超過を抑制してプロジェクトを推し進める(←まあこんなこと顧客には提案できないけど・・・)
- プロジェクトを中止する(←これも顧客には提案できないけど・・・)
EVMの欠点
世の中完璧なツールや手法というのは存在しないので、絶対に何かしら欠点があるのですが、EVMは「品質を無視する」という決定的な欠点がありそうです。
なので、まずEVMを使用してプロジェクト管理する際には、品質管理が抜け落ちている点には絶対に留意する必要があると思います。
(以下自分の意見(ポエム)です。ご注意ください)
また、算出には過去のデータを線形にならしている点も注意が必要です。
ある程度の予想値としては使用できると思いますが、プロジェクトのコストは時系列と線形の関係ではありません。
例えばウォーターフォールを想定すれば当然のことになるのですが、要件定義のフェーズと実装のフェーズ、テストのフェーズでコスト算出の方法はそれぞれ異なります。それを同列にしてコスト管理するのは結構乱暴です。なので、工程をまたいでEVMを使用する場合は注意が必要だと考えます。
さらに、時間もほとんど管理できないと考えます。
EVMのグラフの横軸が時系列であるため、なんとなく時間も管理できそうな気もしますが、経験則からプロジェクトはコスト管理だけでスケジュールを調整できません。
何が言いたいかというと、例えばEVMによって、残りの残コストが想定したよりも大きくなっていたとします(つまり、予算オーバーになっている状況)。このとき、じゃあ予算増やす(=人員を増やすとか開発環境を良くするとか)ことで当初の予定通りのスケジュールに終わらせることできるかといったそうではありません。
上述した通り、予算だけではなく品質レベルとスコープ範囲を調整しない限り、スケジュールは調整できないです。要は、人月管理でスケジュール調整できないってことです。
なので、EVM はコスト管理はできますが、それ以上でもそれ以下でもないってことですね。
ESM(Earned Schedule Management)
EVM の代わりにスケジュール管理する手法
上記のポエムの通り、個人的には EVM はコスト管理に特化しているのでスケジュール管理には全く機能しないと考えます。
なので、正直なところ「EVMはプロジェクト管理手法ではなく、コスト管理手法だろう」というのが自分の思いなのですが、ググってみたら ESM(Earned Schedule Management) なるものを見つけました。
調べてみると、これは確かにスケジュールの遅延見積もりには役に立つという認識です。(スケジュール調整に役立つという認識ではない)
EVMと同じように、参考になったリンク先をはります。
↓ESMの必要に性について論じられている。
↓本家?英語のサイトだけど定義がしっかりしている
ESM の定義
上述のEVMと同じ状況を想定します。
基本的な指標
名称 | 説明 |
---|---|
ESCT(Estimate to Complete Time) | プロジェクトの予想工期 |
AT(Actual Time) | 現時点の経過時間 |
ES(Earned Schedule) | 現時点の進捗率に到達するために、当初予定していた時間 |
SV(Schedule Variance) | スケジュール差異 |
ESCTとATは、事実なのでそのまま数値化できる。
- ESCT=4か月
- AT=2か月
ESに関しては、20%進捗に達するときにはどれくらいの時間で経過予定だったかを計算する。
言葉ではわかりにくいので下記グラフを参照。
下記グラフより、
- ES=0.8か月
また、SV=ES-AT
と表現できる。そのため、
- SV=0.8 – 2=-1.2か月
残り予想工期の算出
名称 | 説明 |
---|---|
ETCT(Estimate To Completion Time) | 残作業時間予測。プロジェクト完了するまでに、残りどのくらいの時間がかかるかの予想値 |
ETCT=(全体工期-ES)/(ES / AT)
=AT * (全体工期-ES)/ES
今回の場合だと、ETCT=2×(4-0.8)/0.8=8 より、残り8か月かかると予想できる。
コメント