Story Points
What is Story Points?
The concept of Story Points emerged from early Agile methodologies, particularly Extreme Programming (XP), as a way to move away from precise, time-based estimates that often proved inaccurate and led to undue pressure on development teams. Traditional estimation in hours or days frequently failed to account for the inherent variability and unknowns in software development, leading to missed deadlines and frustration. Story Points offer a more flexible and robust approach by focusing on the relative comparison of work items rather than absolute duration.
The primary purpose of Story Points is to facilitate effective planning and forecasting within an Agile framework, such as Scrum. By assigning Story Points, teams gain a shared understanding of the scope and challenge of each backlog item. This shared understanding is vital for Product Backlog Refinement, Sprint Planning, and Release Planning. It allows teams to gauge how much work they can realistically commit to in an iteration (Sprint) and to forecast when larger chunks of functionality might be delivered.
Story Points are important because they:
- Promote Collaboration: The estimation process itself, often using techniques like Planning Poker, encourages deep discussion and shared understanding among team members about the work involved.
- Focus on Relative Sizing: They shift the focus from absolute time to relative effort, which is often easier and more accurate for complex, uncertain tasks. A team might struggle to estimate a task in hours, but can more easily say it's "twice as big" as another known task.
- Account for Multiple Factors: Story Points naturally incorporate complexity, risk, and uncertainty, which are difficult to quantify in time-based estimates.
- Support Forecasting: When combined with Velocity (the average number of Story Points a team completes per iteration), Story Points enable teams to forecast future delivery rates and make informed decisions about product roadmaps.
- Reduce Pressure: By abstracting away from time, Story Points can reduce the pressure on individual developers to meet precise hourly commitments, fostering a more collaborative and less stressful environment.
- Improve Adaptability: As new information emerges, Story Point estimates can be re-evaluated, allowing teams to adapt their plans without the rigid constraints of fixed time commitments.
Story Points are closely related to other Agile knowledge topics. They are the core input for calculating a team's Velocity, which is then used for Forecasting and Release Planning. The process of assigning Story Points often involves techniques like Planning Poker or Affinity Estimation. They are applied to User Stories and other backlog items during Product Backlog Refinement and Sprint Planning. Understanding Story Points is foundational to effective Agile Planning & Estimation.
How It Works
Workflow for Story Point Estimation:
- Product Backlog Refinement: Before an iteration begins, the Product Owner and the development team engage in Product Backlog Refinement (also known as backlog grooming). During this event, backlog items (User Stories, features, bugs, etc.) are discussed, clarified, and broken down into smaller, manageable pieces if necessary. The goal is to ensure the team has a clear understanding of what needs to be built and why.
- Establish a Baseline: The team identifies a small, well-understood backlog item and assigns it a low Story Point value (e.g., 1 or 2). This item serves as a reference point for all future estimations. For example, "Add a simple text field to a form" might be a 1-point story.
- Relative Sizing Discussion: For each new backlog item, the team discusses its requirements, potential technical challenges, dependencies, and acceptance criteria. The discussion focuses on comparing the new item to the established baseline and other previously estimated items. Questions like "Is this bigger or smaller than X?" or "How much more complex is this than Y?" are central.
-
Estimation Technique (e.g., Planning Poker):
- Each team member privately selects a card representing their Story Point estimate (often from a modified Fibonacci sequence: 1, 2, 3, 5, 8, 13, 20, 40, 100).
- All team members reveal their cards simultaneously.
- If estimates vary significantly, the team members with the highest and lowest estimates explain their reasoning. This discussion often uncovers hidden assumptions, risks, or misunderstandings.
- The team discusses until a consensus or an acceptable range of estimates is reached. The goal is not necessarily perfect agreement, but a shared understanding that allows for a reasonable estimate.
- The process repeats for all items to be estimated.
- Record Estimates: Once an estimate is agreed upon, it is recorded against the backlog item.
- Iterative Refinement: Story Point estimates are not set in stone. As the team learns more about a feature or as conditions change, estimates can be revisited and adjusted during subsequent backlog refinement sessions.
Principles Guiding Story Point Usage:
- Team Ownership: The development team owns the estimates. They are the ones doing the work, so their collective wisdom is crucial.
- Relative, Not Absolute: Always emphasize that Story Points are relative to other stories, not absolute measures of time.
- Consensus-Driven: The estimation process aims for a shared understanding and broad agreement, not just an average of individual guesses.
- Embrace Uncertainty: Higher Story Point values (e.g., 20, 40, 100) often indicate higher uncertainty or a need to break down the item further into smaller, more estimable pieces (Spikes can help here).
- Consistency Within a Team: While Story Points cannot be compared across different teams, a single team should strive for consistency in its own relative sizing over time.
By following this workflow, teams leverage their collective intelligence to create estimates that are more reliable and useful for planning than traditional time-based approaches, fostering a culture of collaboration and continuous learning.
Key Concepts
Relative Sizing
The fundamental principle behind Story Points. Instead of estimating in absolute units like hours, teams compare the effort of one backlog item to another. This approach leverages human intuition for comparative judgment, which is often more accurate for complex tasks than trying to predict exact durations. A "1-point" story serves as a baseline for comparison.
Fibonacci Sequence
A common numerical sequence (1, 2, 3, 5, 8, 13, 20, 40, 100) used for Story Point scales. The increasing gaps between numbers reflect the growing uncertainty and difficulty in estimating larger items. This non-linear scale encourages teams to break down very large, uncertain items rather than trying to assign a precise, but likely inaccurate, large number.
Planning Poker
A consensus-based, gamified technique for estimating Story Points. Team members use numbered cards (often Fibonacci sequence) to vote on an estimate simultaneously. Discrepancies trigger discussion, leading to a shared understanding and a more accurate collective estimate. It promotes active participation and uncovers hidden assumptions.
Velocity
The sum of Story Points for all product backlog items successfully completed by a development team within an iteration (e.g., a Sprint). Velocity is a key metric for forecasting how much work a team can realistically complete in future iterations and for making predictions about release dates. It is a team-specific measure and should not be used for comparison between teams.
Uncertainty & Risk
Story Points inherently account for the unknown. A story with high technical risk, unclear requirements, or dependencies on external factors will typically receive a higher Story Point estimate than a similarly sized but well-understood task. This encourages teams to address uncertainty early, perhaps through a Spike, before committing to a large estimate.
Team Consensus
The goal of Story Point estimation is not just a number, but a shared understanding among the development team about the work involved. The discussions during estimation sessions are as valuable as the final number, as they align perspectives, uncover assumptions, and build collective ownership of the work.
Practical Considerations
Benefits of Using Story Points:
- Improved Team Collaboration and Shared Understanding: The estimation process fosters deep discussions, leading to a common understanding of the work, its complexities, and potential challenges.
- Better Planning and Forecasting: When combined with Velocity, Story Points provide a reliable basis for Sprint Planning, Release Planning, and Forecasting future delivery, allowing Product Owners to manage expectations effectively.
- Focus on Value, Not Just Time: By abstracting away from time, teams can focus on delivering valuable increments rather than being constrained by rigid time commitments.
- Adaptability to Change: Story Points allow for flexibility. If requirements change, the relative size can be re-evaluated without the psychological burden of re-estimating "lost" hours.
- Reduced Pressure on Individuals: Estimates are a team effort, reducing the pressure on individual developers to meet precise, often unrealistic, time targets.
- Incorporates Complexity and Risk: Story Points naturally account for factors beyond pure volume of work, such as technical complexity, unknowns, and dependencies.
Limitations of Story Points:
- Misinterpretation as Time: The most common pitfall is treating Story Points as a direct proxy for hours or days, which undermines their purpose and benefits.
- Difficulty for New Teams: Teams new to Agile or Story Points may struggle initially to grasp the concept of relative sizing and build a consistent baseline.
- Not Comparable Across Teams: Each team's Story Point scale is unique to its context, experience, and definition of "effort." Comparing velocities or Story Points between different teams is misleading and counterproductive.
- Potential for Gaming: If Story Points are used for individual performance metrics, teams may inflate estimates or avoid challenging work, leading to inaccurate data.
- Over-reliance on the Number: Sometimes, teams focus too much on the final Story Point number rather than the valuable discussion that leads to it.
Common Mistakes:
- Converting Story Points to Hours: This negates the benefits of relative estimation and reintroduces the problems of time-based estimates.
- Comparing Story Points/Velocity Between Teams: This ignores the unique context, skill sets, and definitions of "done" for each team.
- Using Story Points for Individual Performance Reviews: This creates an unhealthy competitive environment and incentivizes inaccurate estimation.
- Re-estimating Completed Stories: Once a story is "done," its Story Point value is fixed for Velocity calculation, regardless of how long it actually took.
- Not Involving the Whole Team: Estimation should be a collaborative effort of the entire development team to ensure shared understanding and ownership.
- Ignoring the "Why": Focusing solely on the number without understanding the underlying discussion and assumptions.
Real-world Examples:
Consider a web development team:
- 1-point story: "As a user, I want to see a 'Forgot Password' link on the login page." (Simple UI change, no backend logic).
- 3-point story: "As a user, I want to reset my password via email." (Involves UI, backend API, email service integration, database update).
- 8-point story: "As an admin, I want to view a list of all active users with search and filter capabilities." (Complex UI, multiple backend endpoints, database queries, pagination, security considerations).
- 20-point story: "As a user, I want to integrate with a new third-party payment gateway." (Significant research, API integration, error handling, security, testing, potential impact on existing systems). This might even be too large and warrant breaking down or a Spike.
The team discusses each, comparing it to the 1-point baseline and other known stories, considering the UI work, backend logic, testing, and potential unknowns.
Best Practices:
- Team Ownership: Ensure the development team owns the estimates.
- Consistent Scale: Establish a consistent Story Point scale (e.g., Fibonacci) and stick to it within the team.
- Regular Calibration: Periodically review the team's understanding of what each Story Point value represents, especially when new team members join or the team dynamic changes.
- Focus on Relative Size: Continuously reinforce that Story Points are about relative effort, complexity, and risk, not time.
- Use Planning Poker or Similar Techniques: Employ collaborative estimation methods to foster discussion and consensus.
- Leverage Velocity: Use the team's historical Velocity for Forecasting and Capacity Planning, but understand it's a guide, not a guarantee.
- Break Down Large Stories: If a story is estimated at a very high number (e.g., 20 or more), it's often a sign that it's too large and needs to be broken down into smaller, more manageable User Stories or explored with a Spike.
- Don't Re-estimate: Once a story is estimated and work begins, don't change its Story Points based on how long it actually took. This distorts Velocity.
Frequently Asked Questions
- Are Story Points time estimates?
- No, Story Points are an abstract measure of relative effort, complexity, risk, and uncertainty, not a direct measure of hours or days. Converting them to time undermines their purpose.
- Can Story Points be compared between different teams?
- No. Each team's Story Point scale is unique to its context, experience, and definition of "effort." Comparing them across teams is misleading and unproductive.
- What is the best scale for Story Points?
- The modified Fibonacci sequence (1, 2, 3, 5, 8, 13, 20, 40, 100) is widely used because the increasing gaps reflect growing uncertainty. However, some teams use T-Shirt Sizing (S, M, L, XL) or other custom scales.
- Should we re-estimate a story if it takes longer than expected?
- No. Once a story is estimated and work begins, its Story Point value should remain fixed. The actual time taken is valuable learning for future estimates, but changing the points distorts historical Velocity data.
- How do Story Points relate to Velocity?
- Velocity is the sum of Story Points for all items completed by a team in an iteration. It's a key metric for forecasting how much work a team can realistically deliver in future iterations.
- What if a story is too big to estimate?
- If a story receives a very high Story Point estimate (e.g., 20 or more), it's often a sign it needs to be broken down into smaller, more manageable user stories or explored further with a Spike to reduce uncertainty.
Explore Related Topics
References & Further Reading
- Cohn, Mike. Agile Estimating and Planning. Prentice Hall, 2005.
- Schwaber, Ken, and Sutherland, Jeff. The Scrum Guide. Scrum.org, 2020.
- Beck, Kent. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
- Larman, Craig. Agile and Iterative Development: A Manager's Guide. Addison-Wesley, 2004.
- Kniberg, Henrik. Scrum and XP from the Trenches. C4Media, 2007.