The Concept of Agile Estimation
Lets quickly recap the definition of ‘Estimation’:
Estimation (or estimating) is the process of finding an estimate, or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.Wikipedia
Consider for a moment what an estimation means in your organisation, for most it is perceived as a solid deadline where you promise to deliver something on or before this time. When given the definition above it would be very difficult to give an accurate estimation at the start of a project regardless of its size.
Rather than a new estimation being seen as a deviation from the original plan and a threat to the deadline, a deviation under this system is merely a more accurate approximation of the projects progress.
The cone of uncertainty has its roots in the waterfall methodology, where each iteration is a defined milestone (UI complete, homepage layout complete etc…). However it can be adapted to fit Agile nicely by replacing these defined milestones with ‘sprints’, and as each sprint is completed you’ll learn more about the project and be able to re-estimate and plot the information along the cone of uncertainty, reducing the margin of error and increasing the accuracy.
The whole concept of agile estimation is that you re-estimate at the end of each iteration, and the estimations will become more accurate over time.