Scrum and Story Points


How long does it take to cook a perfectly soft-boiled egg?

I have a son who loves boiled eggs for breakfast, so I know for a fact that it takes exactly 6 minutes AFTER the water is already boiling. Common sense, right? You would think we’d all be able to estimate how long this task would take.

My son is 3 years old. This means I have to be incredibly efficient with my time in order to make him breakfast and still get to the office on-time and stain-free. If you asked me to estimate how long it would take me to boil an egg, serve it to him and clean up, I would estimate 20 minutes. And I would be wildly wrong. Sometimes it takes 20 minutes just to boil the water. Sometimes he’ll take his time to eat the egg. Sometimes he paints pictures on the table with it. Sometimes he wont eat it at all.

Humans can estimate time with confidence, not accuracy. The time-emotion paradox describes how our own sense of time is different depending on our context, emotional state and the activity of people around us. Stressful situations, anxious people, deadlines – you know, work – will cause our time estimates to change. And if you’re on a team, this isn’t a uniform change. We’ll all suffer from error to a different degree based upon our unique perception of reality.

Over time, a reliance on time estimation leads to negative behavior. Making a time estimate is in itself a verbal commitment. It’s easy for you to haggle my time estimate down (“20 minutes? I’m sure that as a senior egg chef you could cook this in 15?”). I’ll then need to either crunch or cut-corners in order to deliver the egg within the time I committed to. And my estimate was wildly inaccurate to begin with. Cue me feeling unfulfilled delivering hacked work within an unrealistic deadline. Cue toddler meltdown.

In Scrum, we try to coach our teams to frequently deliver work in a predictable and consistent manner. To help them achieve this, we invite our teams to think in terms of effort instead of time. We call this unit of measurement “story points”.

A time estimate is usually an individual estimate. After all, only your coder knows how long it will take to de-gunk the neuro-consolidator (sorry to get technical). A story point is a team estimate based on the effort required from the whole team to deliver the work.

A story point is a relative unit of measurement. If two items of work are 5 story points of effort, they should both require roughly the same effort to deliver them. They should require roughly half the effort of a 10 story point work item. If the team delivered 5 story points in their last increment, they should be able to do the same in the next one. If a team delivers 5 story points every 2 weeks, we can calculate how long it will take to complete 50 story points of work.

Back to eggs for a moment. There are a bunch of different ways to achieve the perfect soft-boiled egg. Some people specify only 2 minutes after the water is boiling. Others agree that it should be cooked for 6 minutes, but started out in cold water. Others say you shouldn’t even boil the egg at all. There are many different processes. And, to be frank, what’s important here isn’t even how long it takes. What kind of egg does my customer want?

With a time-based estimate, you think about how long the process will take. With effort-based estimation, you start at the end (What am I trying to deliver?) and consider how much effort it will take to get there. We’re not even thinking about process yet. After all, we can only assume that our known processes will deliver an egg that is boiled satisfactorily.

Relative estimation is better than time estimation. No estimation (#noestimates) is better than time estimation. How long does it take you to estimate your work in hours? And don’t you want that money back?

Andrew Burrows is a Scrum Master currently working with IBM. Prior to this, he worked in video game development for over 12 years.

Interested in learning more? Get started with our library of on-demand classes online.