When we try to estimate a project completion time, often the temptation is to use a best guess completion time for each task, find the critical path, and add up the times. This method lacks information about the project schedule risk, and if done honestly, often results in a finish time later than the due date. In fact, the project schedule risk hidden in this type of estimate can be extremely large.
Consider the simple project below. It has five tasks that are all expected to take the same amount of time to complete. Our best estimate is each task will take 5 days to complete. Therefore, we expect to complete the project in 25 days.
Let's approach the problem from a different angle. Instead of using a best estimate (or most likely) for each task, let's assume they have a range of times that follow a probability distribution.
The PERT (or Beta-PERT) distribution is often used to model task times, so we will use it for our project. To specify the distribution we need to estimate the minimum task time, most likely task time, and maximum task time.
Initially, we will assume that each task's minimum time is 3 days, the most likely time is 5 days, and the maximum time is 7 days. The probability density function for task time is shown below.
Using Monte Carlo simulation we can sample a time for each task from the PERT distribution, and add up the times to get a project completion time. Repeating this for 20,000 iterations results in the following output of completion time.
Since each task has an equal chance of being completed early or late, we see that the mean project completion time is 24.99 days as we would expect. Also note that the probability of completing the project in 25 days or less is 50.11%.
So if we were totally honest and earlier we gave a best estimate for each task, we would be late about 50% of the time! People instinctively know this, and we use the time tested technique called "padding" the completion time. This highly technical term is also known as "fudging", "adjusting", or "pulling it out of our ass".
This isn't to say that padding estimates is dishonest or wrong. It's merely a recognition of inherent project schedule risk, and trying to account for that risk by adding time to our estimates. The question is, how much risk is present? That's where simulation comes into play.
Let's alter our project a little bit. Now let's say that the minimum task time is 3 days, most likely is 5 days, and the maximum is 8 days. The probability density is shown below.
A positively skewed task time is common. The difference between finishing late and expected time is often greater than the difference between finishing early and expected time. Delays can theoretically go on forever, while finishing early is limited to zero.
Again, simulating this situation for 20,000 iterations results in the following output.
Because of the skewed task times, the mean time to completion has risen to 25.8 days. Now the probability of completing the project in 25 days or less is only 36.1%. Remember, we didn't change our most likely estimate; just increased our worst case estimate.
A more pragmatic approach is to pick a confidence level, such as 90% and state completion time in terms of that. In this case we could say there is a 90% chance of completing the project in 28.55 days.
This simple example illustrates how we can use simulation to quantify project schedule risk. Imagine a more complex project, and how much risk could be hidden among all those best estimates.