An Agile iteration often goes like this, whatever the framework you are familiar with:
- the product owner prioritizes the backlog of work items (features, epic, user stories…)
- the team gives estimates for the top of the backlog, using story points, ideal time, actual time…
- the team and the product owner agree on what will be done
- the team actually does the magic
- the team shows what has been done, and we compare with what was expected
Among any other thing, we often compare the estimated velocity, the number of story points the team thought they would tackle during the current iteration, with the actual velocity, the number of story points the team actually managed to sweep away.
By doing so we try to learn two things:
- how fast the team goes
- how accurate its estimates are
Pretty logical indeed : we compare expectations with what actually happened… but… WAIT A SECOND! What are the facts I am talking about? ESTIMATES? I am trying to calculate the speed of the team relying on the very estimates which I am trying to know the accuracy, and this accuracy cannot be computed otherwise than by comparing with the actual speed of the team!
BAM!!! Your head just blew up! You are a uroboros!
Now the good part, because I know that some of you still have their head rather intact. I hear you say “We don’t need to know how accurate the estimates are, we just need to know that they are always the same, based on the same scale“…and you are absolutely right. If the team always estimates work items the same way, we can easily monitor its velocity.
Now say that our team velocity is 20 story points per sprint. The backlog is full of user stories estimated at 1 or 2 story points, but one of the stories is worth 19 points. What are we going to do with it? We are going to break it into smaller stories : there is too much uncertainty, too much risk with such a big story, even if the team could theoretically handle it. Ideally we would break it into 1-point or 2-point stories, because that’s the kind of story the team is used to working with.
If we go a little further, we will realize that what we really need in order to calculate the team velocity is that every story is almost always of the same size, whatever the size, even if our intuition tells us that the smaller the stories are, the better our calculations will be.
So we stop estimating user stories with story points – or whatever – and ask the team a simple question : is this story small enough? or better is this a standard story?
A the end of each iteration we just count the number of stories done and do our math…welcome to the #NoEstimates world!
One thought on “How good are your estimates?”