Rethinking Software Estimation: Embrace Probabilistic Forecasting for Agile Success

TL;DR

Traditional software estimation is often inaccurate and burdens teams, so shifting to probabilistic forecasting based on historical data provides more realistic delivery predictions and reduces pressure. Breaking work into smaller pieces and aiming for high confidence levels, such as 85 percent, helps teams adapt to uncertainty and improve outcomes. Development managers should move away from precise estimates and instead use probability-based forecasts to guide planning and decision-making.

5 December 2024
Written by Martin Hinshelwood
3 minute read
Comments
Subscribe

One of the most significant challenges I encounter in the realm of software projects is the perennial struggle with estimation. It’s a topic that seems to generate endless debate and confusion. Many organisations feel compelled to engage in some form of estimation, whether that’s through absolute estimation, which often leads to errors, or by employing relative estimation tools. The reality, however, is that we often feel we need these estimates to chart our course forward. But do we really?

In my experience, what we truly need is the ability to forecast into the future with a degree of probability. When it comes to software delivery, where variance is high and uncertainty reigns, achieving accuracy in our predictions is nearly impossible. If you find yourself in a situation where more than 50% of your project is unknown, you can forget about precise predictions. Instead, we should focus on probabilistic forecasting.

So, what does this look like in practice? Rather than attempting to estimate individual items in our backlog, we can utilise forecasting simulation tools to project our capabilities based on historical data. For instance, we might say, “In the next 30 days, we can deliver 50 items with an 85% likelihood.” This approach allows for the inherent unpredictability of software development while freeing our teams from the burden of extensive estimation processes.

Here are a few key takeaways from this approach:

  • Embrace Probabilities: Instead of fixating on exact numbers, focus on probabilities. This shift in mindset can alleviate the pressure on teams and foster a more realistic outlook on project timelines.

  • Reduce Batch Size: While we may not be estimating individual items, it’s still crucial for teams to analyse their work and break it down into smaller, manageable chunks. This practice not only aids in understanding the deliverables but also enhances our ability to execute effectively.

  • Build Confidence: In this new paradigm, we may not have traditional estimates, but we can still cultivate confidence in our forecasts. I often encourage teams to aim for an 85% confidence level. Given that around 70% of startups fail, this benchmark provides a pragmatic approach to assessing our likelihood of success.

  • Assess Your Confidence Level: Ask yourself, “What’s my confidence level in delivering this project?” As long as it exceeds 70%, you’re likely on solid ground. This perspective allows for a more flexible and adaptive approach to project management.

In conclusion, while the traditional methods of estimation may no longer serve us well in the fast-paced world of software development, we can still navigate the complexities of our projects with confidence. By embracing probabilistic forecasting and focusing on understanding our work, we can create a more agile and responsive environment that ultimately leads to better outcomes. Remember, it’s not about having all the answers; it’s about having a clear path forward, even amidst uncertainty.

Smart Classifications

Each classification [Concepts, Categories, & Tags] was assigned using AI-powered semantic analysis and scored across relevance, depth, and alignment. Final decisions? Still human. Always traceable. Hover to see how it applies.

Comments
Subscribe

What to read next

Video Product Development Technical Leadership

Navigating the Unpredictability of Software Development: Embrace Agile for Success

Explores how Agile principles, technical leadership, and engineering excellence help teams manage unpredictability, adapt to change, and …

Watch video
Video Product Development

Ditch the Agile Bandit Mentality: How to Prioritise Value Over Estimates for Team Success

Explores why focusing on value delivery and psychological safety leads to better Agile team outcomes than fixating on estimates, output …

Watch video
Video Scrum Product Development

How does a Scrum team estimate what can be delivered in a Sprint?

Scrum teams estimate Sprint deliverables by assessing the size and complexity of backlog items, focusing on shared understanding rather than …

Watch video
Video Product Development Scrum

Unlocking Agile Success: How Empirical Models Transform Project Outcomes

Explains how empirical Agile models improve project outcomes by increasing visibility, enabling change, reducing risk, and delivering value …

Watch video
Video Product Development

Navigating Complexity: Why Agile Practices Are Essential for Modern Product Development

Explains how agile practices help teams manage complexity, adapt to change, and deliver value faster in modern product development, compared …

Watch video
Article Scrum Product Management

How do you make a good Forecast?

Explains how to create reliable forecasts in agile projects by using flow metrics like cycle time and throughput, and shifting from …

Read article