top

User Story Pointing for Agile Estimates

Agile Scrum is a lightweight framework, which means that it is easy to implement and does not have any complicated processes that make it difficult to understand and tailor to a project. The various artifacts of Scrum including epics, events, user stories, and so on make it easy for Scrum teams to practice and implement Scrum and gain the benefits that come along with it. Estimation which helps identify the amount of effort and time needed to complete a project or task is an important aspect of Agile projects and often use stories as a basis for the calculation. In this blog we will cover user story pointing and how it is used for estimation.What is Agile Estimation?Estimates are a must for organizations and businesses as it helps them figure out how much time a project will take to be completed and how much it will cost. In Agile projects, estimations are carried out to calculate the time taken to complete tasks and help everyone involved to understand the resources needed for a project. Estimations are carried out in traditional project management techniques too, but it differs from Agile estimation. How is Agile Estimation different from Traditional based estimations?Agile EstimationTraditional EstimationAgile estimation is feature based. The features will be classified as being small, medium or large and are high level estimates that are used to determine releases and iterations.Traditional estimation is task based, which means that the estimate is based on tasks that must be completed.Everyone in the team is involved in the estimation including product owner, developers, designers, testers, deployers etc.Chiefly done by the project manager, who creates a list of tasks and along with subject matter experts determines the time that would be taken to complete the tasks.Estimates can be revised at sprint level too.Once made, traditional estimates are not revised.Can be done at any time and does not focus on accuracy.Done before the project starts.Re-estimation continues throughout the project lifecycle.Done one time before the start of the project.Estimates are given in story points.Estimates are given in time format like days, weeks, or months.What is a Story Point in Agile?If we were to define story points, they are a metric or unit of measurement used to express the effort required to fully implement a user story or a product backlog item. So, a story point will help the team and the product owner understand about the difficulty level of the story or item. The difficulty can be related to either complexities, effort or risks associated with that feature.  Agile story point estimations are relative, which mean that they are not an absolute measure of the effort required and are just for allowing the product owner and stakeholders get a high-level view of the effort required.The most preferred values given to stories are numbers from the Fibonacci sequence-- 0, 1, 2, 3, 5, 8, 13, 20, 40 etc. Each value represents a different level of complexity.  This helps everyone involved get more clarity on the relative complexity of the storyHow to Estimate a User Story?User Stories are chunks of the desired behavior of a software system. They are widely used in agile software approaches to divide up a large amount of functionality into smaller pieces for planning purposes--– Martin Fowler  Why do we do it? The Product Owner may get a new requirement from the customer or stakeholder. The Product Owner would want the development team to develop this requirement or feature and would also want to know the effort required to complete it in terms of time and resources. Developers will need to give an estimate of the effort, and this is the user story estimation.  The process of estimating stories generally starts with the team picking up a baseline or reference story that everyone agrees with. The story points assigned to the story should also be agreeable to all team members. Once this story has been estimated, the estimation of all other stories can be done by comparing with the baseline story. As the team proceeds with the estimation, they will have enough reference stories to proceed smoothly. Every story is assigned a point value and if a story has a high story point, then the team should break it down to smaller user stories with smaller values.What do we need to consider while estimating user stories? Complexity of the task The risk associated with it, for example, if it is something completely new then the team may not have any prior experience in building such a feature, which may affect its delivery and quality The implementation and deployment factors that may affect the story Any dependency that the story may have that may affect its progress Most Popular Agile Estimation Methods for User StoriesPlanning Poker:Planning poker is among the most popular and widely used use story estimation techniques. The estimates are fixed with the consent of the entire group and hence this is called consensus-based estimation. All team members get together for estimation, and all are given numbered cards, usually in the Fibonacci sequence. A story is picked, and each team member will hold up a particular value card, which they think is the appropriate value for that story. All may not hold up the same value card, in which case voting is carried out till a consensus is reached by all.T-shirt sizing:This is also an absolute estimation technique used when quick estimates must be provided for many items. Just like we can choose t-shirt sizes such as S, M, L, XL etc, for ourselves depending on our size, use stories can also be assigned t-shirt sized based on their complexity. The team sits together and arrives at a consensus for assigning a t-shirt size to a story.  Once all stories have been assigned sizes, they are placed into buckets that are labelled S, M, L, XL etc. This helps the teams understand the number of tasks to be completed, based on their sizes. The Bucket System:This is also a consensus-based estimation technique where every team member can have a say in deciding the complexity of the task. It is used when many items are to be estimated quickly. It works best for small and mid-sized teams.This approach requires having buckets that have been assigned different labels representing different complexities. Buckets can be assigned values based on the Fibonacci series-- 0,1,2,3,4,5,8 etc. The process starts with picking a reference story from the backlog at random and placing it in a mid-point bucket, like say 4. All other stories on the product backlog are estimated in comparison to this base story and placed in appropriate buckets. The stories picked are mostly of the same size and if the story is very large then it must be broken into smaller stories.Affinity Mapping:Affinity mapping is great way to foster collaboration between team members. It is quick and easy to carry out and ensures transparency in the process. Once the team gets the user stories from the product owner, it silently establishes the relative sizes of the user stories. The stories are then arranged on a horizontal scale and the order keeps changing till the team is satisfied with the ordering. In order to keep the whole process conflict free, it is done silently.Ordering Method:Items can be ordered on a simple scale labelled from small to large. Items are first placed randomly after which team members take turns in moving the items up and down the list based on their complexity, while giving an explanation as to why they have moved the items. If the team is unable to decide on the position of any task, then it is left where it is and the next is taken up.Large/Uncertain/Small:Like the name suggests, this method allows assigning just three values to stories. The team members discuss and assign the stories to one of these three categories. Small stories are sorted first, followed by larger stories. This method works better when the items on the backlog are more or less of the same complexity.Conclusion Estimations can be tough, but they are an unavoidable and a necessary part of Agile product development. Fortunately, Agile estimation techniques are simple to carry out and help team members collaborate and provide estimates that ease the decision-making process.  
Rated 4.0/5 based on 13 customer reviews
Normal Mode Dark Mode

User Story Pointing for Agile Estimates

Susan May
Blog
21st Sep, 2021
User Story Pointing for Agile Estimates

Agile Scrum is a lightweight framework, which means that it is easy to implement and does not have any complicated processes that make it difficult to understand and tailor to a project. The various artifacts of Scrum including epics, events, user stories, and so on make it easy for Scrum teams to practice and implement Scrum and gain the benefits that come along with it. Estimation which helps identify the amount of effort and time needed to complete a project or task is an important aspect of Agile projects and often use stories as a basis for the calculation. In this blog we will cover user story pointing and how it is used for estimation.

What is Agile Estimation?

Estimates are a must for organizations and businesses as it helps them figure out how much time a project will take to be completed and how much it will cost. In Agile projects, estimations are carried out to calculate the time taken to complete tasks and help everyone involved to understand the resources needed for a project. Estimations are carried out in traditional project management techniques too, but it differs from Agile estimation

How is Agile Estimation different from Traditional based estimations?

Agile EstimationTraditional Estimation
Agile estimation is feature based. The features will be classified as being small, medium or large and are high level estimates that are used to determine releases and iterations.Traditional estimation is task based, which means that the estimate is based on tasks that must be completed.
Everyone in the team is involved in the estimation including product owner, developers, designers, testers, deployers etc.Chiefly done by the project manager, who creates a list of tasks and along with subject matter experts determines the time that would be taken to complete the tasks.
Estimates can be revised at sprint level too.Once made, traditional estimates are not revised.
Can be done at any time and does not focus on accuracy.Done before the project starts.
Re-estimation continues throughout the project lifecycle.Done one time before the start of the project.
Estimates are given in story points.Estimates are given in time format like days, weeks, or months.

What is a Story Point in Agile?

If we were to define story points, they are a metric or unit of measurement used to express the effort required to fully implement a user story or a product backlog item. So, a story point will help the team and the product owner understand about the difficulty level of the story or item. The difficulty can be related to either complexities, effort or risks associated with that feature.  

Agile story point estimations are relative, which mean that they are not an absolute measure of the effort required and are just for allowing the product owner and stakeholders get a high-level view of the effort required.

The most preferred values given to stories are numbers from the Fibonacci sequence-- 0, 1, 2, 3, 5, 8, 13, 20, 40 etc. Each value represents a different level of complexity.  

This helps everyone involved get more clarity on the relative complexity of the story

How to Estimate a User Story?

User Stories are chunks of the desired behavior of a software system. They are widely used in agile software approaches to divide up a large amount of functionality into smaller pieces for planning purposes--– Martin Fowler  

Why do we do it? The Product Owner may get a new requirement from the customer or stakeholder. The Product Owner would want the development team to develop this requirement or feature and would also want to know the effort required to complete it in terms of time and resources. Developers will need to give an estimate of the effort, and this is the user story estimation.  

The process of estimating stories generally starts with the team picking up a baseline or reference story that everyone agrees with. The story points assigned to the story should also be agreeable to all team members. Once this story has been estimated, the estimation of all other stories can be done by comparing with the baseline story. As the team proceeds with the estimation, they will have enough reference stories to proceed smoothly. 

Every story is assigned a point value and if a story has a high story point, then the team should break it down to smaller user stories with smaller values.

What do we need to consider while estimating user stories? 

  • Complexity of the task 
  • The risk associated with it, for example, if it is something completely new then the team may not have any prior experience in building such a feature, which may affect its delivery and quality 
  • The implementation and deployment factors that may affect the story 
  • Any dependency that the story may have that may affect its progress 

Most Popular Agile Estimation Methods for User Stories

  • Planning Poker:

Planning poker is among the most popular and widely used use story estimation techniques. The estimates are fixed with the consent of the entire group and hence this is called consensus-based estimation. All team members get together for estimation, and all are given numbered cards, usually in the Fibonacci sequence. A story is picked, and each team member will hold up a particular value card, which they think is the appropriate value for that story. All may not hold up the same value card, in which case voting is carried out till a consensus is reached by all.

  • T-shirt sizing:

This is also an absolute estimation technique used when quick estimates must be provided for many items. Just like we can choose t-shirt sizes such as S, M, L, XL etc, for ourselves depending on our size, use stories can also be assigned t-shirt sized based on their complexity. The team sits together and arrives at a consensus for assigning a t-shirt size to a story.  Once all stories have been assigned sizes, they are placed into buckets that are labelled S, M, L, XL etc. This helps the teams understand the number of tasks to be completed, based on their sizes. 

  • The Bucket System:

This is also a consensus-based estimation technique where every team member can have a say in deciding the complexity of the task. It is used when many items are to be estimated quickly. It works best for small and mid-sized teams.

This approach requires having buckets that have been assigned different labels representing different complexities. Buckets can be assigned values based on the Fibonacci series-- 0,1,2,3,4,5,8 etc. The process starts with picking a reference story from the backlog at random and placing it in a mid-point bucket, like say 4. All other stories on the product backlog are estimated in comparison to this base story and placed in appropriate buckets. The stories picked are mostly of the same size and if the story is very large then it must be broken into smaller stories.

  • Affinity Mapping:

Affinity mapping is great way to foster collaboration between team members. It is quick and easy to carry out and ensures transparency in the process. Once the team gets the user stories from the product owner, it silently establishes the relative sizes of the user stories. The stories are then arranged on a horizontal scale and the order keeps changing till the team is satisfied with the ordering. In order to keep the whole process conflict free, it is done silently.

  • Ordering Method:

Items can be ordered on a simple scale labelled from small to large. Items are first placed randomly after which team members take turns in moving the items up and down the list based on their complexity, while giving an explanation as to why they have moved the items. If the team is unable to decide on the position of any task, then it is left where it is and the next is taken up.

  • Large/Uncertain/Small:

Like the name suggests, this method allows assigning just three values to stories. The team members discuss and assign the stories to one of these three categories. Small stories are sorted first, followed by larger stories. This method works better when the items on the backlog are more or less of the same complexity.

Conclusion 

Estimations can be tough, but they are an unavoidable and a necessary part of Agile product development. Fortunately, Agile estimation techniques are simple to carry out and help team members collaborate and provide estimates that ease the decision-making process.  

Susan

Susan May

Writer, Developer, Explorer

Susan is a gamer, internet scholar and an entrepreneur, specialising in Big Data, Hadoop, Web Development and many other technologies. She is the author of several articles published on Zeolearn and KnowledgeHut blogs. She has gained a lot of experience by working as a freelancer and is now working as a trainer. As a developer, she has spoken at various international tech conferences around the globe about Big Data.


Website : https://www.zeolearn.com

Leave a Reply

Your email address will not be published. Required fields are marked *

REQUEST A FREE DEMO CLASS

SUBSCRIBE OUR BLOG

Follow Us On

Share on