Hello everyone and welcome back to the Cognixia podcast. Every week, we dig up a new topic from the world of emerging digital technologies and share insights, ideas, information, stories, and more. We strive to inspire our listeners to learn new things and update their repertoire of skills to stay relevant and continue growing in their careers.
Twenty years ago, Dan Brown published his world-renowned book – the Da Vinci Code. Three years later, a film adapted from it with the same title starring Tom Hanks was released worldwide. The book and the movie both, were super interesting, and make for a great read and a great watch even today. The story takes the viewers and readers through the Louvre in Paris, stars the Mona Lisa and The Last Supper, and so many other renowned paintings, all on a quest for the Holy Grail. If you paid attention to the book or the movie or both, you would have encountered a sequence of numbers mentioned in the plot that was essential to decoding a clue that Professor Langdon is working on with Sophie. This sequence of numbers is usually written in a triangle form and is called the Fibonacci Sequence.
If you are thoroughly lost, let us explain a little more. First, what is the Fibonacci sequence?
The Fibonacci Sequence was first discussed in Europe by Leonardo of Pisa, whose nickname was Fibonacci in the early 13th century. However, the origin or the first mentions of the sequence can be traced back to about 2000 BCE in Indian literature. There is an enormous amount of literature about and using the sequence today, and it has connections to multiple branches of mathematics.
In the Fibonacci sequence, every number is the sum of the preceding two numbers, so the sequence goes 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, and so on. It is a fantastic example of a second-order linear recurrence relation.
Now, why is this Fibonacci sequence important? The Fibonacci sequence is a sort of nature’s secret code. The number of petals in a flower, the seed heads of a flower, countless paintings, plant spirals, pinecones, hurricanes, spiral galaxies in space, and so much more are examples of the Fibonacci sequence. The ratio, shapes, and arrangements formed by the Fibonacci numbers are everywhere – growth patterns of plants, arrangements of leaves, sections of your fingers, spiral shapes of sea shells, how your eye sees things, everywhere!
So, why is this Fibonacci sequence important in Scrum? What can it be used for there?
Scrum teams use the Fibonacci numbers to understand the scope and size of their product backlog items. Here, size is not just a measure of how many people are involved or how long it will take to complete the task. The size of a product backlog item involves two major components:
- Scope
- Complexity
Agile teams will usually not use size as an indicator of the time, the size of a product backlog item cannot be say, one day. Time is never a good indicator for estimating the size and complexity of a work item. A senior team member could finish a task in say 2 days, while a junior team member or a new team member may take 4 days. This wouldn’t be an accurate representation of size then. The size of a product backlog item should give a shared idea of the scope as well as the complexity of the work, not individual time estimates.
Developers on the scrum would regularly discuss which items to bring into the sprint. When these discussions happen, size is an essential aspect to consider so that different stakeholders get a precise idea of what to expect. So, how does one describe the relative sizes between the different product backlog items? This is where the Fibonacci sequence does the magic.
How is the Fibonacci sequence used here?
For this, most agile teams carry out a round-robin or maybe even an all-at-once assignment of numbers. For every task, an individual would express a number by raising their fingers or holding up a card with a number on it, a Fibonacci number to be precise, which would express the scope of the work item. Now, there is an element of bias and human differences here. A person X could feel a particular task is a 3, person Y could feel it is a 5, while a person Z could feel it is a 7. Interestingly, none of them are wrong, because this number allocation does require a significant amount of guessing, and we are after all human. What is more important here is the relativity of the numbers expressed by the team members. So, person Z feels the task is the biggest, about 40% bigger than what person Y thinks, while person X thinks it is 40% smaller than person Y thinks. Together, this helps the team understand how big the product backlog item is. The advantage of using the Fibonacci numbers here is that it supports collaboration, clarity, understanding, and the ability of the team members to plan their sprints.
Now, the Fibonacci sequence is an endless sequence going all the way to infinity and that can get a bit too much to handle sometimes, it can be overwhelming when there are so many numbers to choose from. For this, a lot of agile teams use a shorter version, based on their requirements and understanding. So, they may choose to only go until say 21 or until 13. The smaller the number, the smaller the size of the project and, the smaller the scope of the product backlog item. The smaller the scope, the lesser the complexity of the task. As the number goes larger, the task’s complexity is also larger. Very complex backlog items might require to be broken down into smaller tasks to decrease the size and make it more manageable.
Besides being used to indicate the size and help the Scrum team decide when the product backlog items need to be broken down into smaller tasks, the Fibonacci numbers also help in sprint planning. It can help teams shuffle tasks to manage team absences, build and maintain a sustainable pace of work, add evidence for retrospective topics, etc.
Fibonacci numbers are also helpful for Scrum teams to understand the velocity of the Scrum teams. It can help understand how many tasks of different sizes the team can complete in a defined time. It may not be very helpful to prove performance for external entities and build performance management strategies, but it can help internal teams manage their workloads and plan their time suitably.
Are there any alternatives to the Fibonacci numbers? Well, yes, there are. There is a doubling sequence like 0, 2, 4, 6, 8, and so on. Some teams use T-shirt sizing sequences, like XS, S, M, L, XL, XXL, and so on. Then, some teams also use planetary sequences like Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune. Some teams do not use any sequencing. Some teams prefer not to estimate and quantify the size of the project at all! This is perfectly okay, whether to quantify the size of a project is a choice the scrum team makes, and it is right if the team feels it is not beneficial and chooses not to do the sizing exercise.
This is how and why the Scrum teams use the Fibonacci sequence. Interesting, isn’t it?
With that, we come to the end of this week’s episode of the Cognixia podcast. We hope you found it interesting and insightful, and that it inspires you to learn something new. We will be back again next week with a fresh new episode of the podcast talking about something interesting and exciting. Until then, happy learning!