Story points measure the estimated effort needed to complete a work item, serving as a standard unit of measurement for comparing and estimating different items. They help teams plan and prioritize work more effectively by providing a better understanding of the overall effort required for a project or sprint.
Story points' actual values are not important when estimating work; what matters is the relative values assigned to each item. Different teams may use different value sequences, but the ratio between the values is key. By focusing on relative values, teams can get a more accurate estimate of effort for each work item.
According to Mike Cohn, Story points allow teams with different skill levels to collaborate and reach a consensus on estimates. They avoid disagreements by focusing on the relative effort required for each item, instead of debating individual team member's completion time for a task. By using story points, teams establish a shared understanding of the effort needed for each work item.
"How to Calculate Story Points in Agile Projects"
The primary definition of story points is that they measure the amount of effort required to develop a user story or product backlog item. Effort is synonymous with time and is determined by several factors, such as the quantity of work, the intricacy or complexity of the work, human factors and any potential risks or uncertainties involved.
When estimating with story points, the complexity, effort, risk, and volume all come into play. However, in the end, the story points provide an estimate of the required effort.
Let's explore how each factor influences the story point estimation. Below are examples provided for each factor to help with understanding.
Quantity/Amount of work
Let's consider the case of two user stories for a software application. The first user story involves creating a simple login page with just one field for entering the username and password. The second user story involves creating a more complex user profile page that allows users to upload a profile picture, update personal information, and view past transactions.
Although the login page is simple, there is still work to be done in creating the backend logic for authentication and storing user information securely. On the other hand, the user profile page involves more complex features that require additional backend and frontend development effort.
Therefore, the user profile page should be given more story points to reflect the additional effort required to develop it. It may not necessarily be assigned double the story points of the login page, but the ratio should reflect the approximate relative effort required.
Now let's say the login page needs to have additional functionality, such as the ability for users to reset their passwords. This functionality requires the development team to create a new page that guides users through the password reset process.
The password reset page is more complex than the login page, as it requires additional logic to ensure that users can successfully reset their passwords. Additionally, there may be more risk involved if the password reset process is not implemented correctly, as users may become frustrated and abandon the application if they cannot reset their passwords easily
Given the added complexity and risk, the password reset page should be assigned more story points than the login page. However, the relative number of story points assigned should still approximately reflect the difference in effort required between the two pages, allowing team members to effectively communicate and agree on estimates.
When estimating story points for a product backlog item, the amount of risk and uncertainty should be taken into account. For example, if a team is asked to estimate a login page feature and the requirements are unclear or not fully understood, this uncertainty should be reflected in the estimate.
Another factor to consider is the potential risk involved in implementing certain features. For instance, if the login page requires integration with a third-party authentication service that the team has no prior experience with, there is a higher risk of unexpected challenges or delays. This risk should also be reflected in the story point estimate.
In summary, when assigning story points to a product backlog item, it is important to consider any risks or uncertainties involved in its implementation. This can help ensure more accurate estimates and better planning for the team.
Combining all three factors into a single effort estimate can be challenging, but it provides a more accurate estimate for sprint planning.
What about the definition of done?
It's essential to remember that a story point estimate must encompass all the work required to complete a product backlog item, including those necessary to meet the definition of done. For example, if a team's definition of done includes developing and running automated tests to verify that the story has been implemented correctly, then the effort required to create and run these tests should be taken into account when estimating story points.
Incorporating the effort needed to satisfy the definition of done into the estimate helps ensure that the team can meet its commitments and that the product backlog item is fully complete at the end of the sprint. This also helps to avoid any last-minute surprises that could impact the team's ability to deliver high-quality work.
Human Factor – The Importance of Conversations in Agile Estimating
Agile estimating requires conversations to achieve accurate and reliable story point estimates. Despite using story points as a method of estimation, team members may initially disagree on the effort required for a particular product backlog item.
Conversations during estimation allow for exploration of acceptance criteria, approaches, and other factors that impact the effort required to complete the item. These discussions increase the team's understanding of the work and can highlight assumptions and gaps that the product owner can investigate.
Planning poker is a recommended method for agile estimation, as it ensures individual estimates are kept private until all team members reveal their cards. This approach reduces bias in the numbers and results in more accurate estimates. It also increases conversations and helps bond the team members.
I have seen time and again, that, initially reluctant (siloed) team members start to enjoy estimating together and appreciating each other’s work and eventually begin to swarm to help each other as they become better at understanding different work the team takes
Strong Servant Leadership and Scrum Mastery enable this journey. The human factor is therefore essential and must not be overlooked.
After the team has agreed on an estimate, they assign story points to the backlog item. This estimate is later used to calculate the team's sprint velocity, capacity, sprint commitment, predictability and other metrics.
Understanding that story points represent effort, considering the amount of work, complexity, and any risk or uncertainty in the work, is critical for accurate estimation.