Most software development projects today aim for two goals: creating high-quality products that meet customer requirements and delivering products on time. To achieve this, estimating a reasonable amount of time is always a concern for project managers. Agile Estimation – a flexible estimation technique – will help solve this problem!
What is Agile Estimation?
According to the definition from Wikipedia, “Estimation is a process to find an estimate or approximate number, which brings value for some purposes – even when input data is incomplete, unreliable, and unstable.”
In Agile software development projects, Estimation is a technique for forecasting and determining the amount of effort required to develop a product. Its purpose is to serve as a basis for scheduling, predicting progress, and monitoring the work of the Scrum team. Estimation is not intended to provide precise figures for completion time or effort for each task, but is rather relative.
The basic characteristics of Agile Estimation are:
- Cannot be accurate 100%
- Unit: hour or story point
- Estimated by the person who will do the task
- Contingency factor should be considered
- Regular review and update is necessary.
2 simple and easy-to-apply Estimation techniques
Before we get to the Agile Estimation techniques, we need to understand the term Story Point. This is because, in Agile projects, “point” is often used instead of hours when estimating a project.
Simply put, Story Point is a unit of measure for the difficulty of a task. For example, an easy task corresponds to 1 point, an average task corresponds to 2 points, and a difficult task corresponds to 3 points.
So how do we determine the size of a Story Point? This is where we need to apply Estimation techniques:
Planning Poker Technique
It is an effective technique widely used in software companies today. With this method, the poker deck will contain cards belonging to the Fibonacci sequence: 0, 1, 2, 3, 5, 8, 13, 20, 40, 100. The process is as follows:
- Step 1: Identify the Product Backlog/Sprint Backlog item that needs to be estimated.
- Step 2: Choose an item (usually a User Story or Task).
- Step 3: Each member independently determines the number of points by selecting the corresponding poker card and not revealing it to others.
- Step 4: All story points are announced at the same time.
- Step 5: Evaluate and discuss. If the points of the members match, the estimation for that item is completed. Otherwise, if there are differences, the chosen member will explain their reasoning. This process will be repeated in Step 2 until there is agreement.
This method is often performed in the early stages of a project when there is not much detailed information available.
In principle, the T-shirt sizing technique does not have much difference from the Planning Poker technique. Based on the idea of dividing into different sizes of T-shirts, the Scrum team will assign corresponding sizes to the complexity of the User Stories.
Since there is no certain information, the estimation unit will range from extra small (ES) to extra large (XXL). The T-shirt sizing technique does not require estimating the exact size of each job category or even how much difference between sizes. All the necessary information will be extra small (smaller than small); small (smaller than medium) and so on.
However, the team can also assign points to each size. For example, extra small corresponds to 1 point, 2 points for small features, and 3 points for medium features…
Factors affecting the accuracy of estimation
In some cases, the actual results differ significantly from the numbers given in the estimation. Here are the factors that affect the accuracy of Agile Estimation:
- “Parkinson’s Law” and Student Syndrome – referring to “soaking” tasks instead of completing them early.
- A late task leads to a chain reaction effect.
- Human activities are not carried out independently.
- Subjective issues such as human emotions, psychology, collaboration capabilities between members, technical devices not meeting requirements, unreasonable requirements from customers…
Therefore, when performing Estimation, the team also needs to consider risk factors. At the same time, based on experience from previous projects, estimating can sometimes be inaccurate, which is a common issue in projects. The team should not make adjustments but should keep the information as a basis for determining more accurate story points in future iterations.
In summary, Agile Estimation is for planning – not reality and not commitment. Initial story point estimates may have many inaccuracies, but by controlling the plan together, the Scrum team will gradually achieve more proficiency and consistency. They will also gain a better understanding of work items, thereby reducing risk during implementation.