DEV Community

Evgenii Ponomarev
Evgenii Ponomarev

Posted on • Originally published at evgenii.info on

Yesterday's Weather – How to Make the Most of Estimation

Yesterday's Weather – How to Make the Most of Estimation

"Yesterday's Weather" is a popular Agile technique that allows teams to predict future performance. This is what Jeff Sutherland, a co-creator of Scrum, says about it:

Yesterday's Weather – How to Make the Most of Estimation
https://twitter.com/jeffsutherland/status/555416306757804032

Sounds promising, but how can it be useful for you?

Imagine that you need to plan a sprint. The stories are prioritized and estimated. The whole team sits together in the room.

You need to agree on the scope.

A product owner asks the team to implement ten tasks.

You feel that it's too much but you can't explain why.

The scrum master starts his usual speech about how challenging the scope is, and how important it is to treat challenges as opportunities.

"Does anybody have any concerns?" he asks in the end.

People stare at each other silently. No concerns. You can finally start the sprint.

Does it sound like your process? If yes, I have some good news for you – it doesn't have to be like this.


History knows everything

In order for the cow to eat less and give more milk, it needs to be fed less and milked more

– Russian saying

Imagine that this is the data about your team's past performance:

Yesterday's Weather – How to Make the Most of Estimation

What would be a reasonable target for the next sprint? 22 story points? 20? Both look reasonable.

But how about 10? That doesn't sound right.

Maybe 42? Maybe, but why do you think you're going to double average velocity?

If you have the history of past performance, some numbers will look groundless.


Not all sprints are equal

Your performance won't be consistent from sprint to sprint. A huge factor contributing to variability is the team's capacity.

If you have three developers in your team, and one of them is sick for a week, it will affect your velocity. Let's think about how we can account on it.

Yesterday's Weather – How to Make the Most of Estimation

Only three sprints (2nd, 4th and 6th) were full (3 * 5 working days, assuming that a sprint lasts for a week).

What would we achieve if we always had three people? Just hypothetically.

Well, it's easy to calculate, we need to calculate the velocity of one person * day (Velocity / Capacity) and multiply it by 15, which is our ideal capacity:

Yesterday's Weather – How to Make the Most of Estimation


The right target

Now you know that your team is capable of doing 22 – 30 story points per sprint. But what should be your target for the next one?

My advice won't surprise you – I'd recommend to pick an average. In our example the average theoretical velocity is 24 ((30 + 25 + 24 + 22 + 23 + 22) / 6).

Now we need to normalize it on our planned capacity (24 / 15 * 9) to see that the realistic goal for our team is 14 story points:

Yesterday's Weather – How to Make the Most of Estimation

It makes sense to take only the recent history because the team's velocity changes over time. 10-12 sprints would be optimal.


All together in one spreadsheet

Luckily, you don't need to do all these calculations yourself. There are many implementations of it, but the most popular one is the spreadsheet made by Scrum Inc.

Yesterday's Weather – How to Make the Most of Estimation

Even though it's enough to start, you may want to adjust it: add more dates, assign different weights to different people and so on. It shouldn't be difficult since it's just a spreadsheet, but I will cover the most common changes in one of my next articles.


You may want to check my other notes about estimation: "Who needs estimation", How to estimate tricky tasks" and "Why silent grouping doesn't work".

In addition to this, you can subscribe to new posts and get them by email.

Top comments (1)

Collapse
 
rosejcday profile image
Rose Day

This was a very interesting read on estimation and how you can use past data to predict an accurate estimation for the current upcoming sprint(s). Thanks for sharing!