Earned value management (EVM) is a technique for measuring whether your project is going pear-shaped with regards to either schedule or budget. It is simple by nature, and therefore ideal for managing smaller projects, and of course most projects are smaller projects. Here’s how it works.
- Break your project down into tasks. You could create a “work breakdown structure” hierarchy or simply make a list. All the work in the project should be accounted for.
- Give each task a value. For software development, it makes sense to allocate your developer’s best estimate of the hours involved to each task. These are the “planned values” (PV).
- Define a rule describing how progress on a task translates into “earned value”. “0/100″ means that you only get points for finishing the project. “50/50″ is another common option meaning you get half now, half later. Your rule could be more sophisticated than this.
- Initiate the project and start tracking costs (time spent). Draw up a progress chart (the sample here is from Wikipedia). The chart should have lines for planned value (PV), earned value (EV) and actual cost (AC), with weeks on the X-axis. The planned value line should run from 0 to the total value (total estimated hours) over the course of the total number of weeks allocated — it could simply be a straight line.
- Each week, add up all the EV values for all the tasks and plot the total on your chart. Add up all the costs (AC) and plot that too. If the EV line falls below the AC line, then your work is taking longer than expected. If these lines are similar then the work estimates were good. If the EV line falls below the PV line, then you have a resource problem: not enough work is being done on the project to meet your deadline.
And that’s all there is to it! We are establishing a new tool for tracking time on tasks and projects soon, and this tool will have “% complete” progress assessments on tasks. I will base the earning rule on that. However, there are several more factors I need to consider. First is the “hilarious” programming joke about work being stalled at 90% complete: it reflects an underlying truth, that it is generally easy to get an application or component mostly right, but it takes longer than expected to handle all those edge cases. Secondly, in my experience, taskoften stall pending either resources or feedback from the client or internal review. There needs to be an incentive to get a task started and another to get a task concluded (this is why the simple 50/50 rule is popular). So I will be trying the following earning rule for each task, summed over all tasks:
EV = (0.25 if task started + 0.25 if task finished + % complete / 2) * PV.