FAQ - LetPeopleWork/MonteCarloCSV GitHub Wiki
You might have some questions - and we might have the answers. If not, feel free to reach out to us via the Discussions.
How does a Monte Carlo Simulation work?
A forecast using Monte Carlo Simulation will simulate a period using a historical Throughput. You can use it to forecast how many items you can manage to close in a specific amount of time, or how long it will take to get x items done.
Be aware that this is not magic, and you assume that "your future looks like your past". Meaning that it highly depends on the input in the form of Throughput we feed it with.
An in-depth explanation of how Monte Carlo Simulations work can be found on Medium.
More Monte Carlo related posts are linked in Blog Posts.
What is Throughput?
The only thing we need to run a Monte Carlo Simulation is to have data on the team's Throughput.
Throughput: The number of work items finished per unit of time. Note the measurement of throughput is the exact count of work items. - The Kanban Guide
Independent of the effort or time it took to complete, we simply count the number of items that were done in a specific amount of time. MonteCarloCSV works with Throughput based on days. Story Points, Velocity, or any other form of estimation is not relevant to the Monte Carlo Simulation.
What about Cycle Time or other Flow Metrics? Do they not matter?
You might be thinking, wait a minute, what about the other measures of flow? Are WIP, Cycle Time, and Work Item Age completely irrelevant for Monte Carlo Simulations?
The short answer is yes. You don't need them to run a Monte Carlo Simulation.
The longer explanation is that, while you don't need them for the Monte Carlo Simulation, they still are an indicator of how "good" your forecast will be. Controlling and taking action on those measures, helps us get more predictable Throughput. And the more predictable our Throughput is, the "better" we can forecast.
For some more in-depth explanation and also an interactive way to experience the impact of stable/unstable Throughput, I recommend checking the blog post from the question above.
How much "History" do I need?
It might surprise you, but you don't need a lot of history. If you have 2 weeks' worth of data, that should be enough to get started. We forecast a "future that looks like our past". If your team is working in this setup for a longer time, you might also be able to use more data. However, more is not necessarily better. Were your processes the same 6 months ago? Was there no other significant change since then? If so, you might not want to use such old data for your forecasts.
In our experience, using 30 or 90 days is usually the most accurate. That said, you might want to run various forecasts with different settings and also continuously inspect how they performed to find what works best in your context.
Do all items have to be the same size?
No, items don't need to be the same size. As the forecast is based on the Throughput, it's irrelevant how "big" any item is, we just measure how many items we managed to close. That said, to be more predictable, it will help if you do the following two things:
1. Before you Start
Try to right-size your items. This means that you look at how long most of your items take (for example using the 85th percentile of your Cycle Time) and if the team feels this item will take longer, you break it down into smaller parts.
2. Once you Started
Don't let items unnecessarily age. Once you start them, you focus on them till they are closed. Ideally, you inspect the work item age of each item for this on a regular base and take action once the items near the agreed-upon time (see #1 above).
Following these two rules will help you and your team keep the flow of items through your system, which will result in a more predictable Throughput.
I already have items in progress, can I still run the Monte Carlo Simulation?
Yes, the simulation does not care about what you currently have in progress. It will simply tell you what it expects how much you'll manage/when something will be done based on the historical throughput.
What if I don't know yet how many work items I'll need to finish next Quarter? Can I still use Monte Carlo Forecasts for something?
Yes, we often don't know exactly how many items we'll have to finish and things change quickly. Using a so-called "how many" forecast, we can forecast how many items we'll most likely manage to close. This can then be used as input for some planning with your team.
If you work with timeboxes like Sprints in Scrum, or Product Increments in SAFe, this way could help speed up your planning a lot.
Sprint Planning
- Run the MC How Many forecast to find out how many items you'll most likely manage in the next x days (where x is your Sprint length)
- Sprint Planning now becomes about which items you should pick, as you already have a good idea of how many items fit. This makes the Sprint Planning also more meaningful, as the discussion revolves most likely more about the Sprint Goal and what items to pick, instead of the size of those items.
PI Plannings
In my, admittedly little experience, with PI Plannings, a lot of time is spent estimating items before the planning event. We create tables with capacity, vacation plans, and story-point-to-hour calculations, all to be able to plan our next few weeks. With an MC How Many forecast, you can skip all that, run a forecast in a couple of seconds, and then you know what most likely fits.