top of page

Agile Estimates: A Guide to Success in Software Development

Bruno Tarsis

Updated: Sep 10, 2023

In this blog post, I want to show the importance of agile estimates, and bring out the importance that estimates are not rigid agreements, but forecasts that offer valuable information for proper planning. Understanding that agile estimates can change throughout the project is critical to embracing the flexibility that agile development offers.


In this text, I want to show you the world of agile estimates, their advantages and how to improve their use to maximize the value delivered to customers. Agile estimates are a crucial aspect for the success of software development projects, the ability to predict the effort required to complete a task is fundamental for planning and managing agile projects.


But what would be the definition of agile estimates?


I would say that are a set of techniques and practices that allow software development teams to predict the effort required to complete tasks, sprints or entire projects in an agile environment . They provide crucial insights for planning and making informed decisions throughout the project lifecycle, however, it is a complex task that requires knowledge, collaboration and experience.


And because it requires knowledge, collaboration and experience, we need to involve several perspectives in the creation of estimates, because if we are guided only by individual experts they will become fallible, but if the estimates are generated within groups of experts they will be powerful. When working as a team, estimates are more assertive and reflect collective wisdom, minimizing the impact of possible individual errors.


However, I must highlight the difficulty of estimating unknown or unfamiliar tasks, so it is important to recognize that estimates for unexplored projects can generate uncertainties and various doubts, but with a coherent direction on what the estimates represent, it is possible to create a forum of discussion so that everyone can raise these points not yet aligned, which will allow adjustments as more information is obtained during the journey.


So we need to stress the importance of focusing in the right direction, even if the estimates are not extremely accurate. The goal is to get a general idea of the effort required and adjust as the project progresses, in other words it's better to be approximately right than precisely wrong.


The thought that estimates are a means and not an end helps us to generate a discussion among people about the topic on the agenda, and we note that they represent the current knowledge of the team and are subject to adjustments as they evolve. new information emerges. Flexibility is key to dealing with the uncertainty inherent in software development.


The purpose of estimates is not to obtain exact numbers, but to promote productive discussions within the team, the focus is on knowledge exchange and collective understanding of the tasks to be performed.


However, even keeping in mind that estimates are predictions, we need to keep in mind that imposing estimates or using them as rigid deadlines can create unnecessary pressure and harm people and the agile process. Estimates should be used as a tool to understand the work even if we use them as deadlines, but not as a metric to control the team, that is, if they are imposed they will become irrational.


Advantages of Agile Estimates:


Agile estimates are based on collaboration, communication and continuous adaptation, they aim to provide a collective understanding of tasks, rather than just producing accurate numbers.


By allowing the creation of a collaborative environment, where everyone participates in the discussion, it is possible to make more informed decisions about the scope, thus contributing to the planning and prioritization of activities.


Although agile estimates are not absolute guarantees, they help to reduce uncertainties and increase predictability throughout the project, thus helping us with greater predictability. Predictability that allows us to carry out continuous improvement, will allow us to analyze the estimates and the actual performance of the project, where the team will be able to identify areas for improvement and implement corrective actions for future projects.


A better management of activities is also possible, because with reliable estimates, it is possible to optimize the distribution of demands, thus avoiding overloads or idleness. That is, it is possible to assess the capacity of the teams that will be able to analyze their capacity and productivity over time, in addition to the learning from previous estimates that will provide a basis for improvement for future estimates.


Another advantage of agile estimates is the possibility of continuous feedback, that is, the team gets valuable feedback on the efficiency of the work and possible adjustments of their strategies as needed.


Tips to improve agile estimating:

  1. Engage the Team: Collaboration is Key to Accurate Agile Estimating Include the entire team in the estimating process to gain a holistic view of tasks and potential roadblocks.

  2. Learn from experience: Use historical data from past projects to improve future estimates - continuous learning is essential for team growth.

  3. Re-evaluate regularly: Estimates are not static, they should be re-evaluated and updated as new information and design changes arise.

  4. Use agile estimation techniques: They can improve the accuracy and reliability of estimates.


Examples of estimates:

  • Effort x Complexity Matrix

The importance of making an estimate considering the complexity and effort of the activities is fundamental for the effective planning and management of agile projects. When agile teams make careful estimates, taking into account the nature of the tasks, they reap a number of key benefits:

  1. Effective Planning: Estimating the complexity and effort of activities helps the team create a realistic plan for project delivery. They can identify the most complex tasks and/or with the greatest effort, allowing the creation of strategies to face them.

  2. Even distribution of tasks: By considering complexity and effort, the team can distribute activities more evenly among members. This prevents some members from being overwhelmed with complex tasks, while others have little challenge.

  3. Efficient prioritization: Estimating complexity and effort helps the team prioritize tasks based on their importance and difficulty. This enables higher value or more complex work to be treated with due care.

  4. Risk anticipation: By considering the complexity of activities, the team can identify potential risks and prepare to deal with them. This increases the likelihood that the project will be successful as they are aware of potential challenges.

  5. More realistic estimates: Taking into account complexity and effort makes estimates more realistic and reliable. This helps the team set more accurate expectations for the client and project stakeholders.

  6. Transparency and communication: Estimates based on complexity and effort facilitate communication with stakeholders. This makes the process more transparent and helps in understanding the decisions made by the team.

I particularly make use of material passed on by a longtime friend named Robervan Hohenfeld (linkedin: https://www.linkedin.com/in/robervanhohenfeld/ ), also Agile Coach. After a long conversation on the subject he introduced me to this matrix:


Effort x Complexity Matrix
Source: Marcelo L. Barros: Effort and Complexity: when size really matters

Since then I make a lot of use of it and indicate its use to the teams, because I can guide people about the clarity of the information of the activities. It is possible to help people, especially for those activities that are unknown to everyone, about what to put on the agenda in discussions.


Explaining more about the matrix:


We have the Effort column, with a number that tells us in relative time how much the person will take to complete it. The other column represents Complexity, which presents us with a relative numbering with some questions to be taken into account during the team's discussion.


After determining the values of each column, just multiply to find the final value and define in which position it will be in the matrix. Since the green area (located to the left of the matrix) represents relatively "quick" activities, the yellow area (located in the middle of the matrix) already represents activities that need attention because they present some aspect of risk.


The red area (located to the right of the matrix) represents activities with a high degree of risk or even large demands that can be "broken" by the team into smaller activities.


In summary, performing estimates considering the complexity and effort of activities is one that helps the team to make more planned decisions, anticipate possible challenges and mitigate some risks.


  • Planning Poker:

The practice of Planning Poker is one of the most popular techniques for agile estimation in software development projects. It was created by James Grenning and popularized by Mike Cohn in his book "Agile Estimating and Planning.".


Planning Poker is a collaborative and interactive activity performed by the agile team to estimate the effort required to complete the product backlog tasks. This practice is essential and has several significant advantages for the success of the project:

  1. Team Collaboration and Engagement: The entire team is brought together to actively participate in estimating, each member has the opportunity to express their opinion and knowledge about the tasks. This promotes a sense of belonging, engagement and responsibility, as each member has an active voice in the process.

  2. Shared understanding of tasks: By discussing and sharing different perspectives during Planning Poker, the team develops a shared understanding of tasks and their requirements. This avoids ambiguities and improves the definition of user stories and their respective estimates.

  3. Harnessing Collective Wisdom: Planning Poker is based on the idea that the collective wisdom of the team is more accurate than individual opinion. By combining the insights of different team members, estimates become more realistic and reliable.

  4. Single perspective and pressure reduction: Planning Poker practice helps to avoid individual bias and pressure to conform to the opinions of other team members. Anonymous voting on estimates prevents outside influences and promotes objectivity.

  5. Adaptation to change: Allows estimates to be updated throughout the project as new information is acquired and understanding of tasks evolves. This aligns perfectly with the agile principle of responding to change rather than following a rigid plan.

  6. Focus on the conversation, not the numbers: In Planning Poker, the main focus is on discussions and shared understanding of tasks, not on getting accurate estimates. Number cards are just a tool to start meaningful conversations about the complexities of tasks.

  7. Fast Estimates: Using cards with numeric values in Planning Poker (eg 1, 2, 3, 5, 8, 13) allows the team to make estimates quickly. Practice avoids endless discussions and helps keep an efficient pace during the estimation process.

In the last two topics I mentioned the use of cards with a scale of numbers, a scale that has the famous Fibonacci sequence as a parameter, where each number corresponds to the sum of the two previous numbers.


When a team I follow uses the practice of Planning Poker with the Fibonacci scale, I usually show the image below to help the group talk while defining a value.

Fibonacci scale in practice
Source: Julee Everett, Fibonacci: A Beginner's Guide to Relative Sizing

Planning Poker is an invaluable practice for fostering collaboration, shared understanding, using collective wisdom, and reducing the pull of a single perspective, allowing the team to achieve estimates with a high degree of alignment. In addition, the agility of the practice allows estimates to be adapted as the project progresses.


  • Estimate on T-Shirt

Agile estimation "T-Shirt Sizes" is a simple and effective technique used to estimate the relative size of tasks or user stories in a software development project. In this technique, rather than assigning specific numerical values, the team uses shirt sizes (S, M, L, XL, etc.) to indicate the level of complexity or effort required to complete a task. The importance of this practice lies in several benefits:

  1. Simplicity and ease of understanding: The "T-Shirt Sizes" approach is easy to understand, even for teams with different levels of experience. T-shirt sizes are clear and intuitive visual representations that facilitate communication between team members.

  2. Rapid estimation: This technique allows the team to make quick and focused estimates on the overall understanding of the task's complexity, avoiding the need to spend time detailing specific numerical values.

  3. Increased Collaboration: Estimating T-Shirt Sizes promotes collaborative discussions among team members, leading to a shared understanding of tasks and their implications.

  4. Avoid excessive precision: In agile projects, extremely precise estimates are often impractical and can lead to more complexity than benefit. The T-Shirt Sizes technique allows for a more flexible and adaptable approach.

  5. Adapting to Change: Estimating T-Shirt Sizes is highly suitable for agile environments where project priorities and requirements can change frequently. The team can quickly reassess and adjust estimates as new information emerges.

  6. Does not reinforce wrong assumptions: Avoids the pitfall of attributing a false degree of precision to estimates, allowing the team to remain open to continuous adjustments and improvements.

  7. Relative Estimates: The T-Shirt Sizes technique emphasizes the relative nature of estimates, allowing the team to prioritize and plan work according to the relative complexity of tasks.

  8. Focus on size differences: The main concern is identifying the relative size difference between tasks, which is more important than getting exact numerical values.

As mentioned earlier, this practice helps us to identify the relative size of the activities, but for that I recommend first aligning with the people on the team to establish some "rules of thumb" such as, for example:

Estimating with T-Shirt
Source: Author himself

In the image above, the understanding generated was that for the size P they would represent the demands with a time relative to one day, for the size M the relative time would be for 5 days and for the relative size of the demands classified as G they would be 10 days. Therefore, the estimate for the set of the example in the figure above would be 16 days, taking into account that each story would have a responsible person.


In short, by using this technique, teams can effectively prioritize work and easily adapt to project changes, making their journey smoother and more successful.


Agile estimates are powerful tools for planning and executing software development projects. By accepting that estimates are predictions, not fixed commitments, and by involving everyone on the team with their respective perspectives in creating them, agile teams can make more assertive decisions and maximize their chances of success.


It is important to understand that estimates are not exact numbers, as they change according to new information that arises, but tools to foster meaningful dialogue within the team. Flexibility, collaboration and understanding are essential to achieve success in an agile environment and maximize the value delivered to the customer.


With the right combination of knowledge and practice, your team will be ready to face challenges and thrive in the agile world, and always remember that estimates are not commitments , but predictions that help you make informed decisions.


AndSo, dive right into the art of agile estimating and take your projects to the next level!Bibliographical References

  1. BARROS, Marcelo L., Effort and Complexity: when size really matters, 18 feb. 2018. Available at: https://agilemomentum.wordpress.com/2018/02/18/effort-and-complexity-when-size-really-importa/ . Accessed on: 08/01/2023.

  2. EVERETT, Julee Everett, Fibonacci: A Beginner's Guide to Relative Sizing, 19 Oct. 2021. Available at: https://www.scrum.org/resources/blog/practical-fibonacci-beginners-guide-relative-sizing . Accessed on: 06/01/2023.

  3. COHN, Mike. Agile estimating and planning. 1 November 2005: Prentice Hall PTR, 11/1/2005. 330 p. ISBN 9780131479418.


Revision: Fernanda Baqueiro

8 views0 comments

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Post: Blog2_Post
bottom of page