Please note: In order to fully understand this article you need to know the difference between 'precision' and 'accuracy'. We have received some feedback that the article itself is flawed, but this feedback assumes that the article is questioning the precision of the Fibonacci sequence when in fact it is questioning its accuracy. To illustrate the difference, you could say that Usain Bolt won the 100m Olympic final in 13.2758 seconds. This would be precise, but not accurate. Alternatively, you could say he won it in about 10 seconds which would be accurate, but not precise.
I think it was @Ken Schwaber who wrote so fondly about the ‘natural’ properties of the Fibonacci sequence when working out estimates in an agile way.
Well, anthrax and earthquakes are both natural, but I wouldn’t recommend integrating either of those into a planning session!
Why are so many agile practitioners using the numbers 1, 2, 3, 5, 8, 13, 21, etc., to help with their estimates? Surely there is sound logic to this? You would think so, but in my opinion there isn’t!
It is just a great big misconception. It is ‘fake news’. It is Agile’s very own urban myth that can sit alongside ‘the alligators in the New York sewers’ and ‘the crew on Captain Pugwash’.
Let me explain.
I understand the sentiment and I understand the thinking but, in reality, I don't think it adds up. Quite literally, it doesn’t add up!
So, what is the theory?
Well, the theory behind using the Fibonacci sequence, is based on several ideas but two important ones are that:
- Idea 1. Instead of looking at ACTUAL estimates, why not look at RELATIVE estimates first (i.e. task A is bigger than task B). It is an intermediate step, if you like, to make the estimation process easier and more accurate. I am okay with this idea although it is ‘a way’ to approach estimating and not necessarily ‘the way’.
- Idea 2. As the SIZE of a task increases, so does UNCERTAINTY and therefore we are unable to be as precise. Put another way, we will be more confident of a task being a 2 instead of a 1, but we will be less confident of a task being a 50 instead of a 49. Yep, I am still okay with that idea.
So far so good, but it is the next step that I don’t get!
To address the two points above, we need a sequence of numbers that show this relative sizing, whilst at the same time, reflecting the ever-increasing level of uncertainty and lower precision.
… and the Fibonacci sequence does this very badly.
Here is the key point to what I believe is the big flaw behind the sequence.
The sequence of numbers needs to grow in an ever-increasing way (or ‘exponentially’). The Fibonacci sequence does not grow this way – it is not exponential!
The widely-held belief that the sequence is exponential could have cost the agile community, quite literally, millions. I will explain how later, but first, let’s prove the fact that it is not exponential and it is not ever-increasing.
The goal for any sequence of numbers that are to be used to carry out this style of estimation is that they are ever-increasing and they grow consistently and exponentially.
Take the sequence 1, 2, 4, 8, 16. This grows by 100% with each step and is exponential.
But what about 1, 2, 3, 5, 8, 13, …?
There is no need for complicated maths or expert knowledge here – just look for yourselves.
The increase (or growth) from 1 to 2 is 100% (it has doubled). However, the increase from 2 to 3 is 50% (it has only gone up by half). The rate of growth is actually DECREASING. This is not ‘factoring in increased uncertainty’ – it is doing the complete opposite.
But it gets worse!
The increase from 3 to 5 is two-thirds (66.67%), and the increase from 5 to 8 is 62.5%. None of these 4 increases mentioned so far, are the same. So, there is no consistency of growth.
Not only are they not consistent, but the increases (100%, 50%, 66.67%, 62.5%) are not even going in the same direction. In fact, they are going up and down! Very much like a yo-yo! If you drew the rate of change as a line, it is not smooth line, it is a zig-zag.
To do relative estimation we need a set of numbers that grow smoothly. These numbers do nothing of the sort. In fact, isn’t it obvious? The numbers 1, 2 and 3 aren’t points on a curve, they are a straight line and therefore, not, exponential?
How did we get into this mess and why could it be costing your organisation money?
Well there is some ‘method to the madness’ but unfortunately, just about every agile practitioner using the sequence, is looking in the wrong place. The great irony about using the Fibonacci sequence is that it does have mystical, magical and natural properties, and it does grow exponentially. But these numbers appear much LATER in the sequence!!!
When you look at the higher numbers in the Fibonacci sequence, such as, 55, 89, 144, 233, …the gaps are consistent and the curve is exponential. At this point in the sequence the numbers and the curve achieve the ‘golden’ (or ‘divine’) ratio of 61.8%. It is this that appears in nature, such as in flowers, snail shells/whorls and the perfect size/ratio for a painting.
But, for the lower numbers (e.g. below 15), there is little or no logic to use them – and it these numbers that are often used in agile when story-pointing.
If your organisation is using this sequence to help with estimation – what should you do?
Not everyone in agile uses the Fibonacci sequence, but if you do, and you are happy to trust me on this, here are some tips to make your estimation better and to save you a lot of money!
Firstly, within reason, stop using the Fibonacci sequence as soon as you can. Estimation is hard to begin with – why make it harder?
Secondly, if you have any Planning Poker cards, put them in the bin. Sorry, @Mike Cohn! Although I think you are the best of the ‘agile gurus’, the fundamentals here don’t stack up for me.
Is the sequence or the poker cards of any use at all?
If you are reluctant to take such drastic action because you are too attached to the system you could try one or more of the following tips. I believe that they will all improve your estimation accuracy very significantly:
- Take a marker pen and change the 1 card to 1¼ as this makes the sequence smoother and not too far from a decent exponential curve.
- If you have a ½ card in your pack - tear it up in to tiny little pieces.
- If you want to recycle the ½ card either:
- Use it as a drinks coaster (but this may not be suitable for very hot drinks so you may wish to get several ½ cards and tape them together), or,
- Cross out the ½ and write the number 4 on the card instead (see later paragraph on ‘the number 4 is innocent!’)
- Remove the 1 and 2 cards and just use the 3, 5, 8, 13, 21 cards. It’s not quite perfect, but it is smoother and is close to being exponential. It’s not too far off at all actually!
- Don’t be embarrassed to use 1, 2, 3, 4, 5 or 1, 2, 4, 8, 16 as they are both better than 1, 2, 3, 5, 8, 13, …
- Invent your own numbers. Just pick a starting number (but don’t use 1 or 2). Then come up with a ‘multiplier’ to create the ever-increasing, exponential growth (rounded to whole numbers). Numbers such as 1.5, 1.6 or 1.7 will do just fine as a multiplier. These represent growth rates of 50%, 60% and 70% respectively. You can select a multiplier that is appropriate to your view of the level of uncertainty. The higher the multiplier, the greater the level of uncertainty (see https://agilekrc.com/agile-practices/estimation/flaw-fibonacci-sequence-downloadable-spreadsheet for a spreadsheet that does this for you). NB: the multiplier for the later numbers in Fibonacci is roughly 1.628 (or 62.8% growth).
By the way, what is actually wrong with the number 4? Surely, the number 4 is innocent!
Have you ever met an agile zealot who has gone ballistic and started spitting feathers because you wanted to give a User Story an estimate of 4? …and your reasoning was that it was twice the size of a 2!
Why can’t you have a points value of 4?
The normal claim is that you have to go up to 5 to factor in the uncertainty. So, why are we allowed to go from 2 to 3 then without doing this? This doesn’t factor in any greater uncertainty (in fact, it does the opposite by factoring in less). If we can go 1, 2, 3, why can’t we go 1, 2, 3, 4?
The number 4 is not a problem. It is not guilty of anything. In fact, it is quite a nice number. Personally, I quite like it. Why does 3 get to have such a privileged status when it is the very number that means the Fibonacci sequence becomes linear and can therefore, never be exponential.
It may seem odd but there are a lot of advantages to using the sequence 1, 2, 3, 4, 5.
Give it a try. It so simple and everyone gets it. (This is called ‘estimating Sham 69 style’ at agileKRC). OK, it does not factor in uncertainty but at least it is consistent and doesn’t do its job badly.
Is this problem costing us millions?
How about this for a thought!
If you have been using the Fibonacci sequence, don’t worry too much as it ‘sort of’, ‘kind of’ works in a way, but it is inaccurate. A bit like weighing scales that are ‘in the right area’, but they are not showing the correct weight. There is a built-in error that means it will always be significantly out.
Perhaps surprisingly the biggest single issue with the sequence is actually the number 1!
If the number sequence is to be uniform and growing in a smooth curve to proportionately allow for uncertainty, this single number is WAY OUT compared to all of the others, by about 25% to be precise.
Therefore, every 1 that has ever been used, in any planning session, anytime, anywhere, ever, is actually incorrect! (unless of course it is correct, in which case every other number is incorrect!).
Just think about how much money has been lost to this inaccuracy. Possibly millions and millions worldwide if you consider how many times it has been used to create an estimate. You may not agree with this last point, but I do hope you have enjoyed reading the article and you read it with an open mind.
As I said earlier in the article, I understand the sentiment and I understand the thinking, it is just that the lower numbers of the Fibonacci sequence don’t do what we have all been led to believe they do. You can easily find numbers that will work - but they are not 1, 2, 3, 5, 8, 13, 21,…!