A big challenge that most project or business managers always face in their jobs is estimating the work accurately. There are so many aspects that need estimation for the project to progress smoothly and be completed successfully. And it is highly desirable that these estimates be as early accurate as possible in order to avoid any hiccups later on. Estimates can be of many kinds. It could be related to finance or proper resource allocation so that teams can function smoothly or even estimate the time and effort required for any particular project. And there are multiple methods of estimation. But here we will be discussing the estimation techniques used in Agile.
When it comes to Agile, we know there is a list of work items in the backlog and each item needs effort to complete. So, here estimation means assessing how much effort would be needed to complete each item. Once you know this, you can plan the Sprint better. And this means you must use the correct Agile estimation techniques. You must be prepared to handle Agile estimation challenges with the right methods. However, forecasting the amount of effort that would be needed to complete a work is not a simple or easy task. Special techniques are required to be used to make sure that your estimates have a high level of precision. This is so because, in any software project, there is n number of variables and many unknown factors that make accurate estimation a fairly tough job. When teams make good estimates, it results in projects being completed with lesser effort and in less time. And that adds to the motivation of the team. All this is being said to emphasize the importance of using correct estimation techniques in Agile estimation.
Better decision-making and coordination in the team are aims of Agile estimation. As said earlier, Agile estimation techniques help the teams to estimate how much time they would need to complete a project thus giving as close deadlines as possible and predicting the resources they would require for this. There are many techniques for making estimations in Agile. Here will talk about eight main estimation techniques used in Agile
1. Affinity Estimation
Affinity means similarity or connection. And as the name suggests, affinity estimation uses similarities in items for making estimates. This technique is more suitable when there is a less number of items in the backlog and the size of the team is small. The team members are asked to place those items together that seem to require similar time or effort. It is on the basis of their relative size. Affinity estimation has three steps. They are:
a. Relative Sizing
b. Editing the wall
c. Placing items in the correct bucket
The main thing here is that the participants have to look for similarities in the items and group them accordingly. The exercise is continued till all the items are taken care of. After putting all the items on the wall, team members hold discussions among themselves and make adjustments if required. After finalizing the groupings, each group is assigned an estimation value which could be in any unit as decided by the team or the Product Owner, and estimation is completed.
2. Three-Point Estimation Technique
Next in the line of Agile estimation techniques is the Three-Point estimation. This technique is quite useful and helpful to Product Managers in making better projections. The three-point estimate takes into consideration three scenarios and calculates their average to arrive at the estimate. The three scenarios are what could be the best outcome, what could be the worst outcome, and what could be the most likely outcome. Separate estimates are calculated for each scenario and then they are all combined and their average is taken as the final estimate.
In this technique, the value of time and effort required for a project is calculated on the basis of three factors. First is the Optimistic value. This means the team calculates the value based on the optimism that the project will move smoothly without any hindrance. The second factor is the Pessimistic value. This value is the time and effort required if there are impediments to the product or things do not move smoothly. And the third and the last factor is the Most Likely Value. This is the practical or realistic time and effort required. This technique is generally used by the teams that have just begun doing Agile estimation.
3. Planning Poker
This is one of the more popular and widely used Agile estimation techniques. As you can guess from the name, there is an element of the game of poker in this technique. This technique involves a number of cards that have story point numbers written on them. These numbers denote the level of difficulty of a task or the amount of time needed for that task. Smaller numbers denote less difficulty and less time and the bigger numbers denote more difficulty and more time. The Product Owner gives each member of the team a deck of cards bearing these numbers. The team then indulges in a game of planning poker. Each member selects one card from the pack of cards given to them as their estimate without showing it to anyone else. Once everyone has completed this exercise, all the cards are revealed simultaneously.
If the value of the cards selected by all the members is the same, then it is taken as the estimate. However. if the team members choose different cards, then each one is asked to give their rationale for choosing that particular card and the team has a discussion. The exercise of choosing the cards is repeated till the time a consensus estimate is reached. The Planning Poker method is generally used when there are fewer items, usually around 10 or so. It is a simple and easy technique and helps in fostering cooperation among the team members.
4. Dot Voting
This is a very simple Agile estimation technique and the name clearly indicates that this one is about voting. When the number of items is less, dot voting proves to be very effective. When you want to get the values for many small items, you would want to avoid using any complex technique for it. Dot voting is a simple and fast technique that you can use for this purpose. This is a perfect method of estimating the time and effort needed for a small set of items.
The process of dot voting is pretty straightforward. The Product Owner places all the User Stories in front of the team (on the wall or board). Members of the team are given 4 to 5 votes each in the shape of sticky round dots. They are then asked to vote on the tasks according to their perception of which task is more important or will need more time and effort, by putting these dot stickers on the wall in front of that task. They have to repeat the process until their dots get exhausted. It becomes easier to evaluate when it is right in front of your eyes. The task that gets more dots will require more time and effort and the task that gets fewer dots will need less time and effort. This makes a consensus possible on the time and effort needed. As said earlier, the dot voting technique is very useful when a small number of items is to be estimated and is used not only by new teams but by teams that are experienced in estimation also.
5. The Bucket System
When a large number of User Stories is involved and your team size is medium to large and you need to make a quick estimate, the bucket system is an ideal technique for estimation. This estimation method can be used for numbers as large as up to 500 items. In the bucket system, the focus is on the team members holding discussions and arriving at a consensus. The process involved is very simple.
A number of buckets are created as per the number of User Stories or items. These buckets may be in the shape of sticky notes also which may be pasted on a wall or table. Here care should be taken that every item that needs to be estimated is included. Then an item is selected randomly and the group is told about it. Then this item is kept in one bucket. Next, another item is picked and again the team is told about this. The first item is taken as the reference and the team discusses the relative position of the second item till the time a consensus is reached. Once consensus has been achieved, this item is placed in the correct bucket. This process is repeated until all the items have been discussed, the consensus is reached and each item is placed in the appropriate bucket. Then a review is done and if the scale is tilted towards one side, readjustment is done to bring the balance. Once all the items are put in the buckets and sufficient discussion has taken place among the team members, the exercise is deemed to have been completed. The bucket system technique is faster compared to other techniques and gives ample time for discussion to arrive at a consensus.
6. T-Shirt Sizing
The t-shirt sizing estimation technique is used for making estimates of product costs. These are two of the major Agile estimation challenges that teams usually face. And estimating in relative terms is always a better option. The t-shirt estimation technique does precisely that.
In this technique, the team uses t-shirt sizes instead of numerical values to estimate the User Stories. The method is quite simple. The t-shirt sizes like extra small (XS), small (S), medium (M), large (L), and extra-large (XL) are used for estimating User Stories. More categories like XXL can be added if required. Each t-shirt size denotes how difficult the task is or how much time would be needed to complete it. The bigger size means the requirement of more time and effort and the smaller size of the t-shirt means less time and effort would be required. The team members are given an explanation of the product and then each member chooses a t-shirt size according to their estimate of the time and effort required for the product. One important thing to keep in mind here is that it is a relative technique, so members have to decide the size of the item relative to others. This means they have to decide if size “L” is twice the size “M” or more than that. So once all members have chosen the sizes, it is seen if all the members have chosen the same size for that particular item. If it is so, this is taken as the estimate. If not, the team holds a mutual discussion till the time a consensus is reached. And this consensus is taken as the estimate. This process is repeated for each User Story until a consensus is arrived at. So we can say if there are large backlogs, t-shirt estimation is a smooth method of estimation.
7. Random Distribution
This one is again a relative estimation technique. The method is quite simple and fast and is fairly accurate in providing the relative size of various User Stories. In the random distribution technique, all the items are distributed randomly on a horizontal scale in the order of low priority to high priority. Each member of the team then moves one item up or down as per their estimation of its priority. All members take turns to complete this exercise. An order is achieved when all the members have moved the items up or down. Members have the choice of passing their turn if they are okay with the order. The exercise ends when all the members pass their turn indicating that everyone agrees with the order in which the items have been placed. And the final order achieved shows the level of priority assigned to each task,
8. Big, Small, Uncertain Estimation Technique
When the word uncertain is there, it indicates indecision or difficulty in making decisions. This technique helps in managing decision-making. This is done by the team focusing on those items that need urgent discussions. This is a quick technique as only three things need to be focused on. They are whether an item is big, or small in terms of priority or the team is not sure meaning it is uncertain.
In this technique, the items are placed in front of the team members and they are asked to rate them as big, small or uncertain if they are not sure of their importance. So the team members have the choice to say that they don’t know if an item is big or small. Once every member of the team has given their rating, they discuss the reasons for their rating until a consensus rating is achieved. The process is made easy when you know the big and the small items and thus can put more focus on the uncertain items. The process is completed when all the items have been ranked in the order of their priority. This technique of estimation is very useful when you need to estimate a large number of stories.
As you must have seen, none of the techniques described above are complex and are easy to use. We have tried to make this article as informative as possible and have explained all the major Agile estimation techniques here. We hope that the information we have provided will prove to be very useful to you.