I'd like to share with you some of my notes after taking the course on Agile Planning and Estimation from Construx.
The key goal of estimating is to reduce ambiguity and improve coordination to make better decisions and plans.
The goal of estimation is NOT to make promises and create strict deadlines.
Estimations should not be exact values but probabilities showing a level of confidence.
The discussions during estimation meetings is the most valuable part of estimating because align the team and clarify the scope.
Remember that reducing the scope is always an option!
Team estimation improves team confidence and avoids making the mistake of overpromising (developers are usually too optimistic).
Overpromising causes schedule pressure, increases defects, makes customers angry, causes resource conflicts and ultimately can lead to people burnout.
A reasonable way to estimate a piece of work:
- Get a person/pair to do an initial task breakdown
- Get the team together to discuss each task, get alignment and clarify any ambiguity.
- For each task come up with an estimate
- Combine the results with a final team estimate
- Remind the team that the estimate is not a deadline but only a tool to communicate with the rest of the business
Link to some useful videos with strong opinions about estimation: