Agile Estimation: Understanding Story Points
To understand story points, we must first explore the idea of metrics. In Agile project management, metrics are used to track performance. Various metrics will be evaluated, including a project’s budget, scope, and potential return on investment.
Metrics help guide teams through an Agile project, offering an insight into progress to ensure they are on the right track. As Scott M. Graffius, author of Agile Scrum: Your Quick Start Guide with Step-By-Step Instructions, put it: “If you don’t collect any metrics, you’re flying blind. If you collect and focus on too many, they may be obstructing your field of view.” This suggests that while metrics are important, teams must not lose sight of the bigger picture.
In an Agile work structure, epics are broken down into numerous user stories. Within these user stories, there are metrics known as story points. So, what exactly are story points, and how do they work?
What are story points?
A story point is a unit of measurement that estimates how much effort is required to complete a user story. This contrasts with the traditional approach of project management planning, which focuses on the amount of time a project will take.
Agile story points are usually represented using the Fibonacci sequence. In this sequence, each number is the sum of the two preceding numbers. It looks like this:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…
Because the numbers are spaced far apart, it is easier to distinguish between them and for a team to reach a consensus on which number to use.
Many Agile teams have tweaked the Fibonacci sequence to:
1, 2, 3, 5, 8, 13, 20, 40, and 100
Using this model, the minimum story point is 1, and the maximum story point is 100.
Story point estimation
There are three key factors in the story point estimation process:
- Complexity: How difficult is the user story? Does it require a lot of steps to complete?
- Risk: What are the potential risks involved? These could include uncertainty or dependence on a third party.
- Repetition: How monotonous are the tasks? When a team member is familiar with certain tasks, the complexity and risk factors are reduced.
All of these elements must combine for accurate story point estimation.
A product owner will be involved in the story point estimation process, but they will not estimate Agile story points themselves — this is a team effort. The Agile team members will be the ones working on the user story, so they are better equipped to estimate the effort required. Instead, the product owner will focus on sprint planning and prioritizing the backlog, which is a list of items that the development team needs to work on.
How to estimate story points
Want to estimate Agile story points but don’t know where to start? Here are three simple steps to follow:
1. Pick a base story
Choose one base story as a reference point. This example can be a previously completed user story. The base story will be useful for comparison purposes. Agile expert Mike Cohn advises using two values as a baseline. For example, if you have story points 2 and 5, a team member can easily determine a story point of 3 by noting that it is bigger than 2 but smaller than 5.
2. Create a matrix
A matrix will help you to visualize your story point values. For each number in your Fibonacci sequence, create a row. When you assign values to your story points, you can place them in the appropriate row. You should include your base story in this matrix.
3. Play planning poker
Now it’s time to decide which number each story point should take. There are many Agile estimation techniques to help you with this, including T-shirt sizing and dot voting. However, if you are already using the Fibonacci sequence, planning poker is your best option.
Let’s take a look at planning poker in more detail.
What is planning poker?
Planning poker is an Agile estimation technique that helps teams to assign values to story points. Team members will typically gather around to form a circle. Everyone will have a set of cards to denote each number on the Agile Fibonacci sequence: 1, 2, 3, 5, 8, 13, 20, 40, and 100.
The product owner will then bring a user story to the table for discussion. The team members can ask questions and hold discussions to figure out the appropriate value for the user story. Then, each individual will privately choose a card — let’s use 5 as an example. When everyone is ready, the cards are revealed at the same time. If everyone selects 5, then 5 is assigned to that particular story. However, if another team member selected 8, they must all discuss further until they reach a consensus.
Why use story points?
Story point estimation can be a hugely valuable exercise within an Agile project. Here are a few reasons why:
When given accurate story points, a product owner can plan sprints effectively and ensure that user stories are delivered on time, every time.
When you estimate in hours, there is no room for differentiation between team members. One person could complete a task in a few hours, but it might take their colleague slightly longer, potentially creating a sense of pressure. Story points eliminate this issue by shifting the focus from time to effort.
Story points offer more flexibility than strict due dates, considering that people will have other commitments, such as meetings and emails.
Planning poker and other Agile estimation techniques can double as team-building activities, enabling colleagues to collaborate effectively in a fun way. Each team member has a say, and the process only works if everyone works together.
To quote Cohn: “Story points can be a hard concept to grasp. But the effort to fully understand that points represent effort as impacted by the amount of work, the complexity of the work, and any risk or uncertainty in the work will be worth it.”
Top tips for story points
Here are a few things to keep in mind throughout the story point estimation process:
- Focus on improvement: In line with the values of the Agile Manifesto, you should aim to improve your story point estimation after each sprint. Maybe the wrong value was assigned to a story point. How can you make sure this doesn’t happen again? Learn from previous sprints and make adjustments to continually improve.
- Split large stories: If you find that your story points are consistently hitting the highest numbers on the Fibonacci sequence, you could re-assess your user story and break it down into multiple stories. Re-estimate your story points and make your sprints more manageable.
- Use project management software: Consider using an all-in-one software platform such as Wrike to keep track of your user stories and story points. You can simplify your story point estimation with features such as sprint planning templates, Gantt charts, and Kanban boards.