Wednesday, January 22, 2014

Story Points

Estimating the amount of work in a project needn't be difficult. Story Point estimating is quick and can be painless.

We use relational (or affinity) estimating to compare one requirement (story) against another.  Is it larger, smaller or roughly the same size?

So print each story on to a card and then go through one by one comparing the story against those already compared.  

Once you've been through and done the comparison you should have stories in piles.

Apply the Fibonacci sequence to piles.  The smallest getting a 1, the next set getting a 2 and so on.

We tend to then go through each pile and confirm that we are happy that the stories in each pile fit the story point size assigned.

Remember...

  • A story point is not a unit of time
  • A story point can only correlate against a unit of time when the story point numbers are very low
  • The larger the number, the less correlation between time and story points.
  • We deliberately use the Fibonacci sequence to show that the bigger the story, the bigger distance between numbers in the sequence, and the less accurate an estimate on a large story will be 


Eg. So, a story with 1 or 2 points should be fairly accurately estimated.  But the larger the number the less accurate our estimating is.

Let’s say we have calculated our velocity 2 story points per day.  It doesn’t mean we’ll deliver a 13 point story in 6.5 days, but we can probably accurately estimate that we can deliver 13 one point stories in 6.5day.

So, if we’ve got an 8 point story, the assumption is that’ll take 4 days, but the reality is that’s not accurate enough.  It could take 3 to 6 days..?

And, if we’ve got an 8 point story, we’re not going to see any burn down on our chart for a while.

So if everyone is working on large stories, our estimating is inaccurate, our project is at risk from the start, and we’re unlikely to see regular burn down in our timebox.

We can probably live with 5 point stories, as we can probably live without burn down for 2 to 3 days.  Hence, I’d say we should break down stories that are 8 points or more.


A few ways to think about it, and it’s always with distance, as it’s easier to visualise.

The accuracy of a story estimate is a bit like throwing a dart.  If it’s a small number, it’s like having the target a few feet away.  You’re going to hit the target and are more than likely to hit it exactly where you aim at.   But a larger number is like getting further away.  The further away you get, your chances of hitting the target decrease.  Get too far away and you’re much less likely to hit the target at all.

Or think about travelling distances.  If you live in the south of England and someone asked you about travelling from Woking to Reading, you might have a good idea about how long it would take. But what if it were Darlington to Durham, York to Leeds,  Manchester to Northwich?

Something you’ve done many times, you can have a good idea of.  But if you haven’t, you have to compare it against something similar.  All these journeys are about 25 miles, do it’d probably be safe to assume that they’d all take the same amount of time.  But I know that my journey from Darlington to Durham is going to be much quicker than your journey from Woking to Reading.

It's quite comparable, but it's still quite a distance.  More factors can take effect and increase journey times.

Change that to a much smaller distance like a walk to your local pub.  If my pub and your pub are both 200yards away, the estimates will be the same.  If there is a difference it's more likely to be seconds, rather than minutes.

Change that to a longer journey, like London to Edinburgh.  Even if you've done it a dozen time before you're still not going to be able to give an accurate figure.

No comments:

Post a Comment