How I Use Earned Value Management (EVM) to Track Agile Scrum Projects Part 2
In my first blog post (How I Use Earned Value Management (EVM) to Track Agile Scrum Projects), I showed how I use some EVM concepts to track agile projects. One of the comments from that post criticized the model because it did not incorporate SPI and CPI. As a result, I expanded on the model to take advantage of these calculations. Please note that the calculations below use hours as a stand-in for cost. To determine cost, simply multiple the hours by the hourly rate for the project.
Schedule Performance Index (SPI) is the ratio of Earned Value (EV) to Planned Value (PV). It measures the rate of progress that you are progressing at as compared to the original schedule. So a 1.0 SPI would mean you are progressing at your expected rate. Greater than 1.0 SPI means you are progressing faster than your expected rate, while less than 1.0 SPI means you are progressing slower than your expected rate.
Traditional SPI Formula: SPI = Earned Value/Planned Value
Calculation Used on This Page: SPI = (Actual Story Points/Sprint) / (Estimated Story Points/Sprint)
Cost Performance Index (CPI) is the ratio of Earned Value (EV) to Actual Cost (AC). It measures how much value you are getting per unit of cost spent on the project compared to your original estimate. So 1.0 CPI would mean you are delivering equal value as you expected. For agile projects, this means that your initial ratio of story points per cost (ex. hours) was accurate. Greater than 1.0 CPI would mean that you are completing points in less cost (ex. hours) than initially expected. Less than 1.0 CPI would mean that you are completing points in more cost (ex. hours) than initially expected.
Traditional CPI Formula: CPI = Earned Value/Actual Cost
Calculation Used on This Page: CPI = (Estimated Hours/Story Point) / (Actual Hours/Story Point)
Estimate at Completion (EAC) is what we expect the project to cost once we complete it. Initially this would be your Budget at Completion (BAC), or the estimate for the project. As you execute the project, unless you were 100% accurate in your estimate and everything goes according to plan (is that even possible), your EAC will begin to vary from your BAC.
Four EAC Formulas:
1. Original Estimate No Longer Valid
EAC = Actual Cost + Estimate to Complete
2. CPI Is Accurate
EAC = Budget at Completion / Cost Performance Index
3. CPI Is Abnormal
EAC = Actual Cost + (Budget at Completion – Earned Value)
4. Project Must Meet Deadline
EAC = Actual Cost + ((Budget at Completion – Earned Value) / (Cost Performance Index * Schedule Performance Index))
So if we take the initial scenario from the first blog post and add a few calculations, we get the following.
SPI: 1.0, since we have completed 25% of the functionality after we have consumed 25% of the schedule.
CPI: 1.0, since we have completed 25% of the functionality and consumed 25% of the cost (in hours).
EAC: Range of 1000 – 1000 hours, since we are in our ideal world and right on track, we expect our EAC to match our BAC, which was 1000.
Now let’s take our second example.
SPI: 0.52, since we have completed 13% of the functionality after we have consumed 33% of the schedule.
SPI = (Actual Story Points/Sprint) / (Estimated Story Points/Sprint)
SPI = (13/1) / (25/1)
CPI: 0.26, since we have completed 13% of the functionality and consumed 50% of the cost (in hours).
CPI = (Estimated Hours/Story Point) / (Actual Hours/Story Point)
CPI = (10/1) / (38.46/1)
EAC: Range of 1370 – 6935 hours, since we have delivered less value than expected. There are 4 different formulas to calculate EAC. We can use all 4 formulas, and then provide a range based on the highest and lowest EAC. In our example, the lowest EAC comes from AC+(BAC-EV) and our highest EAC comes from AC + ((BAC – EV) /(CPI*SPI)).
1. Original Estimate No Longer Valid
EAC = Actual Cost + Estimate to Complete
EAC = 500 + 3346
EAC = 3846
2. CPI Is Accurate
EAC = Budget at Completion / Cost Performance Index
EAC = 1000 / .26
EAC = 3846
3. CPI Is Abnormal
EAC = Actual Cost + (Budget at Completion – Earned Value)
EAC = 500 + (1000 – 130)
EAC = 1370
4. Project Must Meet Deadline
EAC = Actual Cost + ((Budget at Completion – Earned Value) / (Cost Performance Index * Schedule Performance Index))
EAC = 500 + ((1000-130) / (.26 * .52))
EAC = 500 + ((870) / (.1352)
EAC = 500 + 6435
EAC = 6935
*Note: You may choose to use a single EAC calculation based on which formula you think is most pertinent to your situation. In this example, the calculation that produces 1,370 assumes that the current CPI is abnormal. If this is not the case, then you could remove that estimate and end up with a range of 3,846-6,935.
So there you have it. We used the building blocks from the initial Agile EVM model and added some additional measurements for scope, schedule and cost baselines. By doing so, we also project a range for the final project cost (EAC).
A second criticism from the original post is that “Story points are subjective and do not have the objectivity of measurement in $ or man-hours”. While I agree that story points are subjective, I also believe that they provide more value than estimating time/money spent (see Time Remaining is More Important Than Time Spent). A team estimates them and uses relative estimation, so that each story is sized according to each other. I believe it is better to measure work than has actually been completed instead of what we have planned & estimate we will deliver in the future. While this may not directly correlate to business value (completing 25% of story points does not necessarily mean that we deliver 25% of the business value), it is measuring each story compared to the overall size. In the future, I may look into adjusting the model to also gauge business value as compared to the other factors.
Please feel free to leave comments as I am very interested in the thoughts of this model. Does it make sense? Are there inaccuracies? Are there additional calculations that could be added to provide more value?
Tom Sylvester