Getting Started with Story Points

Work needs to be estimated so that it can be scheduled and organised. Time is the most obvious method for this estimation. But time can be hard to estimate sometimes, and how granular do you make your estimates? To the day? To the hour? Half hour? A competing method for this estimation is to estimate effort.

But how do we estimate effort? This is where story points come in. Story point estimation assigns a value to a task to indicate it's complexity. The higher the number, the more complex the task.

What numbers should we choose for our range of story points? That's entirely up to you. You could use the numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. This type of series works fine for the smaller numbers - 2 is twice the size of 1, so a task assigned 2 story points is twice as complicated as a task assigned a 1 etc. But this series of numbers falls down at the higher numbers in the series - 10 is only a ninth bigger than 9. So for the higher numbers in the series its much harder to differentiate between which story point value to use. 

This complication with higher numbers in a linear series can be avoided by using a series with increasing increments between elements. As such a popular sequence to use for story points is the Fibonacci sequence. This sequence starts with 0, 1 and the next element is calculated as the sum of the previous two. So the first elements of the sequence become: 0, 1, 1, 2, 3, 5, 8, 13, 21. Now, if we ignore the first two elements of the list (0 - pointless having a 0 story point item and 1 - a duplicate) we get the sequence: 1, 2, 3, 5, 8, 13, 21 that has bigger differences between elements the higher up the sequence goes.

Using a sequence of numbers for story points that has larger gaps between adjacent elements as you progress through the sequence has two benefits. 

The first we have already mentioned - during sprint planning we don't need to concern ourselves with the minute complexity differences described by (for example) a "9" and a "10" (with the example Fibonacci sequence given we now have a "13" and "21", that are significantly different). 

The second benefit comes in the form of incorporating uncertainty into our complexity estimates. Less complex tasks are generally easier to accurately estimate. So low down the sequence we have tightly grouped elements. More complex tasks though are generally harder to accurately estimate as there will be more parts involved. So the use of higher story points for more complex tasks helps us to incorporate not only the work that we think we need to complete for the task but also a degree of uncertainty. That is, as we do the work we may find that there is in fact more work involved than we originally anticipated. But that's ok because our higher story points we can pick have this already baked in.

We can take another step to make our story point sequence more user friendly. Instead of talking about numbers in our planning meetings we can use something a bit more familiar - t-shirt sizes. A mapping from story point to t-shirt size for the previous sequence would be as follows:

Story Points T-Shirt Size
1 Baby
2 X-Small
3 Small
5 Medium
8 Large
13 X-Large
21 XX-Large

Now, instead of talking about task complexity in terms of "3", "5" and "8" we can use "Small", "Medium" and "Large", which is much easier to relate to.

The End

Comments

Popular posts from this blog

My First Year as a Data Scientist

PIVOT and UNPIVOT in T-SQL

My First Retro