Creating realistic and accurate schedules is the first step towards project success. In Project Scheduling, PERT and Critical Path Method (CPM) are widely known methods. Using CPM, early Start and Finish dates and Late Start and Finish dates are calculated by forward & backward analysis of the project network diagram paths. But this method, does not take resource limitation into consideration. After identifying the path, resources are picked up & leveled. In general, activity owners add safety margin (buffers) to each of the activities in order to cope up with uncertainties. But this cause time waste when activities can be completed well before the estimated finish date.
Critical Chain Method, developed by Dr. Eliyahu M. Goldratt (1997), is a schedule network analysis technique that takes account of task dependencies, limited resource availability & buffers. First step in this method is identifying set of activities that results in longest path to project completion which are called critical chains. As it includes resources into consideration, it may be longer than CPM schedule. Resources used in those critical chain activities are critical resources. Set of activities that are in non-critical chain but converging to critical chain are feeders. Next step is shortening the project schedule by reducing the activity duration estimates with effective buffer management. CCM focuses on eliminating project schedule delays due to uncertainties, overestimation of task duration and wasted internal buffers.
In CPM, even a resource completes an activity before the planned finish date, the time gain is not propagated to next activity as he needs to wait till early start date of next activity. But delays are propagated which may even change the existing critical path. In the below example, I showed activity dependency & resource dependency across activities in a small project.
Any delay in Activity 1 (upper part of fig), will delay the entire project. Also if you see, the critical path is Activity 1 – Activity 3, though activity 2 is completed long before, Activity 3 has to wait till activity 1 is completed.
In the resource-leveled project(lower part of fig), same resource R1 used in two different activities A3 & A2. Though A1 is completed in 2 time units, but A2 has to wait till R1 finishes up A3 which 7 time units. Though A3-A4-Activity 3 is the critical path, but any delay in A3 or A2 will surely delay the entire project & due to Resource dependency another longest path comes into picture A3 – A2 – Activity 3 (15 time units). Hence, optimization of duration is required to concentrate not only on the activity dependencies but also on resource dependency.
Another important factor one need to deal in project scheduling is – safety margins(buffers) to beat the uncertainty. Due to addition of buffers at different activity level, it is very difficult to calculate exact time of project execution & this safety margin will go waste due to Student Syndrome or Parkinson’s Law.
In CCM, as calculation is based on set of activities in the critical chain, hence estimated finish dates for each activity is not of much use. Also, time gain or delay in an activity is fully passed throughout the chain activities. The internal buffers added to tasks are made explicit and summed up. The summed up value is called project buffer. As per CCPM, project buffer is part of project, hence project duration remain unchanged even after stripping off all the activity safety margins. And keeping them improves protection against uncertainties.
Also, 50% probability time estimates are used in calculating the activity durations in CCM instead of traditional 95% probability. Difference between original schedule estimates and new schedule estimates gives the project buffer. In general project scenario, there is 100% chance that activity-wise safety margin get exhausted by poor buffer management. In CCM, pooled project buffer is used as safeguard the entire project & even it is utilized up to 50% allows project completion well within the schedule.
CCM introduces 3 different buffers. 1. Resource buffer, 2. Feeding buffer, 3. Project buffer. Out of these, I discussed about project buffer previously. Let me give gist of other two buffers next.
Resource buffer
Resource buffer is inserted just before critical chain activity where ever a critical resource required. This is used to give a signal to the critical resource that a critical chain activity to which they are assigned is due to start shortly. According to CCPM, this wake-up call will cause the critical resource to wrap up any non-critical work and be ready to start work on the critical chain task as soon as its predecessors are completed. The resource buffer does not actually consume any resource, and it adds neither time nor cost to the project.[2]
Feeding buffer
Same like project buffer, pooling of activity safety margins in a non-critical chain & applying them at the end of those chain.Because this buffer is placed where the path feeds back into the critical chain path, it is called a feeding buffer. See the placement of feeding buffer in the fig.
References:
1.OVERVIEW OF CRITICAL CHAIN PROJECT MANAGEMENT by Francois Retief, Critical Chain Symposium 2002. http://www.hetproject.com/Francois_Retief_paper_Overview_of_Critical_Chain.pdf
2. A CRITICAL LOOK AT CRITICAL CHAIN PROJECT MANAGEMENT By Barnes, Robert, Publication: Project Management Journal, Date: Monday, December 1 2003 http://www.allbusiness.com/management/951030-1.html
3. 1. Critical Chain Project Scheduling By Kailash Awati & Arati Apte. http://www.orafusion.com/pm_cc.htm
4. Critical Chain Project Management Improves Project Performance by Larry P. Leach, Advanced Projects Institute, 1997. http://www.advanced-projects.com/CCPM/PMJOURN_R8.PDF