Estimations are never perfect. But the objective of every attempt to an estimation is to provide reliable inputs for a “good enough” plan. In this post, I will share with you 3 tips to make better estimates for your Agile Stories.
Tip #1 : Invite everyone to estimate and respect their inputs
One of the mistakes that novice agile teams make is to continue relying on expert judgement for estimations. Team Leader or experienced members continue to make estimations for rest of the team.
There are two problems with this approach. One, the team members are reluctant to question their supervisor or seniors. Two, they don’t buy estimates made by someone else without their consent; they passively accept them.
So the best way to handle this situation: invite everyone to the estimation exercise.Invite everyone in the team to estimate and respect their inputs #agile #estimation Click To Tweet
It will be difficult at first. Junior members may be reluctant to offer their estimates. It is the Scrum Master or the Team Leader’s responsibility to foster this culture and encourage their participation. I am sure that over time things will get better.
Another subtle but important thing to remember is to respect their estimation. If you ask for their inputs but don’t really consider them for the final decision, chances are high that they will drop out. So, get them in the job and respect their contribution!
Tip #2 : Capture Risks and Assumptions with the Estimates
The best way to make your estimates more reliable is by making all relevant information explicit. An estimate number without a justification is often useless.
The first thing to include are the risks associated with your solution based on which the estimate is made.
Every solution comes with a risk. The magnitude of the risk and the possibility of mitigation or effective handling determines the solution feasibility. Poll around the team for all possible risks and make them explicit in the Story notes.
The second thing to include are the assumptions made to arrive at the estimate number.
For example, if the team is expecting the management to approve the software package procurement that will halve the effort – put it down explicitly in the Story notes. If the approval did not go through, the team will have a justification to revise their estimates.
Tip #3 : Make Good Buffers
There is a common notion of equating buffer with padding. But there is a huge difference between the two.
Padding is the addition of arbitrary value to an estimate and hope it will be sufficient to manage future uncertainties. Normally, padding value is arrived at based on “gut feeling” that is driven by past experience of the estimators.Padding is arbitrary while Buffers are more scientific #agile Click To Tweet
Buffer is more scientific. It is created by carefully evaluating the risks and using industry-standard formulae.
In his excellent book Agile Estimating and Planning, Mike Cohn talks in depth about good buffers and the ways to create them.
He goes on to explain two ways to calculate the Schedule Buffer which is added to handle uncertainties.
- Square root of Sum of the Squares
- Simple Buffer Calculation
Square root of Sum of the Squares
- While estimating stories, gather two estimate values for each story
- Value 1 (wi) is the worst case estimate (90% estimate) and Value 2 (ai) is the average case estimate (50% estimate)
- Worst case is the time taken when all risks turn into issues and assumptions fail. Average case happens when some risks materialize and assumptions hold true
- Once these estimate values are available for each story, the project buffer is calculated using this formula
Simple Buffer Calculation
This is much simple to calculate but not preferred because it considers a uniform risk distribution. A story with a huge worst case estimate is averaged out by another with a smaller difference.
- Each story is estimated at the average case level (wi, 50% estimate)
- Once the estimate values are available for each story, the project buffer is calculated using this formula
Project Buffer = (w1 + w2 + … + wn) / 2
Estimations are very important in an Agile project because they are one of the key inputs to determine the value of a User Story.
Here are 3 ways to ensure good estimates for your project.
- Involve everyone in the team for the Estimation exercise. Make sure to respect their inputs
- Capture risks and assumptions associated with the estimates. Record them explicitly in the Story notes
- Don’t be shy to add buffer to your estimates. But back it up with good reasoning and use standard practices
How do you ensure that your project estimates are reliable? Do you have any other points to add? Write them as comments to this post or drop an email to [email protected]