Fibonacci Sequence
The Fibonacci sequence is widely used in Scrum to estimate story points. But what do Scrum teams need to estimate, and how are story points defined?
Agile teams must estimate product backlog items. Many Agile teams use story points as a unit of measurement for estimating these product backlog items. Story points represent the relative effort required to complete a product backlog item in relation to others. Thus, the higher the number of points for a requirement, the greater the effort needed to complete the tasks necessary for its development. The story point estimate for a requirement has no standalone meaning but can be compared with the story point estimates of other requirements.
You can use various sequences as scoring scales. However, the most popular sequence is the Fibonacci sequence. The Fibonacci sequence starts with the numbers 0 and 1, adding the two previous numbers to generate the next one. Consequently, the sequence is: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, and so on. However, the Fibonacci sequence can create a false illusion of accuracy that is undesirable. Many Agile teams use the modified Fibonacci sequence: 0, 1, 2, 3, 5, 8, 13, 20, 40, 100.
Why do we use the Fibonacci Sequence for Estimation in Agile?
Imagine you have a 1 kg bag of potatoes in one hand and a 2 kg bag in the other. If asked which is heavier, you can easily identify that the 2 kg bag is heavier. But what if you had a 25 kg bag in one hand and a 26 kg bag in the other? Would it be as easy to determine which is heavier? In both cases, the weight difference is 1 kg. However, as the weight increases, the difference between the two bags needs to increase for you to distinguish which is heavier.
This is why using the Fibonacci sequence makes sense for Agile estimation. As the sequence progresses, the gaps between the numbers grow larger, making it easier for the team to differentiate. This way, our brains can more easily recognize that a requirement with a value of 13, for example, demands significantly more effort than one with a value of 8.
How Does the Fibonacci Sequence Work in Practice?
Imagine the team meets to estimate the effort required to develop a new feature for the coffee machine they are working on. Everyone agrees that, due to its innovative and complex nature, this feature will require considerable effort.
The team initially tried to use a linear estimation scale where the values increase by a constant amount (e.g., 1, 2, 3, 4, 5, 6, …). However, they could not reach a consensus on the estimate. Different team members proposed various estimates (e.g., 95, 97, 102, 107, 109) without being able to agree on a specific value. Can the team really distinguish between an estimate of 95 and 97? It’s challenging for our brains to differentiate between such large, closely related values. However, this isn’t an issue when using the Fibonacci sequence. In this case, the team would need to differentiate between, for instance, 55 and 89. Here, our brains can more easily grasp that a requirement with a score of 89 demands significantly more effort than one with a score of 55.
In summary, using the Fibonacci sequence helps the team estimate the effort that a product backlog item (PBI) may require. However, it’s essential to remember that this value is merely an indicator for identifying which PBIs demand more effort. These estimates do not correspond to time units; for instance, a requirement with a score of 13 does not imply it will take 13 hours to complete.
This is why using the Fibonacci sequence makes sense for Agile estimation. As the sequence progresses, the gaps between the numbers grow larger, making it easier for the team to differentiate. This way, our brains can more easily recognize that a requirement with a value of 13, for example, demands significantly more effort than one with a value of 8.