Without thinking too hard, what is the most likely overall duration of 3 tasks, performed in parallel, each with an estimated duration from 1 to 3 days with a most likely time of 2 days?
I'll share the answer in a moment, but this is easily simulated in DartCannon. Starting with an empty new project, we'll quickly add 3 tasks:
And look at the result:
There is less than a 12.8% chance of being less than 2 days.
Why This Happens
When tasks are performed in parallel, the project is always waiting on the longest running task to complete. The more tasks running in parallel, the more likely that at least one of them is running long.
Perhaps you knew that parallel tasks add risk, but I'd bet that you probably wouldn't have guessed just how extreme the effect would be.
Mathematical Proof
For this simple case, it is relatively easy to make an exact calculation of the
likelihood the entire set finishes in under the half-way point. If each task
has a 50% chance, the chance for 3 is .5 x .5 x .5
or 12.5% - exactly what
our simulation showed. Generalizing this for a few tasks gives the following:
Number | Chance < 50% |
---|---|
1 | 50.0% |
2 | 25.0% |
3 | 12.5% |
4 | 6.3% |
5 | 3.1% |
This is fairly extreme and highlights the problem with relying on intuition. In this trivial example we can easily do the math to see the problem and with some experience, would know what to look for. The real problem comes in more complicated projects where risks may be hidden in a more complex network - these are the times where simulations are essential to understand potential outcomes and risks.
Tips & Takeaways
- Always simulate your projects - Don't just rely on intuition - it is too easy to overlook a gotchya or corner case that adds a lot of risk.
- Avoid choke points where many tasks converge - Funnelling work into points that depend on everything that comes before may seem "clean", but it actually results in increased risk where you have to wait on the longest task.
- Parallelizing is still a timesaver - If you can run multiple tasks in parallel, you still should! Just be aware of how it will really effect the scehdule.
It is a common misconception that adding more tasks is 'free' from a schedule perspective as long as they are perfomed in parallel. What we've shown here directly is that the benefit may not be a great as you'd think depending on how the project is structured.
Photo by Victor Sánchez Berruezo on Unsplash