Critical Chain Identification

Define the Critical Chain and Resolve Resources Contention

The Critical Chain of a project is the longest chain of tasks, taking into account both task dependencies and resource dependencies. This is different from the definition of the Critical Path, which is based on task dependencies only. This is a subtle but extremely important difference.

In the same way as Sciforma identifies the critical tasks in a Critical Path project, it can identify the tasks that are part of the Critical Chain in Critical Chain projects. But unlike tasks in a Critical Path project (which continuously re-computes critical tasks), Critical Chain tasks are computed only when requested by the project manager. Once identified, they remain Critical Chain tasks until the command is reissued or the tasks are manually changed. Sciforma provides an option to manually specify which tasks are on the Critical Chain because it is not always possible for an automated algorithm to identify these tasks. For instance, when possible Sciforma considers task and resource dependencies when calculating the Critical Chain, but if this is not possible, it will still choose a Critical Chain. In addition, Sciforma inserts gaps or overlaps in the schedule, if it cannot find a Critical Chain without them.

Since this process is choosing among alternatives, it is worthwhile to explain the criteria Sciforma uses in making its choice. The first applicable choice in the following list determines the Critical Chain outcome:

  1. A Critical Chain consisting entirely of task and resource dependencies from end to end is always chosen over any chain with partial or no dependencies.

  2. The chain with the minimum total gap between tasks is chosen over those with a longer gap. (No gap is the ideal case.)

  3. The chain with the minimum total overlap between tasks is chosen over those with more overlap. Note that choices 2 and 3 combine to give priority to those chains that “just touch” from task to task.

  4. The chain with the smallest number of resource dependencies is chosen over those with more.

  5. The chain with the smallest number of tasks is chosen over those with more. Note that choices 4 and 5 combine to give priority to those chains which are richer in task dependencies.

Add explicit resource links on the Critical Chain

The Critical Chain consists of both explicit links between tasks and implicit links that are due to resource dependencies.

An explicit link is created when task A is physically linked to task B to denote a dependency. The explicit link is visible in the Network Diagram, Gantt Chart, and the Predecessor/Successor sections of the Task Details dialog box.

An implicit link is defined when task A and task B use the same resource and are scheduled in such a manner that an increase in the duration of task A will cause the start of task B to be pushed later due to the unavailability of the resource. Task B is said to have a resource dependency with task A. Note that for task A and task B to have this resource dependency, an over-allocation of the resource must occur if task A and task B were to be scheduled concurrently.

When a change is made to the duration of a Critical Chain task, the explicit task links will usually cause a scheduling change to successor tasks just as in Critical Path scheduling. However, when a change is made to the duration of a Critical Chain task that has an implicit resource link to another Critical Chain task, the change will not cause a direct rescheduling of the trailing Critical Chain task. To effect a schedule change due to implicit resource links, the schedule must be adjusted based upon resource loading, either through manual task adjustments or by using automatic resource leveling.

It is important to note that the addition of explicit links is an optional approach in Critical Chain planning. There are two benefits to this approach and one drawback:

  • The first benefit is that the Critical Chain will be explicitly linked and behave similarly to a Critical Path. Any change in the duration of a Critical Chain task will directly affect the scheduling of the successor Critical Chain tasks.

  • The second benefit is that the order of the Critical Chain tasks will be maintained when resources are leveled. Resource leveling adjusts the scheduling of tasks with the goal of obtaining the shortest schedule subject to resource availability. (There is a possibility that the order of certain Critical Chain tasks that have implicit resource links could change during this leveling as task updates change the duration of tasks.)

  • The single drawback is that the addition of explicit links effectively creates a task dependency where there was only a resource dependency. If the resource situation changes during project tracking, the link may no longer be valid and could delay the successor task unnecessarily. When explicit links are used, the project manager has the added responsibility of reviewing the validity of specific links based upon any changes in resource assumptions during tracking. If a specific link is no longer valid, it should be deleted.

Insert Buffers at Strategic Points

At this stage of Critical Chain project scheduling, there is no margin of safety in the schedule. Resources have been asked to provide realistic, unpadded time estimates that have a 50% probability of being met. Furthermore, the project manager has not padded the schedule. Until a margin of safety has been introduced into the project, the odds of completing the project on time are very small.

Safety in Critical Chain projects is added by inserting time buffers at key points in the schedule. A buffer represents a pool of extra time that is available to and shared by all the tasks that precede it. The inserted buffers absorb task overruns without affecting the target finish date.

Critical Chain projects typically use the following buffers:

  • Project buffer – Protects against overruns in Critical Chain tasks. Placed after the last Critical Chain task in the schedule.

  • Feeding buffers – Protects against overruns in the feeding chains. Placed at each point a feeding chain intersects the Critical Chain.