Fibonacci Estimating


Introduction#

Estimating work is a difficult task for a software engineer. Teams often utilize story points to reduce the complexity of estimating. However, these story points are usually restricted to a subset of options to pick from. A team typically estimates work in story points using only 1, 2, 3, 5, 8, and 13. Without context, those number choices seem awfully random. Spoiler: they are not. These numbers are actually the beginning of the Fibonacci sequence. This sequence was selected either just to make our lives more difficult or because it helps us somehow. Let’s explore what the Fibonacci sequence offers us when using story points.

We Suck At Estimating#

If you were asked how many feet you are from the closest window, you could give an estimate with a great deal of accuracy and confidence. If you were then asked how many feet you are from Paris, France, the accuracy and confidence of your answer would be far worse. Why is that? In both cases, you are estimating distance. In both cases, you are using the same metric (feet). The only difference is the extent of the distance. Paris is really far away! Regardless of why, we know that humans are increasingly limited in estimating distances the farther away something is. The same process happens when estimating work. Let’s go through a similar task-related exercise. How many minutes will it take you to make a paper airplane? Your accuracy and confidence in that answer is probably fairly high. Now - how many minutes will it take you to fold 1000 paper airplanes? Your estimate is less accurate and less confident.

If you say it will take 1 minute to make a paper airplane but someone else mentions that it will take them 2 minutes, then such a discrepancy in estimates is worth exploring. Why does the other person think it will take twice as long? They could be considering better solutions or solving problems you haven’t thought of. There could even be a misunderstanding of the task at hand. On the other hand, if you are planning to make 1000 paper airplanes and someone else’s estimate is a minute off from yours, then there is no need to scrutinize that difference. Our accuracy of estimation at that amount is low. Being a minute off is inconsequential.

We have established that humans are not well-suited for estimating larger efforts. We also know that due to inaccuracy in estimating large efforts, that the variation in acceptable answers is broader. We need a scale of estimation that accounts for greater lack of accuracy the larger the effort is.

What Is The Fibonacci Sequence#

The Fibonacci sequence is a pattern of adding numbers. Each number in the sequence is the previous 2 numbers added together. The mathematical formula is:

Fn = Fn-1+Fn-2

where Fn is the current number. Fn-1 is the last number and Fn-2 is two numbers back. The first 6 (relevant) numbers of the Fibonacci sequence are 1, 2, 3, 5, 8, 13. The numbers early in the sequence are close together but as the pattern continues the numbers become further apart.

How The Fibonacci Sequence Helps Us#

The Fibonacci sequence grows in distance between its numbers just like how our accuracy in estimation declines the larger the effort is. Let’s put this into context using story points. When the effort is small (1, 2, or 3), we usually feel fairly confident in our estimations. Deviations around these low numbers could represent something meaningful. However as the effort gets larger(5, 8, or 13), we acknowledge that our estimation accuracy decreases. There would be no point in discussing the difference between an 8 or a 9 in this case because deviations at that scale are expected.