Why is the Modified Fibonacci Sequence used when Estimating?Most Scrum teams use the modified Fibonacci sequence during the estimation process. But why do teams use this modified and twisted set of sequences instead of other easier ones? Let's find out in this article.
There are often occasions when someone made an estimate that totally went wrong. For example, you estimated that the car will be repaired within 3 days, but it took 5 days. There are always chances that estimates can go wrong, so the question is why are they important in project planning?
In Scrum-based development, the development team is meant to be self-organized, which means they manage the work on their own in a timely fashion. So, one crucial stage in Scrum-based development is to estimate the work, as it helps the development team, Product Owner, and key stakeholders in knowing the efforts required to complete the work and what amount of work the team can accomplish.
There are two ways Scrum teams can estimate, i.e., "Ideal Hours" and "Story Point" estimation. The Ideal Hours estimation model provides the estimate in terms of how many hours it will take to complete that particular task. However, hours-based estimates mostly turn into incorrect estimates, especially in software development due to uncertainties or unexpected challenges that might show up. That's why Scrum teams opt for "Story Point" estimation.
Story points are numeric-based points that are used to estimate the size of the user story to provide a glimpse of how much effort is required to complete it. Mostly, the size of the user story is set based on a reference/similar user story for more accurate estimates. In story points, the size of the user story is based on 3 factors, i.e., effort, complexity, and uncertainty. To provide sizing to user stories, the below numeric series can be used:
- Natural Numbers: 1, 2, 3, 4, 5, 6, and so on.
- Odd Numbers: 1, 3, 5, 7, 9, 11, and so on.
- Even Numbers: 2, 4, 6, 8, 10, and so on.
- Powers of Two: 1, 2, 4, 8, 16, 32, and 64.
- Fibonacci Sequence: 0, 1, 2, 3, 5, 8, 13, 21, and so on.
- Modified Fibonacci Sequence: 0, 1, 2, 3, 5, 8, 13, 20, 40, and 100.
- And many more.
Out of all the above numeric series, the modified Fibonacci sequence is the most widely used sequence to estimate user stories. So, what is modified Fibonacci sequence, how to use it, and why it is used are going to be the discussion points of this article.
The Fibonacci sequence is a number sequence in which every next number is the sum of the previous two numbers: 0, 1, 2, 3, 5, 8, 13, 21, and so on.
The Fibonacci sequence was invented by Leonardo Bonacci (also known as Fibonacci), an Italian mathematician that introduced the sequence in his "Liber Abaci" book in the Middle Ages. However, it was in the 19th century that the sequence was rediscovered and became known as "the Fibonacci Sequence" with wide applications in the field of mathematics and biology.
Scrum teams need a numeric sequence to estimate user stories. Many Scrum teams are using the traditional Fibonacci sequence to assign story points to user stories. However, the traditional Fibonacci sequence does not help much in providing a better guess of estimates due to small gaps between numbers. Therefore, most Scrum teams are using the modified version of the Fibonacci sequence known as the Modified Fibonacci sequence, which includes 10 numbers, i.e., 0, 1, 2, 3, 5, 8, 13, 20, 40, and 100.
Scrum teams tend to estimate their product backlogs to have a well-prepared start to the project. So, this is exactly where the teams use the modified Fibonacci sequence for estimation.
The product backlog is a list of prioritized items, such as new features, bug fixes, improving existing features, and similar others, that the team is going to work on next. The estimation of product backlog helps the team and key stakeholders know about the required efforts and expected uncertainties while completing the tasks.
The modified Fibonacci sequence is often combined with an estimation method called Planning Poker. In a Planning Poker estimation technique, each member of the development team is handed a deck of cards with numbering that of the modified Fibonacci sequence. Afterward, the following are the steps involved with executing the Planning Poker estimation technique:
- The Product Owner takes the first user story and reads it to the participants of the estimation session.
- The development team members then clarify doubts with the Product Owner and discusses with each other the execution method, expected hurdles, etc.
- Once the discussion is completed, everyone picks one card secretly and then they all show their cards at once.
- If everyone has shown the same card, then it is finalized as the team's story point for that user story. Otherwise, the team re-discusses and then re-estimates to reach a consensus.
- The above four steps continue until all user stories are estimated.
This is how a Scrum team uses the modified Fibonacci sequence and Planning Poker to estimate product backlogs. Moreover, some Scrum teams that involve remote or distributed team members are also seen using a modified Fibonacci sequence through a remote-based Planning Poker session called Async Poker. In short, the modified Fibonacci sequence is widely used among Scrum/Agile teams to estimate user stories.
Now that we know what the modified Fibonacci sequence is and how it is used, the question is why the modified Fibonacci sequence is a preferred sequence to estimate product backlogs. To justify this, below are some of the reasons/benefits of using the modified Fibonacci sequence in estimation:
The first and most important reason behind using the modified Fibonacci sequence is its exponential nature. Compared to natural, even, or odd series, the gap between numbers is higher and exponential in the case of the modified Fibonacci sequence. For example, let's assume that your team is using an even number sequence to estimate user stories. For user story "A", the team set the story point as 32, while user story "B" was given story point 36. As you can see, the gap between 32 and 36 is very minimal, so it is very hard to distinguish the required efforts for both these stories.
As per Weber's law, the difference we can detect among objects is provided by a percentage. For the above case, if the team used the modified Fibonacci sequence, then user story "A" might get 13 as a story point, while user story "B" might get 20 as a story point. The difference between 13 and 20 in percentage is around 35%, while the difference between 32 and 36 in percentage is 11%. Since you get a higher difference percentage in the modified Fibonacci sequence, so it helps Scrum teams and stakeholders to better distinguish between the required efforts and expected risks between stories. In short, the exponential nature of the modified Fibonacci sequence helps to have more meaningful and accurate estimates.
Another benefit of the modified Fibonacci sequence is its non-linear nature. Since some numbers used in the sequence are prime numbers, it decreases the chances of over-analysis. It is because members don't have a way to evenly break down or compare tasks. For example, 2 large user stories are given 13 and 20 numbers respectively. This non-linear link between those 2 user stories does not give a hint that the second story is twice as large as the first one. In short, the modified Fibonacci sequence reduces the over-analysis chances.
In software development, the development team never knows when a certain challenge can pop up that can cause unexpected delays. So, teams must include uncertainties while sizing the user stories. Moreover, these uncertainties should be easily visible from the story points.
The modified Fibonacci sequence helps in two ways. First, it lets the teams assign a higher value from the sequence if they suspect some risks. For example, if the team is looking to choose between 8 and 13, then they can pick 13 to incorporate the suspected uncertainties. Secondly, it lets the Product Owner, development team, and stakeholders have a quick glimpse that this user story does involve some hidden risk because of the unexpected higher story point assigned to it.
It is human nature that we link things with time. So, it is likely that the Scrum development team might still link the story points with the number of hours. For example, they may assume that 3 points mean 2 hours of work by 1 developer. However, such assumptions should be discouraged, as they can add unnecessary pressure and take away the true essence of estimation in Scrum-based development. That's why the modified Fibonacci sequence is beneficial here as it shows a detachment from time. The team cannot set the calibration of the Fibonacci sequence with real time due to its non-linear and exponential nature. In short, teams can avoid unnecessary pressure or wrong estimates with the use of the modified Fibonacci sequence.
The last but important benefit of the modified Fibonacci sequence is that it encourages a collaborative environment for estimating. Since the sequence is used with Planning Poker or a similar estimate technique, it requires the development team, Product Owner, and stakeholders to participate in the estimation session. The team discusses collaboratively and then provides individual estimates using the Fibonacci sequence, eventually leading to more accurate estimates.
It is not a standard rule/practice to use the modified Fibonacci sequence while estimating product backlog items. Scrum teams can use any sequence they want, but the modified Fibonacci sequence has shown to be the right companion during estimation. Its exponential and non-linear nature helps to have a better guess of the required efforts and pinpoint the chances of hidden risks. Overall, if you are new to using the modified Fibonacci sequence in estimation, then give it a few tries and you will witness its benefits yourself.