Skip to main content

What Scrum Says About Estimates

October 11, 2017

An estimate is our best guess for what can be achieved and by when. There are some situations when estimates are very important:

  1. Coordinate dependencies. It can be very useful to know when the team can proceed working on new design if the key expert is temporarily out of office. 
  2. Align priorities. During the day we have a list of things to do. Often we estimate the efforts to sort out our priorities.
  3. Choose the "best value" option. Estimates help us to make a decision when we choose between different options, for instance when I choose the best car for a budget 
  4. Forecast the weather. Forecast is a great to be better prepared for the future. Forecasts are often based on the empirical evidence. 
  5. Shared understanding. When a married couple in disagreement on the benefits of moving in to the new house, probably they are better to sit down and validate some of the assumptions behind the disagreement.

Estimates

When Not to Estimate

The biggest problem of an estimate is that there's always someone who will be relying on that. I have to inform the other person all the time, if I see that my estimate is not actual anymore. Estimate is often perceived as a commitment. What to do if I have estimated a dozen of different things for different people at the same time? This means that I have to create an ideal plan to meet the estimates. Any changes to my estimates are not appreciated because it will impact all other plans. At the end of the days I feel overwhelmed with a time-management mess. I spend more time to update the plans than actually doing the work. There are situations when estimates doesn't help:

  1. Predicting results of the complex work. It will end-up with time-management mess
  2. Focusing someone to work better. The human is awful to demonstrate best results under time pressure. This is the reason of why professionals are striving to increase estimate - to make the life easier. 
  3. Increase effectiveness of time management. Actually estimates decrease effectiveness because of Parkinson Law [1] 

What Does Scrum Says About Estimates

Scrum Guide mentions "estimate" at least nine times! Which means that estimates are still important aspect of the framework. But interestingly,

Scrum doesn't impose to use any estimation technique. Poker planning, story points, focus factor, dirty hours and mandays are not a part of the Scrum Framework.  Scrum only establishes some rules of the game around estimates and give the teams a freedom of choice on what estimation technique to use.

Product Backlog Items Should be Estimated 

Without estimates Product Backlog is not transparent. Product Owner still needs to align priorities, help the development team to find the "best value" option, forecast the weather for his customers or stakeholders. From the other hand when we estimate PBIs we don't try to predict exact time to complete it. Therefore, the team can choose an estimation technique which fits the need. Many Scrum teams are using t-shirt sizes or relative story points (but Scrum doesn't prescribe to use any of those).

Estimation of new PBIs can be a part of regular product backlog refinement activities. It can help the development team to come to shared understanding of the requirements. Planning poker is another great technique to validate that everybody in the team is on the same page.

The People Who will Perform the Work Make the Final Estimate

In Scrum the person who plays Product Owner role cannot commit to deliver a feature on certain date before letting the development team to estimate it first. But Product Owner can forecast the date if he understands the size of feature and put it to the Product Backlog in certain order. Measurable estimates makes the progress visible to the stakeholders.

Estimate How Much Work Can Be Done in Sprint 

You might be surprised, but Scrum doesn't require you to estimate the units of work which are planned and placed in the Sprint Backlog for the Sprint. Many Scrum Teams are still using estimates to figure out how much work they can fit, while other Scrum teams just using their best guess based on the empirical evidence of the previous Sprint(s). Many Scrum teams are able to prepare Sprint Backlog without estimates at all. For instance when the team is able to figure out work items of the same size using #NoEstimate approach. Some other Scrum Team are using Continuous Delivery/Deployment approach with focus on lead time and limiting work in process. This approach helps to be predictable and transparent without any estimates!  

Update Estimate During the Sprint

For the Development Team to be transparent between each other it is critical to have Daily Scrum meeting and update the progress. Any form of the progress (numbers, status on the board, checklist, burn-down chart) can help to coordinate the work and dependencies inside the Development Team. Burn-down charts is a complementary practice in Scrum, but many Scrum Masters are still worrying too much about their burn-downs and are looking how to be more predictable. Relax, you won't be predictable, and using burn-down chart as indicator of team improvement in terms of planning is absolute nonsense.

Estimate Or Not to Estimate

This is the question. As I mentioned, there are 5 reasons why estimates are still matters:

  1. Coordinate dependencies
  2. Align priorities
  3. Choose best value option
  4. Forecast the weather
  5. Shared understanding

Often, the simplest possible estimation technique for those five areas are enough to have the things pretty much transparent. Scrum doesn't prescribe or mandate us to use any well known agile or traditional estimation approaches. Scrum framework is just a set of rules to remember us that inspection, adaptation and transparency are critical for empirical process.

Timebox and Priorities Instead of Estimate

What to do in situation when I need to increase probability of completion the complex work? Are there any suggestion to focus the team? How to improve time-management while working on complex products? As it was explained earlier, prediction with estimates doesn't help you to address those challenges, but instead of estimates Scrum suggests us to use timebox:

  1. Sprint is a time-boxed iteration. At the beginning of Sprint the team can set the Sprint Goal and delivers their best results to achieve it within the timebox. This practice can help the team to increase probability of achieving product goals at least every month.
  2. Size of the Sprint Backlog work item is one day or less. I would recommend you to use this Scrum Guide recommendation as a timebox, rather than estimate. It is great to stay focused during the day, having a validated accomplishment at the end. This practice can help the team to see the progress every day. As a time-management practice it can help to find better ways to accomplish complex task, even more effectively while struggling with time.
  3. The length of a Scrum event is timeboxed. This helps to use the team's time more effectively in the meeting.

The good news is that Scrum helps to build appropriate culture of product development, establishing some rules or recommendations for estimates where it is really needed, and rules of timeboxing, as a replacement to the traditional predictive plan-driven approach. 


What did you think about this post?

Comments (10)


Shibu Chacko
12:58 pm October 12, 2017

For Output based budgeting( Story points) , Client(PO) estimate the size of the story based on the budget allocated for the Sprint, it becomes challenge for the team to follow the same estimate, have you encountered such case.


Slava Moskalenko
03:26 am October 13, 2017

I've encountered such case. This is a sort of fixed price relations between vendor and client. In complex world we never know what it takes to turn a story into workable increment. We can run one Sprint as an experiment to validate that team is able to deliver according to client's expectations in terms of budget and price. In order to have this experiment transparent and clear you need a Scrum Master who would ensure:

1. The Development Team is motivated and empowered to apply their best for the most valuable outcomes
2. Non-violent communication with Product Owner and stakeholders
3. Team works normal hours (without overtimes)
4. Team is delivering Increment according to Definition of Done, sufficient quality, w\o technical debt
5. You apply Scrum in a way it bring real empiricism to the process (not just mechanical sit-ups), daily inspection and adaptation is the must

This is something what I call transparent progress. After Sprint conclusion let the client to decide if they are happy with the progress or not. From my experience there are several possible outcomes: 1) You are good enough to deliver within fixed price and start building good relations based on agile values "customer collaboration over contract negotiation" 2) You are over the budget, but the client decides that it is better not to change the team, increase the budget and continue to employ the team (the most frequent outcome in my practice) 3) You are over the budget, and the client decides to change the team or to stop development at all (another frequent outcome)

Several things I realised over the years: 1) I'm not a magician, there's always something outside of my control, and I should be OK with any possible outcome 2) pushing the things to be exactly as client wants actually worked against transparency and motivation, 3) being transparent to the client is the best thing I can do even if the customer is unhappy with the progress.


John (Kelly) Worrall
11:31 am October 13, 2017

There are always going to be times when the expectations of the client exceed the reality of the project constraints.

The best thing to do, in my experience, is to make sure the Product Owner is an engaged and present member of the team. For a long time, Product Owners were bottled up in a corner, unable to speak outside of retrospectives unless they were directly asked a question. In those situations, Product Owners would often watch the rest of the team waste time during a sprint implementing something that the client did not really want, only speaking up after 2-3 weeks to say that it wasn't quite right.

Having a fully present and participatory Product Owner helps reduce wasted hours, and also helps the client understand early on if it appears the forecasted budget will be enough. This is something that should be on the Product Owner's mind, but not something that the rest of the scrum team should be concerned with in the beginning - they should be focused on the early research and experimental iterations to get to something demonstrable.


bunswo
07:58 pm March 12, 2021

This is a good article -- would love it if someone could update some of the grammatical errors!


Belinda Pereira
08:58 am June 25, 2021

i'm looking for a good exercise-to help my team improve on estimating better. what resources can i use? I am a new scrum master.


Sujit
09:01 am July 21, 2021

You can try with Planning poker technique or T-shirt or Bucket sizing. All of this is to follow relative sizing technique.


Ruth Russell
07:27 pm September 13, 2021

We used the Bucket method to break down the type of work and effort per story. If you go to YouTube and search for 'story point estimation bucket complexity method' a video by Agile Digest comes up. Really great method imho but up to developers what method they use; certainly an option you could suggest for trying out. My opinion of it is that it is a bit more precise than Poker Planning. Once we had executed a couple of Sprints, we looked at the data on Jira for the actual time stories took (use the word 'actual' loosely); luckily for us a pattern emerged that things took twice as long as forecasted so the Devs adjusted based on that data.


Anshuman Sengupta
11:00 am September 22, 2021

Can't seem to find the word estimate 9 times in scrum guide as mentioned in this article, can someone help?


Scott Silvester
05:05 am November 17, 2021

This article was written in 2017 so Slava would have been referring to the November 2017 Scrum Guide, where there are definitely 9 mentions of the word 'estimate'.
The 2020 Scrum Guide is less prescriptive and there is no mention of the word estimate. However what Slava writes about is still valid in today's Scrum world.


John Michael Baterna
09:57 am September 20, 2024

#NoEstimate, this is really a very interesting concept.