LoginSignup
1
3

More than 3 years have passed since last update.

PMP試験に出てくるEVM計算をやってみよう!

Last updated at Posted at 2020-04-26

EVM(Earned Value Management)とは

プロジェクトが計画した通りに進んでいるかを管理する進捗管理のツールである!

基本指標

略語 正式名称 内容
BAC Budget At Completion 最初の予算!
EV Earned Value 計測時点で得られた成果!(予算*進捗率)
PV Planned Value 計測時点で得る予定だった成果!(予算*計画進捗率)
AC Actual Cost 計測時点で使ったお金!

分析指標

略語 正式名称 数式 内容
SV Schedule Variance SV = EV - PV 計画差
CV Cost Variance CV = EV - AC コスト差
SPI Schedule Performance Index SPI = EV / PV 計画パフォーマンス指標
CPI Cost Performance Index CPI = EV / AC コストパフォーマンス指標
EAC Estimate At Completion EAC = BAC / CPI 完了時コスト予測
ETC Estimate To Complete ETC = EAC - AC 残り費用の予測
TCPI(BAC) To-complete performance index(BAC) ( BAC - EV ) / ( BAC - AC ) BAC達成に必要なコストパフォーマンス
TCPI(EAC) To-complete performance index(EAC) ( BAC - EV ) / ( EAC - AC ) EAC達成に必要なコストパフォーマンス
VAC Variance At Completion VAC = BAC - EAC 完了時コスト差

EVM計算ツール実行環境

$ python3 -V
Python 3.7.3

EVM計算ツール

skt-pmp-evm.py
# -*- coding: utf-8 -*-


class ProjectSnapshot:
    bac = 0  # Budget At Completion
    pv = 0  # Planned Value
    ev = 0  # Earned Value
    ac = 0  # Actual Cost

    sv = 0  # Schedule Variance
    cv = 0  # Cost Variance
    cpi = 0  # Cost Performance Index
    spi = 0  # Schedule Performance Index
    eac = 0  # Estimate At Completion
    etc = 0  # Estimate To Complete
    tcpi_bac = 0  # To-complete performance index (BAC)
    tcpi_eac = 0  # To-complete performance index (EAC)
    vac = 0  # Variance At Completion

    def __init__(self, bac, pv, ev, ac):
        self.bac = float(bac)
        self.pv = float(pv)
        self.ev = float(ev)
        self.ac = float(ac)

    def compute_evm(self):
        self.sv = self.ev - self.pv
        self.cv = self.ev - self.ac
        self.cpi = self.ev / self.ac
        self.spi = self.ev / self.pv
        self.eac = self.bac / self.cpi
        self.etc = self.eac - self.ac
        self.tcpi_bac = (self.bac - self.ev) / (self.bac - self.ac)
        self.tcpi_eac = (self.bac - self.ev) / (self.eac - self.ac)
        self.vac = self.bac - self.eac

    def print_status(self):
        print("----")
        print("BAC:" + str(self.bac))
        print("PV:" + str(self.pv))
        print("EV:" + str(self.ev))
        print("AC:" + str(self.ac))
        print("----")
        print("SV:" + str(self.sv))
        print("CV:" + str(self.cv))
        print("CPI:" + str(self.cpi))
        print("SPI:" + str(self.spi))
        print("EAC:" + str(self.eac))
        print("ETC:" + str(self.etc))
        print("TCPI_BAC:" + str(self.tcpi_bac))
        print("TCPI_EAC:" + str(self.tcpi_eac))
        print("VAC:" + str(self.vac))

if __name__ == "__main__":

    bac = input("Please Input [Budget At Completion]:")  # Budget At Completion
    pv = input("Please Input [Planned Value]:")  # Planned Value
    ev = input("Please Input [Earned Value]:")  # Earned Value
    ac = input("Please Input [Actual Cost]:")  # Actual Cost

    p = ProjectSnapshot(bac, pv, ev, ac)
    p.compute_evm()
    p.print_status()

EVM計算ツールをgithubからcloneする

$ git clone https://github.com/Yumenoshima/skt-pmp-evm.git
Cloning into 'skt-pmp-evm'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.

$ cd skt-pmp-evm

EVM計算ツールを使ってみる

$ python3 skt-pmp-evm.py 

Please Input [Budget At Completion]:1200
Please Input [Planned Value]:600
Please Input [Earned Value]:400
Please Input [Actual Cost]:500
----
BAC:1200.0
PV:600.0
EV:400.0
AC:500.0
----
SV:-200.0
CV:-100.0
CPI:0.8
SPI:0.6666666666666666
EAC:1500.0
ETC:1000.0
TCPI_BAC:1.1428571428571428
TCPI_EAC:0.8
VAC:-300.0

結果を分析

  • 入力内容
    • BAC 当初予算1200ドル
    • PV 予定進捗600ドル分
    • EV 実際進捗400ドル分
    • AC かかった費用500ドル
  • 分析結果
    • SV (EV-PV) 予定と実際の差 -200ドル (遅れている!)
    • CV (EV-AC) かかったコストと得られた効果の差 -100ドル (開発効率悪いよ!)
    • CPI (EV/AC) 得られた効果とかかったコストの割合 0.8 (開発コスト効率80%!)
    • SPI (EV/PV) 得られた効果と予定の割合 0.66 (予定達成率66%!)
    • EAC (BAC/CPI) 完了時コスト予測 1500ドル (500ドル予算オーバー見込み!)
    • ETC (EAC-AC) 残コスト予測 1000ドル (あと1000ドルの費用で完了見込み!)
    • TCPI_BAC (BAC-EV)/(BAC-AC) 当初予算達成に必要なコスパ 1.14 (今後114%のパフォを出せば当初予算で終わるリカバリーが可能に!)
    • TCPI_EAC (BAC-EV)/(EAC-AC) コスト予測をキープするために必要なコスパ 0.8 (開発コスト効率80%維持でコスト予測通りになる!)
    • VAC (BAC-EAC) 完了時コスト差 -300ドル (完了時に300ドル予算オーバー見込み!)

おしまい

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3