The biggest issue in project management is called the project triangle of time, scope and budget, meaning how to ensure the project will deliver its required scope within a defined time and without overspending allocated budget. Because these three parameters are almost contradictory to each other, most projects are delivered late, or with higher costs or not with expected scope. Often it’s all of those at once.
The typical approach to project management, based on creating a project schedule and subsequent monitoring of task deadlines, was not very successful in tackling this issue in the past few decades.
Anyone ever involved with projects in a large organization would agree that the best description of the situation is “chaos”. Nothing gets completed on time, task priorities are changing constantly (all projects are of highest priority), change request occur frequently, key people are not available when we most need them and project sponsors angrily refuse to postpone the due date once again.
The most common and most simple solution is to include extra time (buffer) in the project plan. This will not make the project sponsor happy as he needs the project done as soon as possible. Furthermore, historical data show that doing that will not prevent the above-mentioned problems and the project will probably be finished late no matter how big buffer we included in the plan.
What are the root causes?
The following causes negatively affect each project individually, but their combination multiplies the resulting effects.
It is human nature to start a task at the very last moment and then increase effort just before the task deadline regardless of how much time we planned originally. Therefore adding extra time does not help getting tasks done on time.
„Work expands so as to fill the time available for its completion.”
Even having a rare team of extraordinary conscientious people that can resist the Student’s syndrome will not prevent wasting of time buffers. Rather than reporting completion before the given deadline, people use the extra time to enhance (usually unnecessary) task outcome and hand it over at given deadline (which includes our time buffer).
By multitasking we mean the attempt to work on multiple tasks simultaneously, or more precisely frequent skipping from one task to another. Apart from being very common phenomena, this is also the worst “murderer” of project deliveries.
Here is a short example. A person is working on 3 project tasks A,B and C having effort 5 days each. The person works on each task 1 day and then “skips” to the next. His work log looks like this ABCABCABCABCABC. Project task A is then finished on day 13, project task B on day 14 and project task C on day 15 (only thanks to not having project task D). If the same person worked on each task continuously, project task A would be finished on day 5 (that is 60 % earlier), project task B would be finished on day 10 (30 % earlier) and project task C on day 15 regardless projects in the pipeline.
Logical dependencies between project tasks and especially project „integration points“ necessarily cause only negative variations (delays) from the plan to be propagated through the project. Imagine a simple project where task C (planned for 5 days) can be started only after both tasks A and B (each planned for 5 days) are finished. The planned duration of the project is 10 days (A or B + C). If completion of task A takes 10 days, the project duration immediately increases to 15, for the entire project will be increased accordingly. But if we manage to complete task B in only 3 days, the project duration will not decrease at all.
What is the solution?
It is evident that increasing buffers or trying to improve precision of project task planning does not work because of the high level of uncertainty inherently bound to every project. But due to the same uncertainty we need to have some level of protective buffers in our project plans. The correct solution is to move implicit (and invisible) buffers to the right places of the project plan and make them visible.
Historical data and the existence of Student’s syndrome prove that the amount of hidden buffer in every task estimate is about 50 % of the total duration. To be able to use it and not waste it, we have to remove it from individual tasks and use it to protect the most important sequence of the project – the critical chain of project tasks. Using this approach we can benefit from the fact that some delays and early finishes will cancel each other and so we only need buffer in length of ½ of the critical chain duration. By doing this we reduce project duration and increase probability of on-time delivery.
To be able to finish project on time, we need to know the actual state of the project (project tasks) and focus on those tasks that cause the biggest delay (in other words we need a unified task priority system). The overall status of a project is determined by level of completion and buffer consumption. To learn the actual status of every project task we need only answer to a simple question:
“How much time is needed to finish this task?”
Every project task, started or not, has assigned priority (green, yellow, red) based on its consumption of project buffer. This mechanism ensures unification of task priorities across whole project portfolio and all management levels. The instructions for project teams are simple: “Finish red tasks as soon as possible, if there are no red tasks finish yellow tasks, if you have only green tasks, pick one you like.”
Especially in multi-project environment where numerous projects and processes share resources, the pressure to start projects as soon as possible is enormous. This pressure is caused by an illusion that the sooner we start a project the sooner we will finish it. In reality “pushing” projects into the organization will cause
• Appearance of seeming bottlenecks
• Total chaos in task priorities
• Introduction of bad multitasking across the board
• Overall reduction in productivity, because all project durations will increase significantly according to level of multitasking of over allocated resources and their setup times (time needed to restart work on a task)
Multi-project orchestration means releasing projects into execution depending on the availability of bottleneck resource following these steps
• We identify most over-allocated resource (bottleneck). Bottleneck determines the volume of projects we are able to process in given time period.
• We select the most profitable project mix to pass through bottleneck and release them into execution based on bottleneck availability
• We create a task schedule for the bottleneck and subordinate all other resources to this schedule
To increase overall capacity of our project organization, we must introduce a contra intuitive principle:
“To finish all projects earlier, we start some of them later.”
By implementing Critical Chain Project Management methodology (CCPM), based on above-described principles, organization can achieve these benefits:
• Increase due-date performance to 95 % (measured against original planned due-date)
• 25% - 50% reduction in project durations
• Significant increase of project throughput, usually by 50 % with same resources
• Significant reduction of changes and additional costs in projects
CCPM can be set-up in matter of weeks to months depending on the average project duration (typically 4 – 6 months). Benefits already start to emerge during implementation phase. Benefits fully materialize after all projects started before CCPM implementation are completed.