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.