Critical Chain Scheduling (CCS)



When it comes to a project, it has a lower limit of possible lead time. This basically determines the cost associated with the project.

The critical chain of a project is the dependent tasks that define the lower limit of possible lead time. Therefore, it is safe to assume that the critical chain is made of sequenced dependent tasks. In critical chain scheduling (CCS), these dependent tasks are scheduled in the most effective and beneficial way.

When it comes to critical chain scheduling, dependencies are used to determine the critical chain. In this case, two types of dependencies are used; hands-off dependencies and resource dependencies.

Hands-off Dependencies:

This simply means that output of one task is the input for another. Therefore, the latter task cannot be started until the first task is completed.

Resource Dependencies:

In this case, one task is utilizing a resource, so the other task cannot be started until the first task is completed and the resource is freed.

In simple, using traditional project management terminology, the critical chain can be explained as the "resource constrained critical path".

CCS and Project Management

Critical chain scheduling appreciates the "impact of variation" of a project. Usually, in project management, the impact of variation is found using statistical models such as PERT or Mote Carlo analysis. Critical chain scheduling does complement the impact of variance with a concept called the "buffer".

We will discuss more about the buffer later. The buffer basically protects the critical chain from variations in other non-critical chains making sure critical chain the indeed critical.

What is a Buffer?

Critical Chain Scheduling

Buffer is one of the most interesting concepts in critical chain scheduling. The buffers are constructed and applied to a project in order to make sure the success of the project. The buffer protects the due delivery dates from variations to the critical chain.

With a "feeding buffer" of a proper size, the dependent tasks in the critical chain that is dependent on the output of the non-critical chain tasks have a great opportunity to start the task as soon as its predecessor dependent task in the critical chain is finished. Therefore, with the feeding buffer, the dependent tasks in the critical chain do not have to wait for non-critical chain tasks to complete.

This makes sure that the critical chain moves faster towards the project completion.

When there are multiple projects running in an organization, critical chain scheduling employs something called "capacity buffers." These buffers are used to isolate key resource performance variances in one project impacting another project.

Resource buffers are the other type of buffer employed for projects in order to manage the impact by the resources to the project progress.

Critical Chain Vs Critical Path

Usually, the critical path goes from start of the project to the end of the project. Instead, the critical chain ends at the start of the buffer assigned to the project. This buffer is called "project buffer." This is the fundamental difference between the critical path and the critical chain. When it comes to critical path, activity sequencing is performed. But with critical chain, critical chain scheduling is performed.

When it comes to the project schedule, the critical path is more subjective towards the milestones and deadlines. In critical path, not much of emphasis is given to resource utilization. Therefore, many experts believe that the critical path is what you get before you level the resources of the project. One other reason for this is, in critical path, hands-off dependencies are given the precedence.

When it comes to critical chain, it is more defined as a resource-levelled set of project tasks.

Software for Critical Chain Scheduling:

Same as for critical path methodology, there is software for critical chain scheduling. This software can be categorized into "standalone" and "client-server" categories. This software supports multi-project environments by default. Therefore, this software is useful when it comes to managing a large project portfolio of a large organization.


Critical chain scheduling is a methodology focused on resource-levelling. Although dependent tasks mostly define the project timelines, the resource utilization plays a key role. A methodology such as critical path may be highly successful in environments, where there is no resource shortage. But in reality, this is not the case.

Projects run with limited resources and resource-levelling is a critical factor when it comes to the practicality. Therefore, critical chain scheduling gives a better answer for resource intensive projects to manage their deliveries.