Schedule Risk Analysis

NOTE: The full chapter is available with the purchase of the license.

It is said that a schedule is often more art than science. Imagine then for a moment that you are looking at a painting. In this painting, there is a married couple sitting at a table and a waiter carrying a bottle of wine. To the side, a boy is chasing a ball. But what happens in reality? Does the waiter bring the the bottle of wine to the table? Or does the boy’s ball roll in front of the waiter and cause him to trip? The painting doesn’t tell us which scenario might occur or what happens when one does – it only serves to get us thinking about the scene and to analyze what it might mean.

The painting is what we call a deterministic schedule. Activities are given single-point estimates – for durations, start dates, logic relationships, etc. – often considered best guesses or most likely scenarios. As more activities are added to the schedule, a web of objects begins to form called a network diagram. But the resulting picture is often inadequate; like the painting, the image we see fails to tell us what happens if one activity takes longer than depicted, or if another one doesn’t occur on time. What we see is only a single possible outcome, a blueprint for how the project might proceed.

In a stochastic schedule, inputs are given ranges (upper limit, lower limit, intermediate values, etc.) as opposed to a single estimate. These inputs are then arranged according to a distribution shape, and the outcome (e.g. activity duration, float value, risk impact, etc.) is sampled from its range for every iteration in the simulation. The goal of the simulation is to run enough iterations until the data converge and the results appear conclusive. This is when you reach the point where you could run another ten thousand iterations and the results would be the same. At this point, it becomes possible to conclude what chances different values have of occurring and to make scheduling decisions based on these probabilities.


[CDATA[ var anchors = document.getElementsByTagName("a"); for (var i=0; i
[CDATA[ var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]