Kelly Waters is Web Technology Director for IPC Media, one of the UK's largest publishers of consumer magazines and web sites. Kelly has been in software development for about 25 years and is a well-known narrator of agile development principles and practices, as a result of his popular blog 'Agile Software Development Made Easy!' (www.agile-software-development.com). Kelly is a DZone MVB and is not an employee of DZone and has posted 40 posts at DZone. You can read more from them at their website. View Full User Profile
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.
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.
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.
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.
second estimate is meant to be a detailed estimate for only
those things that are included in the next Sprint.
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
At this stage, the team is in a much
better position to break the feature down into tasks and estimate in
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
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.
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.
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