Fibonacci sequence – how much is it costing you?
In this article, Keith Richards, the Founder of agileKRC, and the Lead Author of Agile Project Management (AgilePM) discusses the big flaw of the Fibonacci sequence and how that effects agile estimating using tools such as Planning Poker to estimate story points.
Please note: In order to fully understand this article you need to know the difference between ‘precision‘ and ‘accuracy‘.
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.
Fibonacci numbers fake news
I think it was Ken Schwaber (from Scrum.org) 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 Scrum or Agile planning session!
Why are so many Agile and Scrum 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’.
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!
Fibonacci sequence explained
The theory behind using Fibonacci’s numbers is based on several ideas but two important ones are these.
- 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’.
- As the SIZE of a task increases, so does UNCERTAINTY and therefore we are unable to be 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 shows this relative sizing, whilst at the same time, reflecting the ever-increasing level of uncertainty and lower precision.
The Fibonacci sequence does this very badly.
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 amongst Agile and Scrum practitioners that the sequence is exponential could have cost organizations, quite literally, millions. I will explain how later, but first, let us 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’. In fact, it is doing the complete opposite.
And 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 zigzag.
To do relative estimation we need a set of numbers that grow smoothly. Fibonacci’s numbers do nothing of the sort. In fact, isn’t it obvious? The numbers 1, 2 and 3 are not points on a curve, they are a straight line and therefore, are not, exponential.
The irony of Fibonacci numbers
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.
Bin the Planning Poker cards
Not everyone in agile uses the Fibonacci sequence. If you do use it, 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!
- Within reason, stop using the Fibonacci sequence as soon as you can. Estimating is hard enough to begin with – why make it harder?
- 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 poker cards any use?
If you are reluctant to take such drastic actions because you are too attached to agile or Scrum Poker Cards, 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 into 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!’)
The higher the multiplier, the greater the level of uncertainty. NB: the multiplier for the later numbers in Fibonacci is roughly 1.628 (or 62.8% growth).
For an Excel spreadsheet that does this for you click the button below to download. This Excel file works through the exact flaw. It is quite detailed, and you will need to enjoy maths and Excel to fully understand it!
The problem with number 4 – isn’t it 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 User Story estimation of 2!
Why can’t you have a points value of 4?
The normal claim is that you must 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 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 behind Fibonacci numbers. It is just that the lower numbers of the Fibonacci sequence don’t do what we have all been led to believe they do.
The Fibonacci number sequence has become popular in Agile and Scrum when used to estimate Story Points. Many people use tools such as Planning Poker cards because they are simple to understand and to use.
As I have tried to explain in this article, without understanding the fundamental flaw of Fibonacci numbers, those people will make erroneous mistakes in their Story Point estimations.
Don’t stop using numbers for estimating though. You can easily find numbers that will work – but they are not 1, 2, 3, 5, 8, 13, 21,…!