Agile Estimation - Types, Story Pointing and Why Fibonacci Series?
Introduction
Types of estimation
Absolute estimation and relative estimation are the two primary methods of estimation used in project management.
Absolute estimation entails determining the precise amount of time, materials, or money needed to finish a task or project. When the task at hand is clearly defined and the team is highly skilled in the field, this method is frequently employed.
Instead of attempting to pinpoint an exact cost or completion date, relative estimation focuses on evaluating the relative size or complexity of a task or project. This method is frequently employed when the task at hand requires the use of novel or unproven technologies or processes or when it is poorly defined.
Story pointing, which includes allocating point values to tasks or user stories in accordance with their size and complexity, is an illustration of a relative estimating method. Typically, the point values are based on a scale, like the Fibonacci series, which captures the subjectivity and inherent subjectivity of estimating work.
The best method will depend on the type of work being done and the level of competence of the team.
Both absolute and relative estimating have advantages and disadvantages. Absolute estimation can be more precise, but it can also take a lot of time and might not be necessary if the activity is poorly specified or requires novel or unproven technology. On the other hand, relative estimation is typically quicker and more adaptable, although it may be less accurate than absolute estimation.
Definition of story pointing
In Agile software development, story pointing is a technique for determining the volume and complexity of work. Teams use it to determine how much work is required for a specific task or project, so they can plan and prioritize their work appropriately.
Agile teams strive to produce discrete functional units known as "user stories" in condensed iterative cycles known as "sprints." Based on the length and complexity of each user story, a specific amount of points are given to each one. This enables teams to monitor their development and revise their plans as necessary.
Explanation of why story pointing is used in Agile
Story pointing is a crucial tool for Agile teams because it enables them to divide big, complicated projects into smaller, easier-to-manage chunks. Additionally, it enables teams to estimate more precisely, which can aid in planning and budgeting. Story pointing, in general, enables teams to perform more effectively and efficiently by helping them to concentrate on the most crucial deliverables and provide value to their clients more rapidly.
The Fibonacci Series
Introduction to the Fibonacci series
Each number in the Fibonacci series, which begins with 0 and 1, is the sum of the two numbers before it. This is how the series appears: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, etc.
Explanation of how the Fibonacci series is used for story pointing
The Fibonacci series is utilised in story pointing to determine the point values for user stories.
The relative length and intricacy of the story are represented by each point value.
For instance, a user story with a point value of 5 is thought to be bigger and more sophisticated than one with a point value of 2.
The logic behind using the Fibonacci series for story points
The rationale behind the Fibonacci series' use as story points is the notion that it can be challenging to determine the scope and complexity of a task, particularly when it incorporates novel or unproven technology or procedures. Teams can more effectively express the subjectivity and uncertainty of their estimations by employing an exponential scale.
As an illustration, if a team determines that a user story is worth 8 points, it means that the story is much bigger and more complex than one worth 5 points, but it is not as big as one worth 13 points. Teams are able to make better decisions about their work because they can more properly reflect the degree of subjectivity and uncertainty in their estimates.
Furthermore, rather than attempting to estimate the size and complexity of large, complex stories all at once, the Fibonacci sequence encourages teams to divide user stories into smaller, more manageable portions. Teams benefit from having a better understanding of the work at hand and are better able to predict how much time and resources will be required to finish it. In general, the use of the Fibonacci sequence in narrative pointing aids teams in more precisely estimating the volume and complexity of their work as well as in better planning and prioritizing it.
The Story Pointing Process
Steps involved in story pointing
The story-pointing process involves the following steps:
Identify the user stories to be estimated: The first step in the story-pointing process is to identify the user stories that need to be estimated. This may involve breaking down a larger project/task into smaller pieces or identifying the work that needs to be done in the next sprint.
Gather the team: It is important to involve the entire team in the story-pointing process, as different team members may have different perspectives and insights into the work involved. The team needs to meet on the mutual ground before pointing a task, mutually.
Estimate the user stories: Each team member should estimate the size and complexity of the user stories independently. It is important to use a common scale, such as the Fibonacci series, to ensure that everyone is using the same point values.
Review and refine the estimates: Once all team members have completed their estimates, the team should review and discuss them together. This may involve adjusting the estimates based on new information or different perspectives. This brings a more realistic assumption of the complexity involved.
Assign point values to the user stories: Once the estimates have been reviewed and refined, the team should assign point values to the user stories. These point values will be used to track progress and plan future work.
Benefits of Story Pointing
There are several benefits to using story pointing in Agile software development:
Improved estimation accuracy: Story pointing enables teams to calculate the scope and difficulty of their task more precisely, which can result in more precise project plans and budgeting. Teams can better comprehend the work needed and make more educated judgements about how to prioritise and organise it by employing a standard scale.
Enhanced collaboration and communication: Teams are encouraged to collaborate and communicate more effectively by using story pointing. Teams can increase their capacity to work together by fostering open and transparent communication and incorporating everyone in the story pointing process.
Increased transparency and accountability: By offering a precise, impartial means to monitor development and evaluate performance, story pointing encourages transparency and accountability. Teams can make sure they are on track and accomplishing their objectives by periodically evaluating and modifying point values and estimates.
Conclusion
Agile teams may estimate the size and complexity of their work more precisely and make more informed decisions about how to prioritize and organize it with the aid of the effective tool known as story pointing. The Fibonacci sequence is used in story pointing to assist reflect the subjectivity and inherent subjectivity of task estimation and to motivate teams to divide user stories into smaller, more manageable chunks.
Story pointing has many advantages, including higher estimation accuracy, improved teamwork and communication, and more accountability and transparency. Teams may make sure they are staying on course and accomplishing their objectives by periodically evaluating and modifying point values and estimates.
Subscribe to my newsletter
Read articles from Adeesh Sharma directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Adeesh Sharma
Adeesh Sharma
Adeesh is an Associate Architect in Software Development and a post graduate from BITS PILANI, with a B.E. in Computer Science from Osmania University. Adeesh is passionate about web and software development and strive to contribute to technical product growth and decentralized communities. Adeesh is a strategic, diligent, and disciplined individual with a strong work ethic and focus on maintainable and scalable software.