Request a call
  • Hidden

Predicting the effort required to complete business tasks is a very time-consuming and tedious task because most projects have so many variables that it can seem impossible to generate accurate project estimates from this data. However, estimation is a fundamental and inevitable element of business management. Development teams rely on estimates to prioritize work, business owners to create product development plans, and finance specialists need it to set and track budgets.

The flexible approach to estimation, often used by companies providing software product development services, allows you to break down all requirements into clear and meaningful tasks, which makes it much easier to calculate the effort required to complete each of them, and also supports and optimizes any subsequent actions for estimation. In this way, it is possible to effectively control the stages of project development and estimate intermediate results in time. Also, according to the principles of Agile, the involvement of all team members is essential, and even non-specialists can take part. This approach takes into account everyone’s perspective on the product and the work required to create the user story, and gives the whole team a clear understanding of what is being done, as well as why and how exactly. In addition, Agile promotes a range of methods to help ensure estimates are accurate.

If you are planning to grow your business and want to save your resources and find the best solution, contact a management and consulting services company to help your business reach a new level of market competitiveness using Agile estimation techniques and get the maximum return on your investment. Although at first glance it may seem that there is not much difference between traditional and estimation techniques in Agile, using method number two you can improve decision making, better coordinate teams, and learn how to manage risk more effectively. In this article, we’ll take a closer look at what Agile estimation techniques are and introduce various methods that can be used as a guide.

What is Agile Methodology?

Agile is a system of values (also called a way of thinking, or philosophy) aimed at solving business problems. It implies a fast and flexible response to changes in customer requirements. The process of creating a product does not begin with the preparation or study of technical specifications, but with the backlog. This is a list of tasks compiled based on the customer’s desires and requirements for the system and its functionality. All tasks are placed in the backlog in order of their priority. This helps the team understand which tasks to complete first.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

The development process is divided into iterations, or, as they are also called, sprints (these are short cycles of two to three weeks). Each sprint solves a series of tasks, and based on their results, the team analyzes and changes priorities for the next cycle. As a result, for each sprint, a mini-product or a separate part is created, ready for independent launch. Agile methodologies are especially popular in the field of creating software products, since this area is most subject to change, and the success of a company often depends on a flexible response to them. But Agile principles will work in almost any area that is related to project activities. This approach is used not only by the developers of Google, Netflix, Spotify, and other companies, but also, for example, Saab, in the production of new fighter jets.

As a rule, managers, developers, designers, testers, and other members of Agile teams are equal in the hierarchy and work in the same space. The entire team regularly receives feedback from stakeholders—users, customers, sponsors, etc. The constant interaction of the team with the customer and other stakeholders contributes to the prompt discussion of upcoming changes. This allows all team members to make fully justified and consistent decisions.

Simply put, Agile is not about reporting, document flows, and clear plans, but about constant communication with the client and the willingness to respond quickly to changes during the project, and the use of this approach allows you to start the project as quickly as possible, while the details can be clarified during its implementation.

What is Agile Estimation?

The most important advantage of Agile is its flexibility and adaptability. It can adapt to almost any condition and process of the company. This is what determines its current popularity and how many systems for various areas have been created based on it. And far from the last role in these processes is played by Agile estimation. How can you determine how long it will take to complete some part of the project? How do you explain the obstacles that arise in achieving the goals? This is where estimation techniques in Agile come to the rescue.

It is an estimate of effort, from the cost of an Agile project to how long it will take to complete each work item, which in turn helps improve planning. With strategy development using the right Agile project estimation techniques, the team won’t have to make random guesses during the project life cycle. Thus, getting familiar with Agile estimation techniques for user stories should be a top priority for a business looking to develop a new product.

With Agile estimation, teams will be able to:

  • Hold team members accountable for results
  • Enforce discipline in the Agile team
  • Predict the estimated time it takes to complete a project
  • Ensure successful project management
  • Improve team productivity

What is the Use of an Agile Approach in Estimation?

The estimation process allows the team to get a bird’s eye view of the project, consider all aspects of requirements, and identify risks early on to avoid unpleasant surprises. The sprint estimation process is the building block of successful Agile project planning. This process also helps the team reach a consensus and prepare for the challenges ahead. Let’s take a closer look at how teams can benefit from using the Agile approach to estimate.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

Better Decision Making

Through accurate estimating, the team will be able to run efficient backlog sessions, which is very important in sprint planning. You can quickly introduce new customer requirements, quickly respond to the actions of competitors, and work in conditions of uncertainty.

Improved Coordination

To reduce risk and ensure a secure development process, Agile project estimation techniques are the ideal solution. Testing, analysis of the results, and communication with customers at the end of each sprint help to quickly understand that something is going wrong and fix it in the newsprint. There is no need to completely redraw the project, shift deadlines, or postpone fixing an error until later. This helps to estimate the execution of the plan and to stick to the budget, deadlines, and scope of the project. The more accurate the estimates, the greater the chances of timely and high-quality delivery.

Principles of Agile Project Estimation Techniques

We have prepared for you a set of the most popular ways to estimate, which have proven to be effective. In general, if we consider the context of Agile, then it is better not to be limited to using one technique, but to periodically change or combine different ones. 

Principle 1: High-Speed Evaluation

In Agile methodologies, the emphasis is on speed—fast development, fast delivery, and prompt feedback. Also, Agile estimation techniques must be fast in the first place. Estimation itself does not carry any business value, therefore, in a dynamic iterative process, it is logical to do it with the least effort, as cheaply and quickly as possible. Estimating user stories in Agile will not be something unshakable based on which the project budget will be fixed once and for all. Here it is important to get real results by releasing a product or conducting a demo for the customer and, if necessary, adjust the Agile estimation techniques based on them.

Principle 2: Teamwork

Agile is teamwork, so most of the Agile estimation techniques here are group methods. All team members involved in the development participate in the process, and information and opinions of various experts are accumulated. If we are talking about Scrum, then the whole team will take part in backlog estimation.

Agile estimation techniques also allow each team member to feel comfortable when expressing their opinion and making assumptions about the complexity of a particular task. The final estimate is the opinion and responsibility of the whole team, and individual participants do not need to play it safe, leaving more time just in case.

Principle 3: Relative Units of Measurement

The next feature of Agile estimation techniques is the use of relative units. When using Agile methodologies, no one directly counts dollars, days, etc. For estimation, any markers, points, maps with numbers, colors, etc. can be used, which gives a good opportunity to compare different tasks with each other directly and qualitatively. At the same time, any associations and bindings to additional abstract values, such as days, are avoided.

For example, if, after task estimation, $10 of labor was received, then a person will involuntarily think whether it is a lot or a little, and this may affect the final estimate. Moreover, if the task was estimated at 100 conditional points, then this value itself does not say anything and works only in comparison with another task, and in this case, the estimate is not distorted.

What Are Agile Estimation Techniques?

Method 1: T-Shirt Sizes

T-shirt size is used as a unit of measurement in this technique: XS, S, M, L, XL. This is a creative method to better understand each user story. The team decides on their sizes during a joint open discussion. In case of uncertainty, voting may be used. If you wish, you can agree on the ratio of sizes—for example, S is worth 2 XS, M is 2 S, and so on.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

As a rule, the first few tasks are estimated in advance. Furthermore, a picture begins to emerge about the degree of decomposition of stories. As a result, relatively small tasks become visible, and they are taken as XS. After that, the rest of the tasks are estimated in terms of how much they are larger than XS. Depending on this, they are assigned a specific size S, M, L, or XL.

You can also agree that there are teams, for example, a large size XXL. Assigning a history of this size tells us that we can’t estimate the problem, and it needs further decomposition and/or refinement. This technique is quite fast and can be used to estimate a large number of user stories in one session. With its help, it is quite possible to evaluate 15-20 stories in an hour.

Method 2: Planning Poker

This is one of the most popular estimation techniques. Participants in the process use specially numbered cards (similar to playing cards) to vote on the estimation of a user story. Usually for these poker cards, Fibonacci numbers (0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89) are used, but other options are also possible.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

The estimation process looks like this:

  • Each participant receives a deck of cards with numerical values for estimation
  • The Product Owner makes a short announcement of the next user story and answers the team’s questions about this task
  • Poker “players” choose a card with a suitable estimate in their opinion and put them face down (so as not to influence each other’s choice)
  • After all team members have chosen their estimates, the cards are simultaneously turned over
  • Participants with the lowest and highest estimates are given brief comments explaining their choice
  • As a result of the discussion process, the team comes to a common decision and then moves on to the next user story

Planning Poker is one of the most accurate estimation techniques but is suitable for a relatively small number of tasks. During an hour session, 4-10 stories can be estimated in this way.

Method 3: Bucket System

This Agile estimation technique uses a principle similar to Planning Poker: estimation tasks are placed from buckets of the appropriate size. Fibonacci numbers can also be used to indicate size. However, these techniques have a fundamental difference—in the Bucket System, after the initial task scaling, the task process is divided between the participants to estimate.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

The estimation process looks like this:

  • All stories that need to be estimated are written out on cards
  • A sequence of buckets for problems of various sizes is built on a table or board
  • The team chooses in turn 3-5 arbitrary cards with tasks and estimates them in the course of an open discussion, comparing and lining them up relative to each other
  • Tasks are placed in the appropriate buckets, setting the overall scale and benchmarks for subsequent estimates
  • Further, all the remaining tasks are equally divided among all participants and estimated by them independently, taking into account the resulting measurement scale
  • If one of the team members finds it difficult to evaluate any story, then he passes it on to another

This technique, unlike the previous one, can be used for fast estimation of a very large number of tasks (from 50) and with a large number of participants.

Method 4: Dot-voting

This technique involves the use of special dots that show the votes of the participants set for a particular task. As such, points can be used: stickers, magnets, dots, etc.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

Stages of the estimation process:

  • All estimated user stories are written out on separate cards and placed on the table/board
  • To perform estimation, each of the participants receives the same number of points; all team member distribute their points between tasks as they see fit, given that the more points, the more difficult the task, and the more time it takes
  • After each participant has made an estimate and distributed all his/her points, the total number of points set for each user story is calculated; as a result, all tasks are ranked among themselves by the number of points

This is one of the Agile project estimation techniques which is very simple and fast, and it will work effectively for estimating a small number of stories (up to 8-10).

Method 5: Maximum Size or Less

If we consider this among Agile estimation techniques, then within its framework, the participants in the evaluation process first determine the maximum possible size for the task in the backlog.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

The estimation process then looks like this:

  • Each user story is discussed by all participants to answer the question: is the estimated task greater than or less than/equal to the maximum value?
  • If the given story is larger than the maximum size, then the group decomposes it into subtasks and repeats the process of estimating the parts
  • The process continues until all estimated tasks are in the allowed size range—they will be equal to or less than the selected maximum value

This is one of the easiest estimation techniques in Agile to use, and with it, the team can handle 15-30 tasks (depending on the complexity and decomposition experience)

Method 6: Big/Small/Uncertain

The next Agile estimation technique in the list is similar to the Bucket System technique, the main difference is that in this case only 3 categories are used: large task size, small task size, and indeterminate task size.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

Estimation process:

  • All estimated stories are discussed by the participants and placed in one of three big/small/uncertain categories
  • First, the group has a group discussion of the first few tasks (3-5), defining the scope and benchmarks for each category
  • Then, like the bucket system, the remaining stories are distributed among the participants and estimated independently, which greatly speeds up the process

This is one of the fastest Agile estimation techniques. It allows you to estimate a large number of stories (from 50) in one session and allows you to involve many participants in the process at the same time.

Method 7: Ordering Rule

This technique is a turn-based game, the goal of which is to line up all the tasks relative to each other on a single scale of size.

Estimation Techniques in Agile: Methodology, Principles and Tips for Using

Estimation process:

  • First, all estimated stories are written out on cards
  • Cards with tasks are randomly placed on a table or board with a scale, on the borders of which “small size” and “large size” are indicated
  • Each participant in turn makes his/her move of estimation. This includes one of the following possible actions: move any story on the scale by one division (change the rating to a lower or higher one), discuss the story with colleagues, or skip your move
  • As a result of the moves of employees, tasks can move around the board, and their assessment relative to each other is specified
  • When all participants miss their move, the estimation process ends; all tasks are distributed on a scale between the values “small size” and “large size”

This Agile project estimation technique is quite effective for estimating a small number of tasks (5-15). The participants are involved in the overall process and by changing the positions of the stories relative to each other achieve high accuracy of the estimate.

Tips for Using Agile Estimation Techniques

Use the following tips to effectively use estimation techniques in Agile:

  • Determine the size and type of data you need when choosing the right estimation technique—for example, if you have fewer user stories, then spot voting and scheduling poker are perfect for you
  • It is also important to take into account the skill level of the team, as some of the Agile project estimation techniques require some experience, and some are open to beginners—for example, poker scheduling and basket systems may be suitable options for teams that are less familiar with estimation techniques in Agile
  • It is also important to take into account the fact that the team may not be familiar, and in this case, it is important to choose Agile estimation techniques that would be as comfortable as possible—for example, teams that haven’t worked together might benefit from poker planning
  • Also, don’t get hung up on any one of the estimation techniques in Agile. Try different ones to determine the best one that suits you and your team—start with methods that require less preparation, such as point voting, and then consider trying deeper Agile estimation techniques, such as planning poker

Final Thoughts

With over 25 years of software experience, NIX is pleased to share its Agile estimation expertise to help you plan for technology evolution and learn how best to use available resources and technology trends.

Agile methodology helps businesses achieve their goals. Its principles allow preparing new products for customers in a short time, taking into account their opinions and reactions transmitted through feedback. Different Agile estimation techniques help the team understand how long it will take to complete a single user story. By spending more time planning estimation, experimentation, execution, and training, and less time thinking, delivery cycle time is reduced.

Whether you are a top manager, a project manager, or a product developer, you need to understand and remember the values and principles of estimation techniques in Agile for your Agile process to bring the expected benefits. Agile teams are better able to compete in the marketplace and keep up with the ever-increasing rate of change. Companies’ continuous drive to improve their product helps them stay competitive over time.

Evgeniy Petrenko
Evgeniy Petrenko Head of Project Management Office

Evgeniy is an experienced project manager leading high-scope multi-disciplinary projects through an entire software development lifecycle, ensuring the project is delivered on time, budget, and with respective quality standards.

nix-logo

Subscribe to our newsletter

This field is required.
This field is required.
This field is required.
nix-logo

Thank you for subscribing to our newsletter

nix-logo
close
nix-logo

Thank you for subscribing to our newsletter

Configure subscription preferences configure open configure close

This field is required.
This field is required.
This field is required.

Contact Us