Pages

Monday, 25 May 2009

Easy Tracking Using Velocity Estimation

The easiest way I have found to plan and track progress is to calculate a "Team Velocity". By collecting data we can establish the velocity of the team. Based on the initial estimates we gave the work and calculating the difference.
For the original estimates I like to get the team as a whole to estimate the amount of perfect days it would take to complete the job. Perfect days being no problems, no interruptions, just concentrated work, which we know is not going to happen.

It is important to stress to the team that these are not figures they are going to be held to but 'points' to input into the estimation process.

If you are completely new to this process you will have to come up with an initial velocity. Now if you have a team of 6 working for 4 weeks that would give us 120 man days of work! Right so now we have our perfect days estimated earlier so every manager in the world will be tempted to have a velocity of near to 120.

Now the engineers will realy start to panic. OK so a hundred is a good idea... actually if you put it any higher than sixty on your first iteration you will probably fail.

A velocity of 1/3 to 1/2 of the overall man hours is more realistic. If you are not using agile ideas so don't expect your efficiency to be too high. The good news is that now you have started measuring, you will start to see problems, can focus future improvements and push the velocity up.

But whether you initially have a velocity way too high or way too low it is not something to worry about for too long as once you have completed as iteration you now know the velocity for that iteration. So if you guessed 20 and it turns out to be 40, excellent next iteration you can include more work.

As more iterations pass you team velocity value will become better. In that its closer to reality, sometimes higher, sometimes lower but in general about right.

A way I like to adjust the velocity estimation is to something like the "new team velocity = current iterations velocity + 9 * the previous team velocity / 10" which I think much clever people than myself call a one-dimensional filter!
Using team velocity is an amazingly simple way to improve your estimation process. It gives the team the power, easy to implement and give management the information they need to know to plan the rest of the project.

No comments: