|
|
Product development projects, like many other types
of projects, often can exceed their planned
schedule by 50% to 100%. Often this is attribute 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) 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:
- 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.
- 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.
- Insert a Project Buffer at the end of the project to aggregate
Critical Chain contingency time (initially 50% of the critical chain path
length)
- Protect the Critical Chain from resource unavailability by Resource
buffers. Resource buffers are
correctly placed to ensure the arrival of Critical Chain resources.
- 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.
- Start gating tasks as late as possible. Gating tasks are tasks that have
no predecessor. This helps prevent multitasking.
- Ensure that resources deliver Roadrunner performance.
Resources should work as quickly
as possible on their activities, and pass their work on as they
complete.
- Provide resources with activity durations and estimated start
times, not milestones. This encourages resources to pass on their work when done.
- 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.
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.
|