Space Sign

What is the possibility

One of the most often used saying in agile is that yesterday’s weather is a good predictor of tomorrow’s performance. I have lived in Louisiana where if you blink the weather will change. I currently live near Cleveland (and I like it), and in 2014 the temperature went from 39 F to -11 F in less than 24 hours. I went running on both days; they were very different. Even if I grant that yesterday can be an important indicator of performance tomorrow, a sample size of one does not capture the degree of variability that might be present in the environment. Why does anyone care about variability in performance? As suggested in Agile Metrics: An Interlude, leaders have not stopped asking what they can get, when they can get it and how much it will cost type questions. Even if they don’t ask all of those questions there will be questions about budgets. These are not evil, unagile people; they are business people that need to plan things like cash flows and making payroll. Answering when they can deliver product to the market or when a change to the HR portal will be made are important questions. Just relying on yesterday’s weather is not always sufficient and there is no Oracle of Delphi that provides a single, unambiguous answer to any of those questions. The answers are always a range. In most circumstances, each possible outcome is more or less probable than the next. Uncertainty makes it difficult to have a conversation about when, what and how much. Monte Carlo analysis provides a way to handle answering questions with significant uncertainty in the inputs that influence the outcome of the work so you can have the difficult when, what and how much type conversations.


Example of a Monte Carlo Probability Distribution Based on Throughput

If a team is using average velocity to predict when they will ship, they are not addressing the natural variability in their performance. Variability is caused by a lot of valid reasons including story size, learning, weather and a myriad of other reasons. Variability generates a range of possible performances. Monte Carlo analysis generates that range by running a large number of simulations. Note math and large numbers of simulations should be warning that you will need a tool. EXCEL or any modern spreadsheet software is useful to generate a Monte Carlo analysis with a little programming skill.

In software development and maintenance, Monte Carlo analyses can range from fairly straightforward based on single random variable algorithms, such as throughput, velocity, productivity or quality, or very intricate models that leverage variables including risks and other external variables. Simple approaches often serve to help answer the questions of what, when, and how much without having to employ professional statisticians.


Next:  The Assumptions Made When Using Monte Carlo