A Guide to Story Point Estimation
Tags: career, programming, agile, tutorial
Published: 2022-01-14 01:40:16

A story point is an arbitrary measure of effort required to implement a user story; it's a number that tells the team how hard the story is. “Hard” can be related to complexity, unknowns, and/or effort.

## Estimation Guidelines
- Story Point values are based on a [Fibonacci sequence](https://en.wikipedia.org/wiki/Fibonacci_number) `(1,2,3,5,8,13,21,...)`  
- Story point estimates should take into account technical complexity & effort to complete.
- Story point estimates should account for the total effort to reach `done`, not just `code complete`.  Both `code review` and `QA testing` can take considerable time and should be accounted for.  
- The lowest point value that can be assigned is 1, don't dabble in fractions of a story point.    
- Stories with an estimate larger than 8 should be refined and broken into multiple stories. 
- Time spent on different parts of the development process should be measured in hours & days.  
- When in doubt about the value of a ticket, play conservatively and go with the higher value.  

## Breakdown by Complexity
The table below is provided as a guideline for assessing story size by technical complexity.

| Point Value | Complexity | Story Profile |
| --- | --- | --- |
| 1 | None/Low | Story is very narrow in scope or procedural in nature; requires little-to-no problem-solving skills.  Low possibility that this story blocks other stories.  Could be completed with relative ease by a new-hire. |
| 2 | Low | Story has a small scope & may require some problem-solving or critical-thinking skills.  Low possibility that this story blocks other stories.  Can be completed with relative ease by junior-level engineer. |
| 3 | Low/Medium | Story has a reasonable scope & requires some problem-solving skills by the engineer.  Low possibility that this story blocks other stories.  A junior-level who is knowledgeable in the feature should be capable of completing this story within a reasonable amount of time. |
| 5 | Medium | Story scope has multiple conditions or states & requires a decent amount of problem solving to solution.  Possibility that this story blocks work on other stories.  Junior-level engineers may find this level of work challenging.  Mid-level engineers who are knowledgeable in the feature should be capable of completing this story within a reasonable amount of time. |
| 8 | Medium/High | Story scope is large or open ended (research spike) & requires significant problem solving skills to complete.  Strong probability that this story blocks work on other stories.  A mid-level engineer may find this level of work challenging.  Senior-level engineers who are knowledgeable in the feature should be capable of completing this story within a reasonable amount of time. |

## Breakdown by Time Spent
The table below is provided as a guideline of the total effort put forth during `Development`, `Code Review`, and `QA testing` for a given point value.  Duration values are shared as uninterrupted/distraction-free time; time spent on a ticket may exceed the value shown due to switching context throughout a given sprint (meetings, shifting priorities, etc)

| Point Value | Example | Development | Code Review | QA Testing |
| --- | --- | --- | --- | --- |
| 1 | Making a text edit | 2 Hours | 1 Hour | 1 Hour |
| 2 | Implement a default profile image | 1/2 Day | 1 Hour | 2 Hours |
| 3 | Implement white-label branding for the header of a page | 1 Day | 1/2 Day | Up to 3 hours, could include triggering specific items/tasks, etc. |
| 5 | Construct the entire Change Password View (UI Only) | 2-3 Days | 1 Day | Up to a 1/2 day, could include various browsers, roles, and/or permissions, etc. |
| 8 | Items within a list are based on a set of permissions and feature flags (full stack) | 5 days | 1-2 Days | At least 1 full day of testing, compilation of all of the above |