What do Fibonacci numbers and T-shirt sizes have in common? You may think that the answer is nothing at all, but in the world of Agile software development, you’d be wrong. T-shirt sizes and Fibonacci numbers serve as units of measure to estimate the level of effort related to delivering a user story in a team’s backlog. This practice is called story pointing.
Measure Your Effort
Given the relative nature of estimating story points for an Agile team, using non-linear systems like Fibonacci sequences better serve to highlight differences in magnitude, which is what story pointing is after. A 13 is clearly larger than an 8 and an 8 is certainly greater than a 5. It is harder to pinpoint differences in a level of effort that would move a story estimate from, say, a 5 to a 6 on a linear scale.
When speaking about level of effort, there are three main criteria involved: the amount of work, the complexity, and the uncertainty surrounding a particular backlog entry. You might ask yourself, “Why even bother with this activity? Why not simply assign hourly estimates to each backlog story?”
After all, culturally, we tend to measure work or effort based on the amount of time it takes to complete a given task. Using hours as the sole defining gauge for level of effort strips away a lot of the nuance involved in fulfilling each story’s Acceptance Criteria and, ultimately, delivering the backlog item.
This degree of subtlety helps guide backlog grooming discussions when providing estimates. During grooming, a team collectively works to understand a story’s requirements. A lot can come up during these sessions, but thinking back to the three main criteria for level of effort helps a team maintain focus on the task at hand.
A simple question, “Are we ready to point?” prompts team members ensure that the level of effort called for by that story is understood. If anyone on the team is not ready to point, then the discussion should continue. If there is too much complexity involved, the story could be split up into several stories. If there is too much uncertainty, the product owner might need to provide more information. Coming back to these touchstones brings up the right questions at the right time.
Come to a Consensus
As product owners prioritize the backlog according to business needs, there is not much room for fluctuating meanings related to estimates. The time it takes to complete a certain story might vary from developer to developer.
Within this context, time becomes an inconsistent measure or estimate for level of effort. Your goal is to abstract away time and provide a mechanism for consensus within your team. If you can’t agree on time, because time is relative to your direct skills, then you can talk about the amount of work, complexity, and uncertainty, which emerge as more neutral factors. Story pointing provides product owners with an effective way to communicate back to stakeholders and ensure that all priorities line up.