Fibonacci Agile Estimation: What Is It and Why Does it Work?
The Fibonacci sequence is a series of numbers. They grow exponentially because each number is the sum of the previous two numbers: 0, 1, 2, 3, 5, 8, 13, 21, and so on.
The sequence was invented in the Middle Ages by Italian mathematician Leonardo Bonacci, also known as “Fibonacci.” He included it in his book Liber Abaci – meaning “book of calculation” – almost as an aside. It was only in the 19th century that his sequence was rediscovered, named “the Fibonacci sequence,” and put to widespread use in fields like mathematics and biology.
Agile teams often use the Fibonacci sequence to estimate the “size” of tasks and user stories for their upcoming sprint. Such sizing can be done in time or story points – a measurement unique to agile, which is based on a task’s expected complexity, the amount of work required, and risk or uncertainty.
Most development teams use the Fibonacci sequence up to 89, but teams sometimes lack an understanding of precisely why, how, and when to use these numbers. This lack of knowledge leads to wildly varying estimates and misunderstandings between team members, Scrum Masters, and product owners.
When should you use Fibonacci agile estimation?
You use the Fibonacci sequence during agile estimation, which may form a part of your sprint planning or backlog refinement process. In an agile estimation meeting, teams estimate the required effort of selected tasks in the product backlog. Estimating the items helps teams get a sense of how many items they can consider for the upcoming sprint.
In theory, teams can sit around a table, walk through the product backlog, and name or write down a number from the Fibonacci sequence that reflects their estimate for the task being discussed. In reality, such an approach is cumbersome because you need to manually check if the correct numbers were used, add them up, and calculate averages.
Instead, most agile teams opt to combine the Fibonacci sequence with an estimation method called planning poker.
In Planning Poker, each team member has a modified deck of cards that corresponds with the Fibonacci sequence. When a task is up for estimation, each member individually picks a card that best matches their estimate for that item. Everyone then reveals their cards simultaneously and discusses their estimates until they reach a consensus.
In Parabol’s Sprint Poker product, the Fibonacci sequence is the default set of numbers for your playing cards.
Why is the Fibonacci sequence used in agile estimation?
The point of Fibonacci is to force your hand when estimating larger, complex tasks instead of wasting time nitpicking over minor differences. This is best explained through an example that compares simple time-based estimation with Fibonacci estimation.
Say your Scrum team needs to estimate the effort required for a large task in the product backlog, such as adding a new feature to your app. Let’s say you estimated your stories on a steady scale of 1-50. When you discuss your backlog item with the team, one picks 31, the other 36, and a third 38. When the gap between each estimate is a single integer it’s hard to estimate with conviction. It feels like estimates have to be very precise.
With Fibonacci numbers, this wouldn’t happen because the sequence forces you to choose between numbers with a wider distance between them. In this example, everyone would have likely picked number 34 in the Fibonacci sequence, as the alternatives would be 21 or 55.
Now, you might worry that this leads to less accurate estimates on larger tasks. You’d be right, but you needn’t worry because you can’t fit many large items into one sprint anyway. Usually, a high estimate means you need to break the task down into smaller ones.
Besides, the purpose of estimation in agile is not to create a precise work plan down to the hour. It’s for the team to have a reasonable grasp of how many product backlog items they should be aiming to complete in the upcoming sprint.
For smaller tasks, where the stakes are lower, the Fibonacci sequence offers nuance and definition. This makes sense because smaller tasks are generally more manageable and it’s easier to assign a more precise estimate to them.
When should you modify the sequence or turn to alternatives?
The standard Fibonacci numbers are not well-suited for every situation or team. Consider using modified versions of Fibonacci or alternative story point scales when you’re new to agile task estimation or require a different approach for smaller and larger tasks.
There are many different ways to do the estimation process with story point estimation.
Here’s an overview of common story point alternatives to the standard Fibonacci sequence:
- Modified Fibonacci sequence: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100. The original sequence suggests a level of precision on the larger numbers that’s not really there. This version rounds up the larger numbers to avoid questions about why something is 21 instead of 20 or 34 instead of 40.
- Powers of two: 1, 2, 4, 8, 16, 32, 64. With this variation, the distance between numbers accelerates immediately. It forces hard choices even for smaller tasks because 3, 5, and 13 are missing.
- Simplified scales: Teams that are new to agile might confuse the numbers on the cards with time, so they’re better off using simpler values or symbols. There are many options for this, like playing cards—ace, 2, 3, 8, king (where a king signifies an item too complex to estimate), T-shirt sizes (S, M, L, XL), or Five Fingers (1, 2, 3, 4, 5).
- Sprint Poker: Our virtual Planning Poker tool uses the traditional Fibonacci sequence but only goes up to 34. We believe any task or story that’s larger should be broken down into smaller items. You can always create your own estimation scales within the tool to suit your team if you want to use a different scale or an expanded Fibonacci scale.
A famous number sequence that lives up to its reputation
The only other number that can rival the fame of the Fibonacci sequence is pi (π = 3.14159). But Fibonacci’s credentials are impressive, too. It appears in the novel The Da Vinci Code, the television series NUMB3RS and Criminal Minds. American rock band Tool made a song using the Fibonacci code and the sequence even has its own day – Fibonacci Day – on November 23.
Luckily, the Fibonacci sequence is not just famous for being famous. It has been delivering real value for hundreds of years and will likely continue doing so for many more in and outside the agile community.