As humans, we are terrible at estimating how long something will take. When determining how long a project or task will take us to complete, we often think in absolute terms, like a week or maybe two weeks. But, once we start working and finish a task, we realize that our timing was way off.
Unlike machines, when we first start a project, we don’t have any previous data on which to base our estimations. This means most, if not all, of our estimations are mere guesses. In the business of developing new products, we can’t leave everything to guesswork. We need methods for estimating project deadlines to reduce risk and effectively plan and allocate resources.
Agile organizations, in particular, have an even tougher time trying to anticipate how long a task will take.
Under the agile methodology, companies have a dynamic way of approaching projects making it harder to estimate new product timelines. Because of this, it’s vital to differentiate how we estimate projects in an agile organization compared to traditional estimation techniques.
Agile estimation has a range of benefits for an organization. It helps keep projects on track and it helps teams make better, well-informed decisions during sprint planning sessions.
This article will discuss what agile estimation is, common techniques to estimate agile projects, and how to forecast, schedule, and budget in an agile organization.
What is Agile Estimation?
Agile estimation is a top-down process of estimating the effort it would take to complete a user story from the product backlog. These estimates may be determined by identifying the complexities, risks, and efforts involved in completing a story point.
Story points are units of measure that show how much time a task might take depending on the effort required. These are determined in relative rather than absolute terms, and may take longer or shorter depending on factors like project complexity and individual and team effort.
When making agile estimates, it’s important to note that story point estimations don’t have to be pinpoint accurate; rather, they should give you a rough idea. As the project moves forward, teams will get a better grasp on how long a task from the product backlog takes them to implement, which will help them make better estimates throughout the project.
Agile Estimation vs Traditional Estimation: Does One Give Better Results Than the Other?
Traditional estimation techniques use a bottom-up approach to estimating project tasks. Traditionally, companies may spend weeks or even months to accurately derive how much time each task will take, document that time to create a schedule, and create a product plan based on the decided schedule.
This approach poses a range of challenges, especially in today’s faster-paced business climate. Customer trends are changing quickly, and businesses are progressing and innovating faster than ever. This leaves little chance of finding a market gap. A simple mistake, such as misjudging how long a project will take, can have detrimental effects on a business.
Miscalculating the project deadline can lead to disappointed customers and possibly an obsolete product that doesn’t produce the expected value. This can create an opportunity for your competitors to outperform you and gain a competitive advantage.
Agile estimation, on the other hand, uses a top-down approach to estimate project tasks. This process involves looking at the broader tasks and making relative estimations regarding how long it will take to complete a task based on previous iterations.
Agile estimation techniques differ from traditional ones in that agile approaches take into account the fact that we, as humans, are bad at accurately estimating how long a task takes.
An agile approach to estimation helps to prevent delays by preparing the team for possible bottlenecks. It enables the team to adapt to changing circumstances. Agile estimation techniques are based on evidence, namely how long a project will take based on similar projects from the past.
For example, it can be difficult to say how long it will take us to build a house. But it’s easier to tell how long it will take to build two houses based on the time it took to build one house.
Advantages of Using Agile Estimation Techniques
Improves Decision Making
By using agile estimation you can make better, well-informed decisions on which tasks to take on early on in the process.
As tasks in the product backlog are divided into story points, you get an accurate number of the possible time it will take to complete a task. Compared to traditional estimation, the time taken for a task isn’t determined in absolute terms, which helps agile teams avoid delays and better adapt to changing circumstances.
Prevents Bottlenecks in the Process
Breaking large tasks into chunks can help you plan future iterations based on previously completed tasks. When teams work on a few user stories at a time they can quickly adjust to the next one if an issue arises. For example, if the project team has to develop the UI of an app, a team member responsible for designing the functional elements may not be available.
If a product plan was made from the start with a fixed schedule, like it is in traditional estimation, it can be difficult for teams to adjust to this issue when it arises. But, for agile teams, it’s doable as they don’t have any fixed schedule and may be able to find a replacement, helping prevent the project from being delayed too much.
Improves Collaboration
Agile estimation techniques require input from all team members to help in creating an accurate schedule for the project. This requirement may force team members to start communicating with each other early on to figure out how much time it might take to complete all the tasks listed in the product backlog.
Keeps Teams on Track
Agile estimates help identify which tasks contribute the most value to your bottom line. As team members are expected to determine story points and assign a ratio of value to them, it’ll help keep teams on track regarding which tasks are the most important.
Since agile looks at time estimates broadly, it can also help team members see how some tasks overlap and relate to others, allowing them to better prioritize which tasks to tackle first and last.
Five Agile Estimation Techniques to Help Make Better Estimates
Before getting into the five most common agile estimation techniques, we need to understand a fundamental concept that helps determine the value assigned to each task – the Fibonacci sequence.
The Fibonacci sequence is a sequence of numbers where each number is the sum of the two preceding numbers. It starts with 0 or 1 and moves on from there, e.g. 1, 2, 3, 5, 8, 13, 21, 34, 55, etc.
This mathematical sequence of numbers was developed to identify and help explain natural patterns or processes in nature and is still applicable in computer algorithms, graphs, systems, and biology.
For an agile organization, however, it helps in giving a precise measure of value to a task. For the techniques we discuss below, it’s important to keep the Fibonacci sequence in mind to help make sense of the numbers assigned to certain tasks when estimating agile projects.
Planning Poker
Planning poker, also known as sprint poker, is an estimation technique where team members use playing cards to reach a consensus on assigning point values to tasks.
These playing cards aren’t the cards we’re used to seeing in poker; rather, each one of them has a Fibonacci number assigned to them.
Here’s how planning poker plays out to determine the value of a task:
- Team members are given a set of cards with numbers assigned to them.
- The agile project manager or product owner presents a task of the product backlog to be estimated.
- The team discusses this backlog item.
- Each team member selects a card to assign a point value to the item.
- After everyone has chosen their card, they are asked to show it at the same time.
- If everyone chose the same card, then that point value is assigned to that story point.
- If the cards are different, then the team discusses why someone chose a different point value from the majority.
- First ask the person who chose the lowest value, then ask the person who chose the highest as to why they chose those values and thought it seemed to be more accurate than the value the others chose.
- Reevaluate the cards until the team reaches a final consensus.
- Repeat this process until the team assigns a point value to each item.
Affinity Grouping
Affinity grouping is a quick way to make estimates based on the relative sizing of tasks. In affinity grouping, team members determine which tasks are “large” and “small” and groups them categorically.
Here’s how it’s done:
- An item is presented to the team, and they are asked to size it by placing it on a wall.
- Teams are then presented with a second item and are asked to place it on the wall as well.
- Items placed on the right are larger, and those on the left are smaller.
- These two cards may then act as a yardstick to estimate other tasks. Team members are asked if the next corresponding tasks are smaller or larger than the first two items.
- This process is repeated until the team has ranked all of the tasks on the wall based on their relative size.
Teams work in parallel with one another to determine the size of each task. They may engage in discussion before placing an item on the wall, but it goes faster if the team members use their intuition initially.
Once all tasks/items are placed on the wall, the team assigns a point value to them.
The first task starting from the left of the wall (the smallest one) would be assigned a value of one, and from there, as tasks move to the right, they are assigned a Fibonacci number.
For example, if there are a total of 8 tasks to be completed in a sprint, then the task placed on the extreme left would be assigned a value of 1, whereas the tasks placed on the extreme right would be assigned a value of 34.
Bucket System
The bucket system is similar to planning poker. Teams estimate user stories by sorting them into “buckets” that are each assigned a value based on the Fibonacci sequence – and accepted through a consensus.
This is a simple technique because it combines the collaboration of planning poker and the simplicity of affinity grouping. Team members can either discuss or quickly work through tasks and assign each a value based on the Fibonacci numbers by placing them in a bucket.
If all team members don’t vote the same number on a specific task, then they discuss why their assigned numbers differ and then work toward a consensus.
T-shirt Sizing
T-shirt sizing is a method of ranking tasks based on their complexity. The team ranks the relative size of tasks based on t-shirt sizes rather than the Fibonacci numbers. These t-shirt sizes typically include XS, S, M, L, and XL.
- Team members are shown an item from the product backlog and told to estimate its t-shirt size
- Teams are encouraged to discuss the item and decide on what size would be appropriate for it
- They pick a t-shirt size collaboratively after discussing it
- They repeat this process until every task is assigned a t-shirt size
The main difference between t-shirt sizing and affinity grouping – where tasks are also relatively sized – is that t-shirt sizing uses t-shirt sizes to assign a point value to an item. Rather than placing items on a wall and using the Fibonacci sequence to determine their relative sizes, this can be a more fun and interactive way to estimate tasks.
Dot Voting
Dot voting is an agile estimation technique where teams are given a set of dots to assign to each item based on their estimate of the time it will take to accomplish each task.
The more dots a person assigns to an item means the more complex they are, and the more effort they will require. Conversely, fewer dots means the tasks are relatively easier and less time consuming. Teams then vote on which tasks deserve a higher or lower number of dots and they may also discuss why.
Dot voting is concluded once the team assigns all their given dots to the tasks and reaches a consensus.
This technique works best for smaller projects that have a fewer number of tasks.
How to Choose Which Agile Estimation to Choose
Choosing the agile estimation technique that works for your organization depends on the complexity of the project and the size and experience of your team. Organizations should not limit themselves to using just one type of estimation technique for all projects.
As project requirements change, so can your estimation techniques, and the most suitable one should be chosen – not the one you’re most comfortable with.
Below, we highlight some general guidelines for using the common agile estimation techniques discussed above to help you choose the best one for your projects.
- Planning poker – Best utilized by teams with experience in agile estimation; used for prioritizing product backlog items via collaborative decision-making. Works great for projects of most sizes.
- Affinity grouping – Best used by most agile teams; used for larger projects with lots of different tasks.
- Bucketing system – Used by teams without much experience in agile estimation; easier to sort tasks into relative story points. Works best for projects of varying sizes.
- T-shirt sizing – Also used by teams without much experience in agile estimation; used for projects with a large product backlog and works best for the initial stages of product discovery.
- Dot voting – Best used by experienced agile teams who can accurately gauge how long tasks will take to accomplish; works great for smaller projects with fewer backlog items.
Six Steps for Estimating Agile Story Points
Once you’ve created and prioritized your product backlog, you can start estimating story points.
Before starting, make sure your team understands story points and how to get started. Then follow the below steps to start estimating your agile projects.
Choose a Story Point Estimation Sequence
Start by choosing what agile estimation technique and sequence you’ll use to define story points. The Fibonacci sequence is quite popular for making accurate estimates in agile projects. If your team isn’t comfortable adopting numerical values to story points, you could also use t-shirt sizing sizes as described above.
Create a Story Point Scale
After choosing an agile estimation technique, team members have to create a story point scale. How teams do this varies depending on the estimation technique you choose. But, the general process remains the same. Teams estimate user stories and assign them story points. These story points are then plotted on a graph with the smallest or lowest score tasks at the bottom.
Create a Value Point Scale
Story points give us an estimate of how much effort or time a certain task will take. However, they don’t convey the value of completing that task. Story points are important units for developers to estimate tasks. But value points are also important for customers since they are units used to convey the value that the task will contribute to the final product.
Assign Each Item a Bang for the Buck Score
After creating both a story point scale and a value point scale, it can still be hard to choose which tasks teams should be working on first – the ones that can be completed easily or the ones that bring in the highest value.
To work around this, we find another unit of measure, the bang for the buck score.
This score is calculated by dividing the value points by the story points, which will give you the value per user story. These new values are then written alongside the user stories in descending order, and the tasks with the highest value per story are tackled first.
Refine Story Point Estimations by Reflecting on Previous Sprints
As the project progresses and the team completes iterations, they will reflect on previous sprints and refine their estimations.
These new estimates are more accurate than the initial estimations because, after each sprint, teams have real, first-hand data and are more able to determine the team’s velocity.
Best Practices for Improving Agile Estimation
Estimate Easier Story Points First
If your team has previous experience working in sprints on agile projects, they are likely to have a general idea of how quickly they can complete tasks. Team members should first estimate story points that they have a good idea about and have a strong intuition for.
Break Down Large Tasks into Smaller Ones
Trying to estimate a large project with broad requirements can be difficult, which is why teams should break down large epics into multiple user stories.
It’s easier to estimate small tasks as compared to larger ones, so teams should look for opportunities to break down large tasks into smaller units.
Keep Everyone Involved
All team members should be informed about story points and be involved in the agile estimation process from the start. Having all team members on board helps to improve the accuracy of the team’s estimates and helps to determine which tasks should be taken on first to deliver early value.
Consider Historical Data
No matter how well-versed you may be in a field, making a highly accurate estimate of task duration can be extremely difficult. For this reason, teams should always consider opportunities for improvement by reflecting on previous sprints and learning when, why, and how their estimates went.
If teams are often finding that their estimation differs widely from the actual time taken to complete a task, it means they either need to engage in more open and honest discussions with their teammates or try to get a better idea of their skills.
Involve Subject Matter Experts
Subject matter experts can help teams make better estimates of how long a certain task may take to complete. They can also analyze the current processes, tools, and experience of the team and form an educated estimate.
In an agile environment, the project is often flexible, so there’s a high chance that your team doesn’t include a lot of specialized subject matter experts. Bringing in an outside expert to consult for your business and give you an accurate, agile estimation can help teams make better decisions.
Conclusion
Agile is a widely adopted approach to project management because it enables project managers to release products tailored to customer needs in shorter time frames. Despite agile being based upon faster and higher quality deliverables, agile teams can often get off track, face delays, and go over budget.
To prevent delays, project teams are required to schedule projects, but rather than using traditional estimation – spending weeks estimating tasks beforehand and creating a product plan accordingly – agile estimation provides better results and helps teams adapt to unforeseen circumstances.
In this article, we looked at solutions to better estimate agile projects by calculating story points, using agile estimation techniques, and following some best practices to ensure the accuracy of your estimates.