DEV Community

Cover image for Fibonacci Agile Estimation
Rebecca Ferrao
Rebecca Ferrao

Posted on • Originally published at

Fibonacci Agile Estimation

What is Fibonacci agile estimation of story points?

When you are managing a team, it's important to draw an estimate of how long a task will take and the amount of effort needed to complete it. In agile development, you'd use agile estimation techniques to do this. Using the story points, in Fibonacci agile estimation, is one of the ways of doing this. However, let's break this down into clearer components.

Image description

What are story points?

Firstly, agile estimation is the process to estimate the effort required to complete a task.

Following this, story point is the metric used to denote the amount of effort it would take to complete a certain user story. This is what makes the level of difficulty of the user story clear to the team. Developers can get an idea of the complexity, risks and efforts that are a part of the user story.

Story point estimation usually happens during the backlog grooming phase. Estimation isn't the easiest task as a lot of factors have to be taken into account. Instead of hours, taking effort into account is easier, hence story points are used for estimation.

The metric could also be measured in terms of a normal time distribution. Take for example, 1 story point could represent a time range of around 4-12 hours.

What is the Fibonacci scale?

The Fibonacci scale is a series of numbers which increase exponentially. It is used to estimate the amount of effort that will be required to complete a given task or implement a user story. The scale is based upon the Fibonacci sequence and is a series of numbers where each number is the sum of the two preceding numbers. This starts with 0 and 1.

As a quick refresher, the Fibonacci sequence progresses as follows 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 …

What, then, is Fibonacci agile estimation?

Combining our knowledge of story points and the Fibonacci scale, understanding Fibonacci agile estimation is easy.

Fibonacci agile estimation is the use of the Fibonacci sequence as the scale when estimating the amount of effort required in agile development tasks.

Teams discuss the upcoming work and give tasks to each individual by making use of the Fibonacci scale to prioritize tasks that are to be included in the next sprint. The number of story points assigned to a task differ based on the complexity of the task.

How to estimate story points using the Fibonacci scale?

There are multiple ways you could use to estimate the story points in agile using the Fibonacci sequence. We have given two ways of going about with this process below.

In the first way, the product manager or owner gathers together with the team to estimate user stories through the following sequence of steps:

  1. Every team member individually estimates a number on the Fibonacci scale that gives the size of the task in terms of effort.
  2. Then, all the team members present their number at the same time. This is done so that no member of the team is influenced by the estimation of another.
  3. Now that the numbers are all present, these are discussed by all the team members. Based on the discussion, they reach an agreement about the various tasks and user stories.
  4. After this, each user story is added to a bucket which represents the point in the Fibonacci sequence that corresponds to the agreed story point for the task.

These steps are done until all the remaining tasks and user stories in the product backlog are dealt with.

The other way of estimating the story points using Fibonacci agile estimation is the Planning poker approach.

Planning poker approach to Fibonacci agile story points estimation

This way involves giving out deck cards that have numbers in the Fibonacci sequence to agile team members.

  1. Every member is given a deck of cards and the product manager or owner gives an overview of the particular user story or backlog item to start.
  2. Any doubts which may arise after this overview are cleared by discussing these.
  3. Every developer/ tester then selects a card having the Fibonacci sequence number. This is what they feel is the best representation of the effort required for that particular task. The card is then placed face down.
  4. Similar to the first method, the members involved in the estimation process reveal their numbers at the same time.
  5. In the event that there are significant differences in the numbers stated by the people, they justify their number in a discussion.
  6. Once a common value is arrived upon, the team moves on to the next backlog item.

To summarize, the use of the Fibonacci sequence for agile estimation of story points is meant to make it easier to arrive at an estimate that the team agrees on. This is done by allowing each individual to draw an estimate and jointly deciding on the final one, for each user story.

Originally published here.

P.S. If you liked the above article, also check out these articles on startups and product building:

  1. Content Intelligence.
  2. SAFE note.
  3. Fully Diluted Shares.
  4. Impact Mapping

Discussion (0)