Thursday, April 19, 2007

PIMS estimate practice by Chris Morris

In order to get useful priorities from the PSB, we must be able to offer them better time estimates for development tasks.

In order to begin getting practical experience of this, please do the following before each development task.
(This does not apply to fixing defects. Fixing an individual defect is too uncertain, and we have a well established average that as a team we can fix 30 per week.)

- write down two numbers, the minimum and maximum number of hours that you expect the task to take you.
A normal uncertainty is a factor of two, e.g. 4-8 hours.
If you are working on a "new feature",
enter them into the issue tracker, there is a space for them.

- If the uncertainty is greater than a factor of two, write down why, e.g. "BioJava might do this already, or might not".

- If the uncertainty is less than a factor of two, write down why, e.g. "Lots of experience on similar tasks".

- If the max estimate is more than 24 hours, the task is too large to estimate.
Spend some time working out how to subdivide it into tasks that are 1-3 days work each.
Then estimate each separately.
This process isn't easy, but spending an hour to plan a week's work is not time wasted.

- when you finish the job, write down how many hours coding it actually took. Compare it with your estimates.

If we each do this, then by the time we next meet we will have some real experience to compare.
After a few weeks practise, your estimates really will improve.

0 comments: