Have you ever faced situations which demanded from you fast and reliable answers regarding, for example, the predicted date some tasks can be accomplished or even the forecasted quantity of tasks that should be finished until date X? If your answer is “yes”, then you probably could benefit from using a Monte Carlo Simulation in order to give data-driven feedback to your clients, project stakeholders and team members.
Before we dive into what Monte Carlo Simulation is really about and how to use it in practice, let’s get a quick understanding of what simulation means.
In a brief view, a simulation can be understood as the imitation of the operation of a real-world process over time. One important aspect related to simulations is that they require the use of models which in turn represent the major features of the process being considered.
Simulations are often used when the real process cannot completely be involved due to many reasons or because the real process is not available in its entirety (i.e. real variables´ values and outputs) at the moment we are investigating the process.
Now you might be wondering what Monte Carlo simulation is? That’s what we take a look at in the next section.
What is Monte Carlo Simulation?
Monte Carlo simulation is a statistical technique based on computational algorithms that forecasts the probability of certain scenarios, focusing on the continuous repetition of random sampling to define possible process outcomes. In other words, Monte Carlo simulation takes into consideration the probability of variable outcomes that are difficult to be predicted due to the interference from input random variables. Theoretically, Monte Carlo simulation can be used to solve problems presenting a probabilistic background.
Monte Carlo simulation finds application in several fields of knowledge, as for example, physical sciences, engineering, applied statistics, finance and business, law, climate change as well as project management and many others. This simulation is particularly advantageous for processes with a high amount of inputs presenting significant uncertainty.
Let’s take a look at an example in order to better understand the concept behind the Monte Carlo simulation. For that, we firstly consider the simple model representation of a process, as shown in the figure below.
Basically, a process consists of a series of stages designed to produce a product and/or a service as required by the customer.
A process is mainly composed of three parts: Inputs (x), process steps f(x) and output (y). In our example shown on the above figure, we have five process inputs (x1, x2, x3, x4 and x5), one process output (y) and three process steps (Step-1, Step-2 and Step-3).
The process inputs can be understood as the resources we put into the process aiming at achieving a specific output (y), whereas the process output (y) can represent, for example, the final product delivered to the customer.
Any change in the inputs of the process causes variation in the output (y). Therefore y= f(x), in other words, the process output (y) is a function of the process inputs (x).
Generally speaking, if we keep the process inputs always the same, the process output is also expected to be the same (i.e., small output variations) and can be evaluated straightforwardly. Put in other words, equal initial inputs will produce a similar final result, where the final result can be a product or service.
Let’s say now that each process inputs vary in a defined range of probable values. Thus, in this case, it is reasonable to expect that the process output will vary as well. Additionally, as long as we add more and more varying inputs to the process, it will get complex to evaluate the process output. For such complex processes you should consider using the Monte Carlo simulation in order to help you predict the process output.
How to Use Monte Carlo Simulation?
In the field of project management and Lean Agile methodologies, project managers often use this simulation to assess, for example, project duration risk and sometimes also budget issues.
From now on, we will exemplify the Monte Carlo simulation by considering project duration prediction.
Let’s suppose that the process steps shown in the figure above represent different tasks of a project. We start by identifying each of the three tasks (i.e. task-1, task-2 and task-3). Next, it is important to estimate the range of possible durations for each task and their range of probabilities. Therefore, for each task, we need to state a probability distribution function (e.g. normal distribution, etc.), informing the range of possible programmed variations from the main estimate.
The Monte Carlo simulation will use the whole range of possible tasks durations and will give the results in the form of a histogram.
The histogram shown above allows us to visualize the data distribution, as well as data location (through the average task duration) and data variation (also known as standard deviation). By considering that the data duration of the tasks follows a statistical normal distribution, it is possible to calculate the probability of occurrence for each particular value of task duration.
So far in our example, the Monte Carlo simulation has been based on the estimates that we provided earlier and on the assumption that these estimates are accurate. If we occasionally made a mistake in the estimation of the tasks’ durations, the whole simulation would be negatively influenced.
Therefore, it is recommended to base Monte Carlo simulations on real data from the process. A possible alternative to accomplish that is to measure Kanban metrics throughout the whole process. Among the main Kanban metrics that can be inferred from the process are, for example: a) lead time, b) cycle time, c) throughput and d) task age. Such Kanban metrics allow data-driven predictions to be based on reality and evaluated from the process performance data which in turn can contribute to continuous process improvements.