Help! How do we start estimating?

…came the plea from the team.

Context: Here’s a team that’s primarily a support oriented team. As in, their stated purpose is “to keep the lights on while delivering improvements”. Recent history (as in several months) has had them in a firefighting mode where they just “did stuff”. Planning was iffy at best and they had lots of difficulty in gauging what was reasonable in a two-week sprint.

Hence the ask.

The first question to ask (like everywhere else IMHO) is “Why”. Why do you want to estimate?

Most of the answers I hear generally fall into a few areas:

  • We can use the points to work out our velocity
  • We can build information radiators with burndown charts etc.
  • We can tell if a story will fit into the sprint
  • We can have more credible estimates using relative sizing with points than if we had absolute estimates using hours or days
  • We can plan our releases – especially dates

Very occasionally, someone pipes up with something like:

  • We can work out if we’ve all understood the story well enough to deliver it in a sprint

 

For me, that last one’s easily the best reason. By coming up with a “magic number” estimate during the planning game, each person’s number represents all of the assumptions they’re making about the work. And during the process of playing the planning game, the most extreme sets of assumptions are surfaced and it gives the team as a whole the ability to learn more about the work from each other and gain some consensus. That shared understanding is the real prize. The number is just a side effect.

There’s a growing interest in “No Estimates” (#noestimates on Twitter). A highly simplified explanation is that estimation is a wasteful event, and you’re better off breaking your work down into small pieces and just work on them one at a time, while maintaining a smooth flow of work. For me the most interesting thing about this movement, is not the “inflammatory” stance on estimation, but about what a team gets by breaking down the work into small pieces and just working on them one at a time. They get work that naturally has very few assumptions inherent in it (smaller work = fewer places for assumptions to hide). And they also get very quick learning about the different assumptions that everyone in the team has about the work, because they’re working on one thing at a time. For me, that’s a similar sort of outcome to only using estimation as a means of flushing out the assumptions and gaining a shared understanding, and frankly, ignoring the magic number side effect. Breaking the work up into smaller pieces is just generally a good idea.

 

So, with all of that “intro stuff” out of the way, just how do we help a team learn how to get the benefits of estimation? Like most other attempts at teaching/learning, we need to find something that the team actually cares about, and help them learn how to solve the problem / make things better. In this case, we had to get to the root of what the team wanted to get out of an estimation-based process. That’s assuming that an estimation based process was in fact the right thing to adopt. We’d have to examine that too.

It looked like there were two main things that the team needed. The management elements of the team wanted to keep track of progress, detect when things were slowing down, and report upwards.

The rest of the team didn’t seem to care about that. They just wanted to make sure that they weren’t being overloaded with unmanageable levels of work. The reactive nature of a lot of their work was such that there was very little that could be predicted about a sizeable portion of their workload. They needed a mechanism that would let them work on enough planned work, while keeping sufficient capacity to cope with the unexpected.

 

I’ll write up how we ran the estimation training and practice/guided sessions later on.

1 thought on “Help! How do we start estimating?”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s