top of page
Search

Estimation is Evil!

Updated: Sep 15, 2024


Estimation is evil

I know that estimating has been drilled into you by colleagues, certification classes, books, it's almost a religion for some.


But the truth is we are very bad at estimating, don't be fooled by people who claim it's a skill that you need to learn, that is rubbish, it is not.


It is a total waste of your time but worse still, when you provide an estimate, you're held to it and when you inevitably don't deliver on the estimate then guess whose fault it is, yep that's right.


But the good news is there a much better way of handling the situation when you asked ‘when will it be done?’ and that is by using Monte Carlo Simulation, so let's have a chat about it.


Now before we dive in let's get this out of the way first;


The most important thing we need to do is deliver valuable products and services to our customers regularly, that give them positive outcomes, and we need to do this by working closely with them

If we aren't doing this then in the words of the great Metallica ‘Nothing Else Matters’.


Also, not estimating doesn't mean that we don't discuss the work, break it down, discover dependencies and constraints, of course we still need to do this.


So that being said how can Monte Carlo Simulation help us over regular estimation techniques like story points and velocity?


Well story points are simply guesses, okay educated guesses, but in 2024 guesses are simply not acceptable, really when have they ever been acceptable?


We’re in a data driven world so start using your data to actually help you.


Story points have been used for years to estimate in Scrum but they have never been part of Scrum, that's right never.


They came from eXtreme Programming and the guy who created them Ron Jeffries officially apologised for them back in 2019 on X formerly Twitter. In fact he went even further to say that estimation itself is evil.



But the gist of it is that we get polarised by the date and overly committed to the estimation process, trying to achieve the estimate we provided, the fact is we're basically forced to provide an estimate by leadership and pounded by them to hit the estimate.


Now leadership always seem to think that that the estimate provided is most likely overestimated, when in fact the opposite is almost always true.


Now think about it, when have you ever actually hit an estimate?


And so more and more pressure is applied resulting in a highly stressful and very often toxic environment. Ultimately this leads to long working days particularly towards the delivery date and almost always ends up in weekend working.


Working in an agile way is supposed to be sustainable, week in week, out estimation I would say, is anti-agile, yes, anti-agile!

Okay so given the a response to the question of ‘when will it be done?’ of, ‘it will be done when it's done because we're agile!’ isn't acceptable, what is the answer?


Well the answer is to provide leadership with a clear data driven forecast based on historical data and a percentage of certainty. No guesses, no wasted time, just data driven decision- making based on your empirical data.


So what is Monte Carlo Simulation?


Well Monte Carlo simulation is a mathematical technique that predicts possible outcomes of an uncertain event, now doesn't that sound familiar? An uncertain event just like the complex problems we all deal with on a daily basis, particularly with software development.


Computer programs use this method to analyse past data and predict a range of future outcomes based on a choice of action.


So why is it important?


Well Monte Carlo Simulation is a probabilistic model that can include an element of uncertainty or randomness in its prediction. Perfect! We deal with uncertainty daily.


When you use a probabilistic model to simulate an outcome you'll get different results each time, for example, the distance between your home and office is fixed, however a probabilistic simulation might predict different travel times by considering different factors such as congestion, bad weather, vehicle breakdowns.


Just like us in software development, when we're constantly hit with constraints, dependencies and blockers.


So what are the benefits?


Monte Carlo Simulation provides multiple possible outcomes and the probability of each from a large pool of random data samples, it offers a clearer picture than a deterministic forecast.


For instance, forecasting financial risk requires analysing dozens or hundreds of risk factors. Financial analysts use the Monte Carlo Simulation to produce the probability of every possible outcome.


So forecasting with Monte Carlo will enable you to answer the question of ‘when will it be done?’ quite easily, yep it really is that easy.


All you need is a bit of historical data that reflects your current ways of working, 3 Sprints worth of data if you're using Scrum or 2 months if you're using Kanban that will get you up and running, that is is all you need.


Using Monte Carlo Simulation you can forecast on what date you'll complete, for example, 100 tasks, stories or even epics and because you'll use a percentage of certainty, or percentile, it doesn't matter that your task, stories and epics are of different sizes and complexity. Yes! You heard that right, and it's true.


So, for example, you'll be able to say based on your historical performance we can complete 100 stories in 7 weeks with an 80% probability of it actually happening.


Now the percentage of probability is up to you and your stakeholders, you decide what works best for you and your context, you decide the level of risk you want to run.


This also means is you can provide T-shirt sized forecasts of how long it will take to complete small, medium, and large siezed pieces of work or projects.


If you're able to look back at previous work done and say that small projects are 100 stories, medium projects are 200 stories and large projects are 500 stories, then you've got great data to provide leadership on how long it will take to complete each.


If not, over time, you’ll gather this data and be able to provide it to them then.


This data, this information, is crucial for leadership, it helps them understand whether something is worth doing or not, cost versus return.


Using Monte Carlo Simulation you can also forecast how many tasks, stories, or even epics can be completed between two given dates, which can be very useful for Sprint Planning if you're doing Scrum.


This is an easy way to provide far more meaningful data to leadership, that they will actually understand and value.


Can you really tell me that leadership have ever truly understood story points? Has anyone?! So stop clinging to the past and get into the present day.


Story points and velocity tracked by burndown charts are just alchemy and causes frustration anxiety and stress as well as causing a lack of trust between teams and leadership.


In my experience Monte Carlo also provides far more valuable communication and relationship building with management, it's a win-win situation.


So then how do you do it?


Well it's pretty easy, the only data you need is your throughput, so for example, how many stories were completed each day. Sometimes there’ll be none completed and that is fine.




 
 
 

Comments


©2024 by SPA Agile Consulting Ltd.

bottom of page