In this article, we will explore some of the alternative approaches to estimation that are available to Agile teams, including techniques that are based on time, people, or other measures of effort. We will also examine some of the pros and cons of these approaches and discuss how teams can choose the best approach for their needs and goals.
On my previous article , I explain in further detail how Story Points work, here I’ll go through the following estimating methods:
- Use Case Points
- Relative Estimation
- The #noestimates movement
- Monte Carlo methods
2. Use Case Points: Estimating method based on user scenarios
Use case points are a method of estimation that involves analyzing the user scenarios or use cases that the project is intended to support, and assigning a relative value to each use case based on its complexity and importance.
It requires standardizing the functional requirements as much as possible, in order to make the estimation process more consistent and reliable, like having a catalog in a way.
This standardization may require more upfront analysis and planning and may be more time-consuming and complex than other methods. That’s why it may not be suitable for all projects, particularly if functional requirements are not well-defined or stable, the team is not familiar with the requirements, the project is large or complex, or the team is not comfortable using the method.
3. Relative Estimation: Comparing Tasks to Past Experience
Relative estimation is a method that involves comparing a new task to other pieces of work that have been completed in the past.
It relies on the idea that teams can use their past experience to gauge the relative difficulty of new tasks. This is the most common approach to do estimations with story points, but we can also use different units to measure such as hours, days, sprints, person x day, etc.
One of the main advantages of the Relative Estimation approach is that it allows teams to make quick and accurate estimates based on their past experience, without the need for extensive analysis or detailed planning. However, it is important to note that this approach relies on the team having a sufficient amount of past experience to draw on, and it may not be suitable for those that are working on novel or unfamiliar work.
In addition, this approach may not be as precise as other methods, as it relies on subjective judgment and may be influenced by personal biases or assumptions.
Taiga developed Taiga Seed as a side project to use this Relative Estimation approach. You just need a taiga.io account and activate your Taiga Seed account .
Taiga Seed, brief intro on the benefits of adopting early user story estimation
4. The #noestimates Movement: An Extreme Alternative to Traditional Estimation Techniques
The #noestimates movement is an approach that argues against the use of traditional approaches to estimating the time and resources required to complete a project or task.
Proponents of this movement state that those techniques are often based on assumptions and guesses, and that they can be difficult to use accurately, particularly in situations where there is a high level of uncertainty or complexity. They also argue that they can be time-consuming and can create unnecessary pressure and stress for team members.
It is important to note that the #noestimates movement is not widely accepted, and there are differing opinions on its effectiveness. The fact is that many people in an organization need to answer the question “When is this going to be delivered?” which is a fair question that 's mostly propagated from managers to teams because of several reasons. Again, this would lead us to a conversation about prioritization, but let’s stay focused on what a team still can do to answer this with the least effort.
5. Monte Carlo Methods: Estimating the Likelihood of Outcomes
In the context of project management, Monte Carlo methods are algorithms that use random sampling to estimate the likelihood of completing a project within a certain timeframe or budget based on the complexity and effort of the tasks involved.
These methods are widely used across various fields such as finance, engineering, and physics. In project management, they offer a more reliable and data-driven approach to decision making by simulating different scenarios and analyzing the impact of uncertainty and variability on cost, time, and other project factors.
Imagine that you could simulate the progress of your project based on some historical data. At the end of your simulation you could have some histogram as the one below, so you can answer the question “When is this project going to end?” with some range of dates and a probability percentage.
This gives a more accurate picture of potential outcomes and helps evaluate risks and uncertainties early on, enabling informed decisions on resource allocation and risk management. However, it’s crucial to have accurate data inputs, and discipline in tracking task progress and updating the board, as inaccurate data may lead to unreliable results. Monte Carlo simulations can also be computationally intensive and may require specialized software or expertise to execute effectively.
This article provides a helpful summary of how to use the tools developed by Troy Magenis (in an Excel spreadsheet) to create your own forecasts with Monte Carlo simulations. I have personally used them and can confirm their effectiveness. With accurate data, creating these forecasts requires minimal effort and the results are impressive. However, it’s important to note that your expectations may be quite different from the realistic predictions generated, which can be surprising at first. You can also find more resources in Troy’s repository.
Finding the Right Approach for Your Team and Project
When it comes to estimation in Agile software development, there is no one-size-fits-all approach that will work for every team and every project. Different methods and techniques will be more or less suitable depending on the specific needs and goals of the team, as well as the complexity and uncertainty of the work being done.
To find the right approach for your team and project, it is important to consider a number of factors, including:
- The level of accuracy required: Some methods may be more accurate than others, but they may also be more time consuming and complex, or require historical data. On the other hand, other methods may be quicker and simpler, but they may be less accurate.
- The level of complexity and uncertainty: More traditional methods for estimation may be more suitable for tasks that are well-defined and relatively clear, while other methods may be more suitable for tasks that are complex, novel, or uncertain.
- The team’s experience and skills: For some methods, you may require specialized knowledge or skills that not all teams have, but you can choose other methods that may be easier for them to use, even if they have limited experience or expertise.
- The team’s culture and preferences: Different teams will have different preferences and comfort levels when it comes to estimation methods. It is important to consider the team’s culture and preferences when choosing an approach, as it may be more effective to use a method that the team is familiar with and comfortable using.
Finally, the best approach for your team and project will depend on a combination of these and other factors. By considering the needs and goals of the team, as well as the complexity and uncertainty of the work being done, you can choose the method that is most suitable for your needs.