Agile Estimating in Scrum - Why Estimate Twice?
Step 2 is how to estimate your Product Backlog.
Step 4 is estimating tasks in Sprint Planning.
Someone recently asked me a very good question - why estimate twice? I thought it would be worth addressing this question here...
The idea is that the first estimate, in points, is a high level estimate of everything on the Product Backlog.
At the time of estimating in points, the team has very little detail on what the requirements really are or what the feature has to do. They may be estimating from a simple heading or description.
This high level estimate helps with medium term planning (Release Planning) and helps the Product Owner to prioritise everything with some sense of how big the features are relative to each other.
Later, these points are used to calculate Velocity, which means the team get statistically better at predicting what they can achieve from very quick high-level estimates, which is is obviously very useful.
The second estimate is meant to be a detailed estimate for only those things that are included in the next Sprint.
Here, the team has the opportunity to potentially see some prior analysis of the requirements, to discuss the feature with the product owner and any other stakeholders, and to discuss the technical implications with the team.
At this stage, the team is in a much better position to break the feature down into tasks and estimate in hours.
At this stage, it is also possible to take account of the team's actual capacity at that time - i.e. how many team members available for the sprint, any other commitments, holidays, etc. With this information, the team should be able to plan the next Sprint reasonably accurately.
I have found that some teams like the second Sprint Planning estimates, and other teams can do without them.
The teams that do without still have the Sprint Planning meeting, which they still use it to discuss the requirements and technical design of the features in the next sprint, but they don't bother trying to break the features into tasks and estimate them in hours because they found invariably they were wrong anyway so it was a waste of everyone's time. Teams that are more accurate at estimating may be the ones that find it most useful for planning.
The teams that drop the hours estimates rely entirely on their historic Velocity (in points) to decide how much to commit to in each sprint, so they let the statistics take care of it.
If they have a lot of absence, or a team member missing, for any one Sprint, they simply commit to a slightly lower Velocity.
Personally I favour this approach. It's nice and simple and in my experience the statistical approach to estimating is just as accurate as the analytical approach, if not more so. The trouble with estimating analytically is that you only estimate what you can think of, and inevitably you can't really think of everything. Even if you think you can.
One thing I can say for sure, though, is that the Sprint Planning meeting is still exceptionally useful for the team to discuss the next Sprint together, whether you break down the tasks and estimate them or not.
In case you haven't discovered it, I've written quite a lot about agile estimating on my blog. You can see all of my posts on the topic here - Agile Estimating.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)