Project Management – How We Estimate
This is the third part of my series explaining how Don’t Panic Labs approaches project management through the lens of a software release cycle.
We’ve just finished up initial release planning and have given Rough Order of Magnitude (ROM) estimates to each work item. We came up with a way of estimating that’s worked well for us. It’s a simple point system that’s easy for everyone to get their heads around.
- 0 pts (in the noise)
- .1 pts <= ½ day
- .2 pts <= 1 day
- .5 pts <= ½ week
- 1 pts <= 1 week
- The majority of our stories are 1 week or less
- 2 pts <= 2 weeks
- 3 pts > 2 weeks (needs to be broken out into separate stories and estimated)
Using this model makes it easy to quickly determine the number of man weeks estimated for a given release cycle (i.e., sum up the ROM points and you have the number of man weeks for the release cycle).
When user stories are scheduled into an iteration, we usually ask engineers to break down the story into tasks and estimate the tasks. We have just three levels of task size:
- Large: > 12 hours
- Medium: 4-12 hours
- Small: < 4 hours
Breaking a user story down into smaller chunks forces the engineer to think critically how they’ll implement it. Estimating the task size is also a cross-reference back to the original user story ROM estimate. We’ll adjust the user story estimate if needed.
In my next post we’ll look at how we plan our iterations and how daily standups help keep on course (or make adjustments if we hit some bumps along the way).