Agile EVM and Earned Business Value Metrics
Agile EVM and Earned Business Value Metrics
Agile EVM and Earned Business Value Metrics
We want to be able to answer these questions with confidence. In order to discuss metrics that address these questions, we first need to define some Scrum-specific terminology: sprint, feature, and story. We would like to know how our project is doing all the time, but must settle for getting answers to these questions each sprint cycle, where a sprint is defined as a (fixed) time interval that begins with planning, contains work, and ends with review.
A feature is something about our project and/or product that we advertise or sell, and that we must do work on to provide. Typically, our product is described as a list of features, such as: Users Can Update Customer Information Supports the XXX Claims Form Added "Updated Customer Info" Reporting Improved User Interface Faster Rendering of Reports Improved Security and Protection against Hackers And so on
Features are implemented in the product by working on stories, and the stories are said to belong to the feature. A story is the fundamental unit of value, requirements, and work that is visible from both the inside (i.e., the team, product owner) and the outside (i.e., business owner, stakeholders, etc.) of the project. In other words, stories are used as the interface between the business and development sides of the project. Stories are important since they are the smallest units of value that are managed. Stories have been described as "promises for conversation" by Alistair Cockburn [4], and I agree wholeheartedly. Basically, a story consists of four things: 1. 2. 3. Description: A short description of the goal to be achieved. Size: A relative measure of difficulty of the story, measured in StoryPoints (SPs). Business Value (BV): A measure of how much this story is worth to the business, which can either be relative or absolute. Not all stories have Business Value, but the ones that drive development do. Validation Criteria: What it means to be "done" with this story. This is probably the most important attribute, as being "done" is what allows the team to earn the storys SPs and BV.
4.
AGILE EVM
In [2], Tamara Sulaiman et al pointed out that standard Earned Value Management (EVM) metrics could be used to help manage Scrum projects. Her realization was that the units of value for the purpose of EVM are earned StoryPoints (SPs); that is, the SPs of the Stories that have met their Validation Criteria. In order for SPs to be an appropriate measure of value, they must represent something about the story, not about the team. In particular, they cant explicitly represent a teams effort, as this leads to the common trap of value being measured by hours delivered rather than product delivered. I recommend that SPs be a relative measure of innate difficulty of the story and that they focus on how big, not how long, the story is. Typically, I get this value by asking a question like: How difficult is this story, given good code to work with and an ideal team? Once we have SPs to work with, we can calculate EVM metrics as we find in [2]. In what follows, I have modified the calculations from what is found in [2] in order to focus on the two metrics of most interest, CPI and SPI. However, the ones in this paper are the same AgileEVM metrics that we find in [2]. These are not new metrics; they are just calculated differently. In addition, the calculations for these metrics are easily understood and involve information that should be readily available for a Scrum project. In order to calculate AgileEVM metrics, we need to know a few things. First of all, we need to have expected, or baseline, values to compare our actuals to. We could have baselines that are complexespecially those that are based on team size/cost varying through timebut, in this paper, we assume consistency across sprints, as in the following table.
Name BV BC/SP
Definition Baseline Velocity how many SP/Sprint we expect on average. Baseline Cost per StoryPoint how much we expect to pay for each SP on average.
Once we have these baseline values, we gather data for each sprint as we go. The following are the data we collect (actuals), and the derived metrics we use to compare to our expectations. Table 2: Sprint Data Points
Definition Sprint number starts at 1 Points Completed the SPs for the stories completed in the sprint Total Points Completed the total of all the SPs for all the n stories completed to this point = 1PCi Actual Velocity after n sprints = TPC/n Actual Cost for the sprint, typically given in Person-Days or Currency. Total Actual Cost the total of all the Actual Costs so far = n 1PCi Actual Cost per StoryPoint the average cost so far = TAC/TPC
With these definitions, we can now calculate our Earned Value Method (EVM) metrics. I don't want to go into all the gory details about how EVM metrics are calculated, so let's start off with the very basic definitionthat of Earned Value. Basically, earned value is defined as "the value of completed work," according to the PMI. Since what were using for completed work here is completed StoryPoints, earned value will be the amount that we should've spent for the number of StoryPoints that we've gotten done so far, based on our baseline.
th That is, at the end of the n sprint, when we have completed TPC StoryPoints, our earned value is (TPC)(BC/SP), our total StoryPoints times our Baseline Cost per StoryPoint, the amount that we believe we should've spent for the StoryPoints we got. Another metric wed like to have is Planned Value (PV), which is defined as how much we had planned to spend by now. After n sprints, we should have received nBV StoryPoints, at a cost of BC/SP apiece, so PV = nBV(BC/SP).
Once we have an EV, we can calculate all the standard EVM metrics. The two that were really interested in are Cost Performance Index (CPI) and Schedule Performance Index (SPI), as we use these two metrics to calculate variances and revised estimates. The standard definition of CPI is: CPI = EV/TAC = TPC(BC/SP)/TAC = (TPC/TAC)(BC/SP) = (BC/SP)/(TAC/TPC) = (BC/SP)/(AC/SP) or, in words, Cost Performance Index (CPI) = (Baseline Cost per StoryPoint)/(Actual Cost per StoryPoint). Likewise, the standard definition of SPI is:
SPI
Schedule Performance Index (SPI) = (Actual Velocity)/(Baseline Velocity). In other words, we have the following calculations.
Definition Cost Performance Indexmeasures if we are getting the SPs we are paying for, CPI = (BC/SP)/(AC/SP) Schedule Performance Indexmeasures if we are getting the SPs at the rate we expected, SPI = AV/BV
If the project went according to plan, both CPI and SPI would = 1 every sprint. If CPI > 1, were spending less than we expected for each StoryPoint, if CPI < 1, were spending more. If SPI > 1, then were finishing earlier than expected, if SPI < 1, were finishing later. These two metrics give us a fairly complete look at our StoryPoint production, and give us the ability to determine if were on track or not. The CPI and SPI metrics can be used in all the standard ways for our agile project: to determine new expected release dates, to determine efficiencies of our team, and so on. For example, if we were planning a 10-sprint release, and, after sprint 5, our SPI was .75, we would expect that our actual release would be after 10/.75 = 13.33 13 sprints. Likewise, if our total budget was 5000 person-days and our CPI = 1.2, we would expect to actually spend only 5000/1.2 4166 persondays. Also note that SPI and CPI are useful even for maintenance-type projects with no fixed release date. We can incrementally calculate SPI and CPI on each sprint boundary or even as each story is completed. By looking at these two metrics, we can determine if our team is working as fast and efficiently as we planned them to do. This is good stuff, but assumes that the purpose of the team is to deliver completed StoryPoints while, in actuality, its purpose is to deliver Business Value. Unfortunately, these metrics do not tell us anything about actual Business Value, they only tell us about how well we are getting our StoryPoints. We are answering: Are we getting StoryPoints at the rate we expected (SPI)?; and Are we paying what we expected to pay for them (CPI)?
This is the primary difference between traditional projects and agile ones. In traditional projects, we are expecting to deliver everything in our requirements document, so all we need to measure is efficiency and effectiveness of delivery. In other words, EVM metrics are enough for traditional projects. However, in agile projects, we dont know exactly what were going to deliver. Were constantly evaluating to see if we have enough, if weve generated sufficient ROI, etc., so we need some way of determining the Business Value of what weve got so far in order to make that determination.
of the products (releases) known Business Value that is currently earned1. In other words, we have the definitions in the following table. Table 4: Business Value Metrics
Name BVI(Story)
Definition The Business Value Index of a storythe percentage of the total Business Value that the story owns =
BV(Story) BV(Story)
EBVn
where the sum is over all stories in the product / release, as appropriate. Earned Business Valuethe total of all the Business Value Indices for the completed stories = BVI(story) for all the stories completed in the first n sprints (its a running total).
This last metric, EBVn , is what we graph and call the Earned Business Value (EBV) graph. In [3], I have previously published a way to calculate BV(story) based on a Work Breakdown Structure that organizes the stories, and I omit that discussion here. Now that we have these three metrics (CPI, SPI, and EBV) to track, lets look at a simulation. We will do this in stages: 1. 2. 3. 4. Give the nominal (expected) curve for delivering Business Value for a feature. Propose an ideal strategy for delivering a release, defined by a few features. Show what might happen if the team does not deliver as expected, presenting CPI, SPI, and EBV graphs. Note some of the issues and conclusions we can draw from this simulation.
So it more correctly could be called the Earned Business Value Index (EBVI)
The simulation we present uses this particular curve to determine BVI(story) for all the (feature) stories involved in the simulation. Most of us have heard of the Pareto axiom, which is that we get 80% of the Business Value for 20% of the effort. I note here that the final 2/3 of this graph (after the architecturally significant stories) has the same basic shape as a 60/20 curve, which is less aggressive than an 80/20 curve and allows us less than perfect analysis and delivery. In other words, the 80/20 curve is what we notice in hindsight, looking back to see what actually delivered Business Value. The 60/20 curve is the best we can actually do when we move forward, as we chew up time and effort finding the stories that will provide Business Value.
We have a total of 500 SPs to play with in this release and we budget them as follows to the three features we plan to deliver. We also show the BV for each feature in this table. Table 5: Basic Release Strategy
In this simple formulation, the feature labeled chores represents all the work we have to do that doesnt produce any Business Value, such as team infrastructure and training, analysis, and so on. Chores take time and effort, but the value they produce is not Business Value and is usually budgeted as 1/3 (or so) of the total budget, as we do here. Note that we do not have a baseline effort for any of the features or chores. This is because we are delivering Business Value, not effort, and our budgets are in SPs, not effort. Effort is the variable here, since we are being agile. Let me note two things: Even though chores dont provide Business Value, their StoryPoints are included in the EVM metrics, as they represent value produced by the team. In my StoryPoint scale, a medium-sized story is worth 4 SPs, so these budgets range between 20 and 40 medium-sized stories. This is reasonable, since in my (use case-based) experience, it takes between 10 and 40 stories to produce a minimally releasable version of a (use case) feature. Once we have the StoryPoint budgets, we make an ideal strategy for delivering them across the 10 sprints, as represented in the following graph. If the strategy worked perfectly, we would have the following delivery of SPs for the features, as we moved through the 10 sprints. Note that as we move through the stories for a given feature, we are assuming were providing Business Value (for each feature) as if we were moving along the S-shaped graph given in Figure 1. Figure 2: Ideal StoryPoint Delivery of the Release
It is very important to note that we do not know all the actual stories that will be delivered for the features at this point in planning. We may know some of them, but not all (and usually not even most). As part of the agile process, we are discovering them as we go through continuous discovery, analysis, and design. This continuous, reality-based, discovery process is inherent to agility, and results in us delivering Business Value in an optimized way, which we assume conforms to Figure 1 for each feature in this simulation. It is this process that allows the team to find a minimal releasable set of features as soon as it can, and then move beyond that point to provide additional Business Value. Typically, we think of this as getting the meat and potatoes out of the way first, and then adding in the exciters. The following figure gives the calculated EBV graph for this Ideal Delivery as we move through the sprints, based on earning BV as in Figure 1. Note that the presence of chores for the first few sprints flattens the curve compared to Figure 1, since the value chores produce is not BV.
Of course, there are also CPI and SPI graphs we could present, but in this ideal strategy they are both flat and = 1 all the time, as they are the ideal ones
In order to complete the picture, we also need to know how much effort our team put in each sprint. Here is that data, given in person-days rather than currency. Table 6: Person-Days Expended per Sprint
1 50 50
2 50 52
3 50 65
4 50 50
5 50 55
6 50 60
7 50 50
8 50 55
9 50 50
10 50 55
Now lets do some comparisons, and draw some graphs. First of all, we know we didnt deliver everything we wanted to, so lets look at what we did do on a feature-by-feature basis. Then well look at the graphics that showed the teams performance as it moved through the sprints. Table 7: Comparison of Release Strategy to Actual Production
Business Value (%) Expected 0.5 0.3 0.2 0.0 1.0 Actual .477 .288 .194 0.0 .959
Story Points Expected 100 160 80 160 500 Actual 70 115 60 189 434
The total person-days used was 542 and the total SPs achieved is 434. Since we were planning for each to be 500, were not surprised that we have the following CPI and SPI graphs.
This looks bad, and it isif what were worried about is the delivery of SPs. Fortunately for the project, the re-planning at the sprint boundaries was done in a rational matter, with constant changes of the story delivery based on the storys BV. The result is that we wind up with the following Earned Business Value graph, which ends up with a maximum EBV of ~96% at the end of 10 sprints. Figure 6: EBV Graph for this Non-Ideal Release
Note that even though we only delivered 87% of the SPs we wanted to (based on SPI), we got ~96% of the Business Value. Since we usually expect a minimal releasable product at about the 90% mark, we can call this project a success, as long as were looking at Business Value. We didnt get everything we wanted, but we got what counted. This is actually not so surprising if we remember Paretos 80/20 principle (or the 60/20 that we can actually achieve), but it is gratifying to see a simulation that demonstrates it so convincingly.
SUMMARY
Earned Value Management metrics are applicable to agile projects, but should be coupled with an Earned Business Value metric to give a complete picture. Surprisingly (or perhaps not), EBV is not as tightly coupled to CPI and SPI as one might think.
10
Assuming a reasonable S-curve describing delivery of a features Business Value, we can still deliver a substantial overall Business Value even though we fall short on the standard AgileEVM metrics. However, this only works if there is constant re-planning with Business Value as the main concern. The Product Owner must focus on delivery of Business Value and not the delivery of SPs. That is, the project must be agile
ABOUT COLLABNET
CollabNet is the leader in application lifecycle management (ALM) platforms for distributed software development teams. CollabNet TeamForge is the industrys most open ALM platform, supporting every environment, methodology, and technology. With an integrated suite of easy-to-use tools that share a centralized repository, it is the only ALM platform that enables a culture of collaboration, improving productivity 10-50% and reducing the cost of software development by up to 80%. As the founder of the open source Subversion project, the best version control and software configuration management (SCM) solution for distributed teams, collaborative development is in CollabNets DNA Millions of users at more than 800 organizations, including Applied Biosystems, Capgemini, Deutsche Bank, Oracle, Reuters, and the U.S. Department of Defense, have transformed the way they develop software with CollabNet For more information, visit www.collab.net.
REFERENCES
1. Denis F. Cioffi, Ph.D., New Tools for Project Managers: Evolution of S-Curve and Earned Value Formalism, presented at Third Caribbean & Latin American Conference on Project Management, 2123 May 2003 Sulaiman, Barton, Blackburn, AgileEVM earned Value Management in Scrum Projects, presented at Agile2006, 23-28 July 2006 Rawsthorne, Calculating Earned Business Value For An Agile Project, AgileJournal.com, June 2006 Jeffries, Anderson, and Hendrickson: Extreme Programming Installed, Addison-Wesley, 2001.
2. 3. 4.
11