Using the Fibonacci scale in Agile estimation
Lucid Content Team
Reading time: about 7 min
Chances are that you’ve had the experience of being given an estimate that turned out to be completely wrong—the car wasn’t repaired in two days or the table at the restaurant wasn’t ready in 15 minutes.
If estimates can be inaccurate, why are they important to project planning?
It’s a matter of setting the right expectations and determining how much work is realistic to complete in a given timeframe—teams need to account for a project’s complexity in order to decide the amount of effort required, the number of resources needed, and ultimately, how much time it will take to complete the project.
Many developers in Agile environments have successfully improved the estimation process using the Fibonacci scale or a modified Fibonacci sequence to estimate the work that needs to be completed in an iteration.
Learn what the Fibonacci sequence is and how you can apply it to Agile estimations.
What is the Fibonacci sequence?
Fibonacci was an Italian mathematician in the Middle Ages who wrote a book called Liber Abaci (Book of Calculation). This book introduced and popularized the Hindu-Arabic numeral system in the Western world. In Liber Abaci, Fibonacci also presented the following problem:
A certain man put a pair of rabbits in a place surrounded on all sides by a wall. How many pairs of rabbits can be produced from that pair in a year if it is supposed that every month each pair begets a new pair which from the second month on becomes productive?
To estimate the answer, Fibonacci introduced an exponential sequence of numbers, now known as the Fibonacci number or Fibonacci sequence. In the sequence, each number is the sum of the preceding two numbers:
0, 1, 2, 3, 5, 8, 13, 21…
Why the Fibonacci series is used in Agile
The Fibonacci sequence is found in many different disciplines and in nature. For example, it has been used to describe plant life growth, estimate population increases over a specified timeframe, model virus breakouts, and predict the behavior of financial markets.
But what does this long string of numbers have to do with Agile planning?
Essentially, the Agile Fibonacci scale gives teams a more realistic way to approach estimates using story points. Story points are used to represent the size, complexity, and effort needed for completing or implementing a user story. Each story point is assigned a number from the Fibonacci scale. The higher the number, the more complex the story point, and presumably, the amount of effort it will take to complete.
As discussed previously, estimates can often be inaccurate—and that happens because people tend to be overly optimistic.
For example, instead of making an estimate based on a similar project we completed in the past, we believe we can get it done faster because we are more experienced and we are sure that this time there won’t be any problems that cause delays.
Because the Agile Fibonacci Scale is exponential rather than linear, it helps teams to be more realistic when looking at larger, more complex tasks.
To help you understand why the exponential nature of the Fibonacci series is helpful, we’ll paraphrase an analogy used by Mike Cohn, one of the founders of the Scrum Alliance:
Imagine holding a one-pound weight in one hand and a two-pound weight in the other. Without looking, you are likely able to determine which is which because the 2-pound weight is noticeably heavier—the two-pound weight is 100% heavier than the 1-pound weight).
If you were to hold a 20-pound weight and a 21-pound weight, it is harder to determine which is heavier because the difference between the weights is not that significant—the 21-pound weight is only 5% heavier.
Each number in the Fibonacci scale is exponentially larger (by about 60%) than the previous number. Teams can more easily recognize the differences and define the complexity of each story point.
How to use the Fibonacci scale in Agile
Many Agile teams use the planning poker technique for estimating story points.
This technique involves card decks with Fibonacci numbers starting with zero (0, 1, 2, 3, 5, 8, 13, 21, etc.) or a modified version of the sequence (0, .05, 1, 2, 3, 5, 8, 13, 20, 40, 100). Your team can use any number sequence with a fixed ratio (e.g., 1, 2, 4, 8, etc.) as long as the team understands and agrees with what the ratios mean.
Each member of the estimation team, aside from the moderator, needs their own deck of cards, and the planning poker technique proceeds with these steps:
- The product owner gives the team an overview of a user story.
- The team is given time to discuss and ask questions to get a better understanding of risks and assumptions. Team members should not mention any estimation numbers so that estimates are not biased. The moderator should record a summary of the discussion and can use a timer to limit the discussion time.
- Each team member chooses a card to represent their estimate of the story and places it facedown on the table.
- Team members turn over their cards simultaneously.
- If everybody selects the same number, you’re done. That number is used for the estimate, and you can move on to the next story.
- Individuals who have selected numbers that are significantly higher or lower than other numbers are given time to justify their estimates. For example, the task may be simple for a developer to complete (such as adding a field to a form), but that simple addition could turn out to be more complex for testers later.
- The process repeats from step 3 until the team reaches a consensus.
- The next user story is introduced for estimation and the entire process repeats.
If your team doesn’t have physical card decks, you can run through your user story estimation process using the template below. An online Fibonacci scale is a great solution for distributed teams who can’t physically meet in the same location.
Benefits of using Fibonacci Agile estimation
When using the Fibonacci scale in Agile settings, your team can experience the following benefits
Involve the whole team
It is important that every member of the development team is included in the Agile estimation process. Each member gives a different perspective that helps to hone in on a more accurate and realistic estimation of the work required to complete a user story.
For example, before declaring that building a web page should only take four hours to complete, you’ll want to get input from UX, design, development, and quality assurance.
Establish a scale for comparing story point complexity
Assigning story points with linear numbers makes it difficult to determine how much weight each story point should carry.
For example, you can reasonably estimate that a story point assigned the number two is twice as complex as a story point assigned the number one. But, how much more complex is a number 12 compared to a number 11?
The exponential nature of the Fibonacci Scale makes it easy for the entire team to understand what the assigned numbers mean.
For example, a 1 could mean that complexity is minimal, and the story point can be delivered quickly (within an hour). Several of these tasks can be completed in a day. A 13 means the story point is very complex and could take weeks to complete.
Increase the accuracy of estimates
By assigning story points higher numbers, it forces the team to realistically look at the complexity and effort required to complete the task, which can lead to more accurate estimates.
Tired of completing user stories after your projected deadlines? Ready for more accurate estimates? Incorporate the Fibonacci scale into your Agile planning processes now.
Now that you’ve completed your Agile estimation, use Lucidchart to seamlessly roll out Agile methodology across your organization.Learn more
Lucidchart, a cloud-based intelligent diagramming application, is a core component of Lucid Software's Visual Collaboration Suite. This intuitive, cloud-based solution empowers teams to collaborate in real-time to build flowcharts, mockups, UML diagrams, customer journey maps, and more. Lucidchart propels teams forward to build the future faster. Lucid is proud to serve top businesses around the world, including customers such as Google, GE, and NBC Universal, and 99% of the Fortune 500. Lucid partners with industry leaders, including Google, Atlassian, and Microsoft. Since its founding, Lucid has received numerous awards for its products, business, and workplace culture. For more information, visit lucidchart.com.