Inserting buffers in a resource feasible project schedule is one of the last steps in the Critical Chain/Buffer Management (CC/BM) approach. Although the insertion of the buffers in the baseline schedule looks like a straightforward task, this insertion mechanism is often a cumbersome task which leads to problems that harm the general philosophy of critical chain/buffer management. Inserting buffers often leads to resource conflicts in which some of the resources are overallocated (see “The critical path or the critical chain?: The difference caused by resources”). In this article, three simple techniques are described to cope with these resource conflicts in a CC/BM buffered schedule, as follows:
-
Allowing gaps in the chain
-
Splitting buffers
-
Resizing buffers
These techniques will be illustrated on an example project originally used in
“Critical Chain/Buffer Management: (Dis-)advantages of scheduling projects as-late-as-possible”. The left picture of figure 1 shows the buffered project network in which the numbers above each node are used to refer to the aggressive activity durations while the label below the node refers to a renewable resource that is required to perform the activity. The renewable resources A, B, C, D and F have an availability of one, while the renewable resource E availability is restricted to two units. The schedule contains three time buffers and one resource buffer. One project buffer is added to protect the critical chain S - 2 - 6 - 8 - E and two feeding buffers FB4-6 and FB7-8 are added to protect the feeding chains 1 - 4 and 3 - 5 - 7, respectively. The resource buffer RB is added to assure that resource B will be available on time to start with activity 6. The right part of figure 1 displays a corresponding buffered schedule using the cut and paste method. In this method, the size of the time buffers is equal to 50% of the length of the chain as discussed in “
Sizing CC/BM buffers: The cut and paste method”.
?Figure 1. A buffered project network and schedule using the cut and paste method
In the remainder of this article, the size of the buffers will be changed to illustrate the presence of resource conflicts and to show some simple and straightforward ways to resolve these conflicts to make the buffered schedule resource feasible.
Allowing gaps in the chain
The top schedule in figure 2 displays a buffered project baseline schedule using the adaptive procedure with density causing a resource conflict. In this procedure, buffers are sized according to the density of the subnetwork that feeds the chain. This buffer sizing method is discussed in “
Sizing CC/BM buffers: The adaptive procedure with density” and leads to the following buffer sizes:
-
Project buffer: 3.10
-
FB4-6: 1.07
-
FB7-8: 2.03
Thanks to a decrease in the size of the feeding buffer FB7-8 and the project buffer compared to the buffers in figure 1, the total project duration has decreased to 15.1 time units (e.g. days). However, inserting these buffers in the project baseline schedule has led to a resource conflict for resource B used by activities 5 and 6 at the same time. A simple and pragmatic way to overcome this resource conflict is to allow a gap between activities 5 and 7 in the feeding chain, resulting in a resource feasible buffered project schedule, as displayed in the bottom picture of figure 2.
?Figure 2. A buffered project baseline schedule with a feeding chain gap to resolve resource conflicts
Splitting buffers
A second solution to cope with resource conflicts is illustrated in figure 3. In this figure, the sizes of the project buffer and feeding buffer FB4-6 are equal to the sizes determined by the cut and paste method (6 time units and 1 time unit, respectively, as shown in figure 1). However, the size of buffer FB7-8 has been increased. Since the size of the buffer should be a reflection of the uncertainty in the activity durations, it is assumed that the FB7-8 size is increased from 3 to 3.5 time units in order to cope with a higher degree of uncertainty. Inserting this buffer in the project schedule results in a new resource conflict, as displayed in the buffered schedule at the top of figure 3. Since activities 1 and 5 both rely on resource B that has an availability of 1 unit, this resource cannot be available for both activities at the same time. In order to avoid this resource conflict, the feeding buffer FB7-8 has been split into parts A and B such that no resource conflicts occur in the buffered schedule, as shown in the bottom schedule of figure 3.
?Figure 3. A buffered project baseline schedule with a split buffer to resolve resource conflicts
Resizing buffers
Resizing buffers to avoid resource conflicts can be considered as a last and probably the most simple and pragmatic technique to resolve resource conflicts. As an example, the buffer sizes obtained by the cut and paste method as displayed in figure 1 do not lead to resource conflicts.
It should be noted that all these methods to resolve resource conflicts might result in a buffered baseline schedule where resources are not overallocated, but the risk might be that the resulting buffering approach is no longer capable of absorbing potential delays in the chains feeding into these buffers. Therefore, these methods must be applied with utmost care. The sizes of the buffers should always be a reflection of the uncertainty of the activity duration in the chain leading to the buffer and the buffered schedule should therefore be constructed so that it is capable of coping with potential delays during the progress of the project. Simply resolving resource conflicts might put that objective into danger.