Home | Login | Recent Changes | Search | All Pages | Help
EarnedValueIn another thread, EffectivenessAndVisibleReminders, Charles asked if Dwayne was doing Earned Value. I don't understand how to do earned value for software. I understand how to implement by feature, which is the only way I believe any project can calculate earned value. But I still have a problem. Even if teams implement by feature, sometimes you have to change something about an already-implemented feature. Maybe the customer says "You did what I asked but it's not what I want." Maybe there's an unforeseen complication with another feature. It could be anything -- but the key is the new work changes the old work. So, I don't understand how to calculate earned value until there's a release, and it's quite possible the value will change as you proceed with the next release (whether those releases are iterations before a customer release or customer releases). What do you measure and why? -- Johanna Rothman 2005.06.04 Johanna, Thank you for throwing in cases that mess up the whole earned value system. ;-) Let me see if I am on the same track as you. Suppose you are implementing a feature this month. Your team must complete five tasks to implement the feature. Each tasks is planned for 30 person-hours of work and all the people are paid $40 an hour (made up numbers so the math is easier). This feature is worth 5 x 30 x 40 = $6,000 of value. When you complete the feature you have earned $6,000 of value. Now you can compare the value earned with what it actually cost you do implement the feature. If you needed 180 person hours instead of 150, you over ran your budget, i.e. you underestimated the difficulty of the task. The Cost Performance Index CPI=0.83 (CPI is the earned value divided by the actual cost, a CPI of 1.0 is right on, greather than 1.0 is better). Now to your question, the feature is done, but the user walks in a says, "That's not what I had in mind." Two of the things you can do: (1) Keep working on the feature until you satisfy the user. Suppose you do this and you worked an additional 100 person-hours. Now you worked 250 hours vice the 150 hours you planned. The feature has cost you 250 x 40 = $10,000, but its value is still only $6,000. The CPI is 0.6 - that's really bad. (2) You call the first delivery version 1.0 and the requested enhancements version 1.1. You plan the work for version 1.1 and estimate you will need 5 tasks, 20 person-hours per task, $40 per hour salary. Version 1.1 has a value of $4,000. You do the work and deliver version 1.1 with 100 person-hours of work. It costs you $4,000 and you deliver $4,000 of value. Good job. Alternative (1) above implies that you better know what you are doing before you start working. Alternative (2) above implies that you (and your bosses) understand that things can change in software and you better have some extra money lying around to cover the expense of those changes. I hope this example makes some sense. DwaynePhillips 4 June 2005 EarnedValue made a lot of sense to me when I learned it in a software management class, but then I looked closer at how it would be applied in the environments I work in, which tend to be small companies and startups. The first problem is "value". In Dwayne's example above, I assume the customer said "Yes, I'll pay $6,000 for that feature." But is that really value? What if the customer would really pay $12,000, but likes the original estimate? What if in running over, the customer would happily up the payment to $10,000 (while making a sad face)? The CPI suffers, but value is still being delivered. As I look at EarnedValue, I often see the original cost estimate (or an estimate that's been beaten down by management) conflated with value. One of the good aspects of EarnedValue is that the development team focuses on items that are of value the customer (or customers) in some prioritized order. But prioritizing features doesn't required EarnedValue. Agile methods prioritize. And in an environments where you learn as you go, and where the customer learns what they really want as they get what they initially asked for, does CPI make sense? I don't think so, particularly if CPI ends up being part of the compensation formula. The second problem, in Enterprise application development at least, is that "value" is very, very fuzzy. The best numbers I've seen come out of Sales, in the form of "We need the product to do X in order to make a $Y,000 sale." But often X is what the Sales folks thought they heard the prospect say, and once the development team builds X and the prospect sees it, the prospect clarifies that they really meant X'. In my world, this is normal. But it makes for a very unstable basis for doing EarnedValue. --DaveSmith 2005.06.04 A century ago, Oscar Wilde said, "Nowadays, people know the cost of everything and the value of nothing." Well, it still seems true today. I might not have much problem with so-called Earned Value if it was about value, but it's about cost. I can build something for a cost of $100 that has a value of $1,000,000 to me. And, I've certainly seen the opposite many times in software development--enormous costs that earn no value at all. Earned Value might earn some value in manufacturing processes where you're making competitive products (DVD players, cars, computers) where the price is tied rather closely to the cost of manufacturing, but in software, there's no such relationship. Let's give this one a rest, IMHO. - JerryWeinberg 2005.05.04 The term "value" in earned value never made much sense to me either. Oh well, someone created that term and it has stuck. I believe in agile methods people use the term "velocity." As I understand it, velocity does the same thing as earned value. You make an estimate, compare it to your actuals, and adjust your future estimates. If your earned value indicies are consistently 20% under, you adjust your future estimates by 20%. DwaynePhillips 5 June 2005 In every description of Earned Value that I've read, it actually just measures in dollars the actual costs at a point in time as a percentage of total predicted costs. (or something like that.) Nothing about value and not really tracking individual completed features and the value of those features -- more commonly tracking completed tasks, which we know don't necessary correlate with individual features. I've heard of at least one XP project where the stories are given estimates in dollars of what their value will be, and they schedule the highest-valued stories first. All XP projects are supposed to do this, but usually the value of the stories is not stated in dollars and their value-estimates derived from expected sales figures (with hard data to justify those figures). KeithRay 2005.06.05 Earned Value conflates value and cost. XP deals with them separately. "Velocity" is, roughly, the amount of estimated work (in some arbitrary unit of measure) that a team accomplished per some unit of time. Velocity is a backward-looking measure that's used for forward planning. For example, if my team got 12 "units" of work done during the last iteration, we'll plan for no more than 12 units of work for the next iteration (more work may get added if we're ahead of plan, or some will get removed if we're behind. No matter, the cap is 12 units). After the next iteration, velocity gets recalculated. Velocity has a short shelf-life. As long as we're estimating consistently--a fanciful but necessary assumption--the estimated to actual ratio doesn't matter. The quality of estimations stops being a moral issue. The focus shifts to how much work the team actually gets accomplished. (We worry about our estimates inside the development team, but it's an internal issue.) XP's velocity is independent of the "value" of the tasks being performed. Our product manager (acting as a proxy for our customers) worries about value. He keeps a spreadsheet of estimated dollar values for tasks, and does some math using dollar value vs. estimated effort to help him prioritize, but the development team rarely sees that spreadsheet. All we care about that the work in front of us has been prioritized. Agile (as a superset of XP) adopts the Lean Production measure of "throughput", which joins velocity and value back together by talking about how much value a team is producing per unit of time or cost. --DaveSmith 2005.06.05 Dwayne, thank you for your great description and explanation. I don't think I've ever worked on a project where we knew enough of the requirements at the beginning to calculate earned value, unless we were willing to live with a "bad" CPI. I do like the idea that if the product is good enough to release, you get to claim something for this release and something for the next release. -- JohannaRothman 2005.06.07 (at least in my time zone it is) Velocity is the derivative (the rate of change) of what you're measuring. You could have cost-velocity (burn rate, I think), or value-velocity, or work-accomplished-velocity, which is what Agile methods are estimating by using the rate experienced in one or more earlier periods. Agile velocity is the rate at which the team has accomplished work in the past, which is about the only thing you can use (except for prayer) to estimate the rate at which they will accomplish work in the future. But it's an estimate only, not a promise. -- JerryWeinberg 2005.06.07
Updated: Tuesday, June 7, 2005 |