In a few entries on my blog, I have referred to Velocity and only briefly explained what it is. I think it's about time I explain properly for those not familiar with it.
Velocity is terminology from the Scrum agile methodology and is basically the same concept as Earned Value in more traditional project management methods.
This is how it works...
- Select a regular time period over which to measure Velocity. If you're using fixed Sprints or iterations, use that time period. Otherwise you can use weeks, fortnights or months. It doesn't really matter which as long as you're consistent.
- Add up the estimates for all the tasks/deliverables/features in your chosen time period. It doesn't matter whether the estimates are in days, hours or even in relative points.
-
Only include the estimates for any items that are 100% complete and signed off within the time period. Anything still in progress counts as zero, as there is no value in incomplete work.
- At the end of the chosen time period, the figure you have is your Velocity (or Earned Value).
You can then use your Velocity as a basis for your future commitments. As a result, it is self-correcting.
For example, let's say you estimate in hours and track your Velocity in 2 week Sprints. You know, therefore, there are 70 hours available in a Sprint, but find you tend to deliver a Velocity of 50 hours (because of under-estimating and other interruptions throughout the day). Tracking this trend will allow you to commit to your 'norm' of 50 hours per Sprint in future, because you know that's what you usually manage to achieve.
As a consequence of this approach, you don't need to be any good at estimating, and don't need to get any better at it. As long as you're consistently bad, you will still get better at delivering on your commitments.
In my experience, it's just as common for people to over-estimate by being too cautious. Velocity is also self-correcting this way around...
If, for example, you find you tend to reach a Velocity of 90 hours in your 70 hour Sprint, you are probably not a super-hero code warrier that eats problems for breakfast. You are probably just being too cautious in your estimating. In this case, in future commit to 90 hours. This might sound counter-intuitive, but go on. I dare you :-)
Although Velocity and Earned Value are project management techniques, why not know your own Velocity. If you do, you'll find you can gauge much more accurately how much work you can really commit to. Even if you're lousy at estimating!
And guess what? Everyone loves someone who delivers on their promises.