Nice click bait isn't it? Bare with me and I shall help you see that this might really not be the case.
I always found explaining the concept of Story Points difficult. First of all, if you go to the creators of Extreme Programming and Story Points: Kent Beck and Martin Fowler, you find very little information in their books and if any, then not really helpful i.e. concept of 'ideal dev weeks' or blunt 'You can't put ten pounds of shit into a five pound bag'. When you are experimenting and showing how the team could decouple from using time-based estimates, you feel there is something wrong. Otherwise than that, you find articles all over the web titled 'Story Points are Effort', 'Story Points are Complexity' and also 'Don't use Story Points'. You get the point.
Here is my quick introduction to the world of Story Points and one that makes sense.
Enter Land of Knights, Squires and Dragons. A little story telling concept that will help you to grasp Story Points quickly. Imagine you are a knight and together with your squire (who has unfortunately broken his leg) you have a quest to estimate:
- Journey to the Castle via Zombie Forrest
- Journey to the Castle via Straight Road
- Killing the Dragon
Ask yourself how can you: a knight together with a squire with broken leg agree when you stick to the old ways of estimating everything in time? It is very obvious that you won't be able to agree with your squire on anything in terms of time, especially that he has broken leg. What would be then an alternative approach? Would you be able to come to agreement if you were both talking merely in terms of effort? Lets have a look first, what is actually effort?
The term effort refers to the specific and quantifiable count and/or measure of definable labor units that it is deemed are to be required in the attempts to arrive at completion of a phase (or of the entirety) of a particular schedule activity and/or work breakdown structure component, a distinct control account, or the project as a whole. -PMBOK
Now, let us think what kind of factors might influence the overall effort needed to complete a work breakdown structure component (a task), phase, project. Effort is influenced by three factors:
- Amount of work
- Risk or Uncertainty
Here is a small visualization for the concept:
Again, we need to make sure that we understand those factors and know how to think about them. The easiest one is Amount of work. In software development this amounts to number of places the code needs to be added, changed or removed and the scope of the additon, change or removal.
Complexity. A nice heuristic to think about it is to visualize what needs to be done as:
- Scate board
- Space rocket
The final factor is Risk/Uncertainty with it's duality. Risk is everything that we can quantify and say there is 10% chance that we will succeed. On the other hand Uncertainty is something we are not able to quantify as we don't have any data i.e. we are doing it for the first time or it is not possible to quantify it. Of course, if possible we want to always have Risk rather than Uncertainty.
Now, that we understand what factors and to what extent influence effort, lets go back to the land of Knights, Squires and Dragons to better understand the concept of Story Points.
As you remember your quest as a knight together with your squire is to estimate two alternative ways to the castle and killing the dragon. As we already came to the conclusion that using time-based estimates of effort is not feasible: squire with broken leg and a mighty knights as you are, could never agree on these values. However they might use some relative values, expressed in points, carrots, swords or whatever they want to call it.
We might think of at least a couple scales that those points could be expressed:
- 1,2,3,4,5,6,7,8,9... Linear
- 1,2,4,8,16,32,64,128... Geometric
- 1,2,3,5,8,13,21,34,55... Fibbonacci
Should the knight and squire choose the linear option, then they would argue forever whether something represents 5 points, 6 points or maybe just 4 points?
The second option: geometric gives us the ability to skip those small differences and easily decide as the relative values differ significantly.
The most popular option among the teams is Fibonacci sequence, which also shares the advantages of geometric series.
Take a look at the picture above. If the road to the castle represents 5 points, then choosing the path through Zombie Forrest includes a risk of getting chopped up by zombies and therefore is expresses as higher relative to 5. Knight and squire might decide that it is 8 or a bigger value depending on how big they think the risk is going through the woods with zombies luring. Easy right? What about the dragon? Both knight and squire have not seen a dragon in their lives, not to mention killing one. All three factors: amount of work, Risk/Uncertainty and Complexity automatically sky-rocket when they are discussing this task. They decide to call it a 110 using the Fibonacci sequence. It suggest it is way too big of a task for them. In order to reduce Complexity and Risk/Uncertainty they incquire Joe (Product Owner) who lives in a cave nearby, gaining new information and reducing risk significantly.
With new information how fierce is the dragon, the team of knight and squire is able to divide and conquer the seemingly impossible quest and pull smaller user stories (or knight stories) into their sprint.
I want to you to remember one thing about Story Points: they are not about time, they are about effort, which is influenced by amount of work, complexity and risk/uncertainty.