Chances are that youâve had the experience of being given an estimate that turned out to be completely wrong. For example, your 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 Agile teams have successfully improved their estimation process by 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 your teamâs Agile estimation techniques.Â
What is the Fibonacci sequence?Â
Fibonacci was an Italian mathematician during the Middle Ages who wrote a book called âLiber Abaci (Book of Calculation).â In âLiber Abaci,â Fibonacci 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 the Fibonacci sequence. In the sequence, each number is the sum of the preceding two numbers:Â
0, 1, 1, 2, 3, 5, 8, 13, etc.Â
The Fibonacci sequence is found in many different disciplines and in nature. For example, it has been used to describe plant growth, estimate population increases over a specified time frame, and model virus breakouts.Â
Why is the Fibonacci sequence used in Agile?Â
The Fibonacci scale gives Agile teams a more realistic way to approach estimates as they plan work to be done during a certain period of time (such as a sprint). Teams often use story points to represent the size, complexity, and effort needed to complete a user story. They assign each story point a number from the Fibonacci scale. The higher the number, the more complex, and presumably, the more amount of effort it will take to complete.Â
For example, if you need to change the color of a CTA button on a page of your website, that task may rank lower in effort and be assigned one story point. Another task, such as introducing a social login feature (logging in with an Apple or Google account) to an existing application, may rank higher and be assigned eight story points. Larger tasks are typically broken down into smaller tasks or distributed among several team members to work on.
As discussed previously, estimates can often be inaccurate, which often occurs because people tend to be overly optimistic. People often believe they can complete a task faster if theyâve done it before or believe there wonât be any delays. Because the Fibonacci scale is exponential rather than linear, it helps teams to be more realistic when looking at larger, more complex tasks. By using the Fibonacci scale for Agile estimation, teams can more easily recognize the differences between tasks and define complexity with exponentially larger story points.Â
How to use the Fibonacci sequence in Agile estimation
Many teams use numbers from the Fibonacci scale during planning poker or other team estimation activities as they assign story points and other units of estimation to work items. If you donât have physical cards to show numbers (or you have a distributed team), you can host an estimation activity virtually using a Fibonacci scale template. An online Fibonacci scale is a great solution for distributed teams who canât physically meet in the same location.