Unlocking the Power of Fibonacci in Agile Estimation

Understanding Fibonacci and Story Points

Fibonacci is a numerical sequence that starts with 0 and 1, where each subsequent number is the sum of the previous two. This sequence is used in agile estimation to measure complexity, not time. Story points are a popular estimation method that uses Fibonacci numbers to assign a value to a task based on its complexity.


def fibonacci(n):
    fib_sequence = [0, 1]
    while len(fib_sequence) < n:
        fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
    return fib_sequence

Why Fibonacci Works in Agile Estimation

Fibonacci’s power lies in its ability to help teams estimate complexity, which is a more reliable metric than time. Complexity is a shared understanding among team members, whereas time is subjective and can vary greatly. By using Fibonacci, teams can focus on building a shared understanding of complexity, rather than getting bogged down in abstract discussions about time.

How to Use Fibonacci for Story Point Estimation

  1. Choose a scale, either classic Fibonacci or story points.
  2. Consider 10 recent tasks and assign a medium complexity task a value of 5.
  3. Compare other tasks to the medium complexity task and assign values accordingly (e.g., simpler tasks get a 3 or 2, while more complex tasks get an 8 or 13).
  4. Rinse and repeat, continually comparing and adjusting task values.

Tips for Effective Fibonacci Estimation

  • Don’t get stuck on details; compare tasks to previous ones and ask if they’re more or less complex.
  • Focus on building a shared understanding of complexity, not implementation efforts.
  • Don’t be afraid to give a “wrong” number; be afraid of getting stuck in abstract discussions.

Common Pitfalls to Avoid

  • Converting Fibonacci numbers to time, which defeats the purpose of estimating complexity.
  • Lacking a shared understanding among team members, leading to inconsistent estimates.
  • Mechanically estimating tasks without considering complexity.
  • Creating horizontal boundaries by splitting tasks into technical aspects.
  • Transferring tasks between teams with different perceptions of complexity.

Alternative Estimation Methods

  • T-shirt size: Define ranges of time per item (e.g., small, medium, large).
  • Absolute time: Estimate tasks in time, although this can create false expectations.
  • #Noestimates: Stop estimating tasks altogether and focus on refining them until they fit the sprint cycle.

Remember, the goal is to enable progress, not predictability.

Leave a Reply

Your email address will not be published. Required fields are marked *