"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:
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:
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.
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:
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:
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.
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)
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!