Critical Chain Project Management

Product development projects, like many other types of projects, often can exceed their planned schedule by 50% to 100%. Often this is attributed to uncertainty or the unforeseen. To compensate for this age-old dilemma, managers and project personnel have learned to compensate by adding additional time to their schedule estimates. Yet even when they do, projects still overrun their schedules.

The Critical Chain Method (CCM) or Critical Chain Project Management (CCPM) is an outgrowth of the Theory of Constraints (TOC) developed by Eliyahu Goldratt to scheduling and managing manufacturing. TOC focuses on identifying and fixing bottlenecks in order to improve the throughput of the overall system. Likewise, Critical Chain focuses on bottlenecks. For example, one pharmaceutical company was experiencing significant delays with drug approvals. After investigation, it found that the bottleneck was statisticians to analyze clinical trial data. The cost of hiring statisticians was more than offset by the revenue from getting products to market sooner.

Using the Critical Chain Method, projects can be completed more quickly and with greater scheduling reliability. The difference between traditional and Critical Chain scheduling is in how uncertainty is managed. In traditional project scheduling, uncertainty is managed by padding task durations, starting work as early as possible, multi-tasking, and focusing on meeting commitment dates. The following bullet points illustrate some of the problems associated with traditional project scheduling:

  • Padding task durations (providing worst-case estimates) is done to ensure a high probability of task completion. The knowledge that there is so much safety time built into tasks results in various time wasting practices, e.g., waiting until the last moment to complete a task. As a result, all the safety time can be wasted at the start of the task so that, if problems are encountered, the task over-runs.
  • Starting work as early as possible, even when not scheduled, is a response to worst-case estimates. When workers give worst-case estimates, they don’t expect to stay busy with just one task – so they multi-task, working on several tasks at once by switching between them. The result is that everything takes a long time to complete and very little completes early.
  • With the focus on meeting commitment dates (start and finish), output from a task completed early will rarely be accepted early by the next person needing this output. So, any effort spent in finishing early will be wasted. Early delivery of one task can’t be used to offset lateness on another. Lateness, however, is always passed on and the lost time can’t be made up without cutting the specifications or increasing resources allocated to subsequent tasks, if possible.

Given the these issues, it’s not surprising that the most projects are always late.

In Critical Chain scheduling, uncertainty is primarily managed by (a) using average task duration estimates; (b) scheduling backwards from the date a project is needed (to ensure work that needs to be done is done, and it is done only when needed); (c) placing aggregate buffers in the project plan to protect the entire project and the key tasks; and (d) using buffer management to control the plan. The key tasks are those on which the ultimate duration of the project depends, also known as the Critical Chain.

The specific steps to identify and manage a Critical Chain schedule are as follows:

  1. Reduce activity duration estimates by 50%. Activity durations are normal estimates, which we know to be high probability and contain excessive safety time. We estimate the 50% probability by cutting these in half. (The protection that is cut from individual tasks is aggregated and strategically inserted as buffers in the project.
  2. Eliminate resource contentions by leveling the project plan. The Critical Chain can then be identified as the longest chain of path and resource dependencies after resolving resource contentions.
  3. Insert a Project Buffer at the end of the project to aggregate Critical Chain contingency time (initially 50% of the critical chain path length)
  4. Protect the Critical Chain from resource unavailability by Resource buffers. Resource buffers are correctly placed to ensure the arrival of Critical Chain resources.
  5. Size and place Feeding Buffers on all paths that feed the Critical Chain. Feeding buffers protect the Critical Chain from accumulation of negative variations, e.g. excessive or lost time, on the feeding chains. This subordinates the other project paths to the Critical Chain.
  6. Start gating tasks as late as possible. Gating tasks are tasks that have no predecessor. This helps prevent multitasking.
  7. Ensure that resources deliver Roadrunner performance. Resources should work as quickly as possible on their activities, and pass their work on as they complete it.
  8. Provide resources with activity durations and estimated start times, not milestones. This encourages resources to pass on their work when done.
  9. Use buffer management to control the plan. Buffers provide information to the project manager, for example, when to plan for recovery and when to take recovery action.

To support Critical Chain Project Management, specialized CCPM software tools are needed to implement this philosophy. These software tools can work in conjunction with popular project management software such as Microsoft Project®.

The Critical Chain approach is perhaps the most important new development in project scheduling in the last 30 years. Used properly, the Critical Chain approach is an extremely powerful means of gaining more predictability, productivity and speed from your project plans. It has been found to be an effective tool to protect projects from uncertainty and the effects of Murphy’s Law.