In this blog, we are going to look at one of the most important concepts in Agile development i.e., Agile Estimation techniques like t-shirt sizing, poker, etc.
What is Estimation in Agile?
Agile or Scrum estimation is the project management mechanism used to derive an idea about the costs and effort involved in executing a project. This helps in deciding whether the work can be undertaken as proposed, needs to be modified, or should be canceled.
It helps for proper planning, management, and estimation of the total efforts that will be required to implement, test & deliver the desired product to the customers in terms of time within the specified deadlines.
Agile Estimation is employed in projects through various techniques such as Planning Poker, Bucket systems, and Affinity Mapping. A number of estimation templates at different levels also serve this purpose: Agile Project Plan Template, Release Plan Template, Sprint Plan Template, RoadMap Template, and User Story Template.
Scrum Master Certification Training
Traditional vs Agile Estimation
Traditional estimation is a different ballgame and uses methods that follow ‘bottom-up’ estimating which means that teams inspect each element of a project, estimate the hours or days required to complete it, and then use this information to develop a schedule for the project.
Agile estimation techniques use a ‘top-down’ process. This encourages teams to propose a gross-level estimation for how long the project should take, or how much effort it will take. This is then broken up and applied to different elements of the project. Teams drill farther into those elements, uncovering more and more details until the task level – which is looked at through a just-in-time lens.
Why do Teams Estimate in Agile?
Overestimating and underestimating are both common for Agile development teams which leads to varying development and launch times. Though the process is complicated, considering Agile estimation in the initial stages can assist with accurate user story estimations and help the team stick to the timely deliverables.
Some of the benefits of Estimation Agile techniques include:
1.) Better Coordination
Let’s say that the estimated effort for user story A is two weeks. On the other hand, the estimation effort for user story B is four weeks. Now, suppose both the user stories depend on each other and are connected. In that case, the team needs to prioritize work so that both user stories get completed simultaneously, thus leading to better coordination among teams.
2.) Improved Decision-Making
With accurate, agile estimation, it will be helpful for the development team to conduct effective backlog grooming sessions, which will further help in precise sprint planning. When they make informed decisions and plan well, their user story delivery time will improve.
3.) Better Risk Management
Software projects often suffer from exceeding budgets and timelines. To lessen this risk, Agile project estimation is an ideal solution. Agile product estimation helps estimate story points and stick to budgets, estimates, and the project’s scope. The more accurate the estimates, the better the chances of on-time, quality delivery.
Read: Latest 30 Scrum Master Interview Questions 2023
Stages of Agile Estimation
When a project starts, the horizon is limited. Thus, it is wise to implement a short product discovery phase to tide over this problem. The discovery phase establishes the essential tenet of Agile methodology, which consists of breaking down the requirements into small batch sizes.
The basic process includes:
- Conducting Stakeholder Interviews
- Defining high-level product backlog
- Understanding client & potential customers
- Prioritize requirements
- Prepare Minimum Value Product (MVP) backlog
- Estimating the project cost & timeline
Methods For Agile Estimation
Now that we have some knowledge about what agile estimation is so let’s look at some popular and commonly used estimation techniques in agile.
1.) Planning Poker or Sprint Poker
In Planning Poker, each team member will declare his or her estimate for a story. If everyone estimates the same or similar number, then move to the next story. But if each team member has different estimates, a discussion is done to clarify the scope, before more silent estimation occurs. The team members for estimating user stories include Product Owner, Scrum Master, Developers, Testers, and Stakeholders.
Number-coded playing cards are used to estimate an item. The cards are distributed across the team (sized 2-10), with each of the cards representing a valid estimate.
The reading on the cards could be something such as — 0, 1, 2, 3, 5, 8, 13, 20, 40, and 100. Now, the product owner or the analyst describes the user story to the team, and the team can ask any related queries.
Use-Cases:
- There are a small number of items
- Establishing mutual understanding among team members
- Running late-stage estimations
- The backlogs are highly prioritized
Read: Introduction To Sprint in Scrum & Its Uses
2.) Analogy
With estimation by analogy in Agile, story sizes are compared with other stories. This relative sizing approach is helpful when making assumptions relevant to agile estimations.
For example, if a company already estimated user story X for two weeks and now if they come across a user story Y that is twice as large as user story X, they will assign it a larger estimation number.
Use-Cases:
- If retrospectives are a part of the process
- Among teams that have a good mutual understanding
- Among highly experienced teams
Read: What three techniques should a scrum master use?
3.) T-shirt size estimation
This Agile estimation technique is informal but very creative, the items are estimated in standard t-shirt sizes (i.e., XS, S, M, L, and XL) and numbers can be assigned to each user story categorized under different t-shirt sizes for better understanding. A story estimated as XS is usually small and requires less effort than the XL story, which is large and has a big estimation number.
Use-Cases:
- Running rough estimations
- The team is new to Agile estimation
- There are large backlogs
- Running early-stage estimations
4.) Dot Voting
Dot voting is a useful Agile estimation technique that works well for a small number of user stories. It is easy to implement and is effective as well. Here, all user stories (including descriptions) are written on post-its and placed on the wall or the board to receive votes from the team. They are given four to five dots in the form of stickers, which they can use to vote for the user stories of their choice.
Use-Cases:
- Well-established teams
- Managing large backlogs
- Estimating a smaller number of items
5.) Agile Estimation Techniques
The affinity estimation technique in Agile can be applied when there are fewer backlog items and small team size. Affinity mapping involves the following steps:
-> Silent relative sizing: In this step, two cards are placed on a wall or a board in opposite corners (one is named Smaller and the other Larger). Next, all the participants receive a subset item from the product owner and are asked to size each item individually.
-> Editing the wall: Here items can be moved from one location to another based on team members’ discretion. Members can also discuss the design and implementation aspect, given the allotted period of twenty to sixty minutes.
-> Placement of items in the correct location: Team members place the items in suitable positions, post discussions. Here, the t-shirt Agile sizing technique, Fibonacci series, etc., can be used to estimate the relative item size.
-> Export to project backlog management tool: In this final step, the product owner can save the finalized estimations by exporting them to a product backlog management tool.
Use-Cases:
- Estimating a long-term plan for a project
- Gaining mutual understanding in the team
- There are large backlogs to handle
- Running early-stage estimations
Read: Agile vs Scrum: Differences & Similarities
6.) The Bucket System Estimation
This Agile estimation technique can be incorporated when estimating many items (50-500) and is better than the planning poker method. Here, different buckets (cards) are placed sequentially with values ranging from 0, 1, 2, 3, 4, 5, 8, 13, 20, 30, 50, 100, and 200 (and more, if required) and then according to the estimators’ discretion, the user stories (items) are placed within the buckets.
To start with, a random item is picked and placed under a different bucket. Then, another user story is picked, all its features and requirements are discussed within the group, and placed in the bucket that suits the team’s understanding. The same drill is followed throughout.
Use-Cases:
- Estimating a large number of items
- Enabling quick estimations
- The team is new to Agile estimation
- Estimating long-term projects
7.) Fibonacci Sequence for Story Point Estimation
Fibonacci sequence is a popular scoring scale within some teams. This sequence is the sum of the previous two numbers in the series- 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89… and continued whereas the linear sequence is- (1, 2, 3, 4, 5, 6, 7, etc.).
This comes with its benefits. While looking at a story and determining whether it’s a 5, 8, or 13, it’s quicker and easier to land with an answer than trying to come up with the correct number between, say, 4-15. The team is likely to reach a consensus much more quickly.
The team will have to discuss the work and choose the best estimate from a limited set of options.
The options, however, can still be limited. For example, a story could be estimated as more effort than 34 but less than 55. In instances like these, this scale has chances of being less accurate.
Use-Cases:
- When estimating for large and complex tasks
- If the need is to prevent estimates from getting too close to each other
- Are concerned about the estimated accuracy
Team Members Involved
Agile estimation techniques should not be implemented by a product owner or a scrum master alone instead everyone on the Agile development team should be involved because collaborative efforts lead to better estimates.
There are two reasons behind this:
- Anyone on the team can be assigned to complete a task. The assigning usually happens when the item appears at the top of the product backlog list. Everyone should be involved to ensure they know the user story demands and the corresponding estimation.
- Avoid underestimation or overestimation. The team’s experience and retrospective sessions help understand the intrinsicality of the item and what it will take to complete a user story. Everyone’s suggestion while estimating helps avoid inaccurate estimates.
Conclusion
Different Estimation Agile techniques help the development team understand how long it will take to complete a user story in advance. The better the planning around estimations, the better the chances of ensuring faster time to market.
- CSM and PSM Certification: Everything You Need to Know
- Agile Methodology and DevOps | DevOps and Agile Relationship
- Scrum Master: Roles & Responsibilities
- Agile Software Development Lifecycle
- Agile vs Scrum
- Scrum Framework: Roles, Events & Artifacts
- Scrum vs Kanban
- Product Planning, Agile Estimation & Fibonacci Sequence
Next Task for You
If you are considering in-depth learning about Scrum Master Certification in the upcoming days, join our Free Class and don’t miss an opportunity to attend a Free Class and gain a plethora of insights about Certified Scrum Master.
Leave a Reply