Critical Chain - Eliyahu M. Goldratt [84]
"That's not a problem," Mark says. "The original feeding buffer is exhausted. All my attention is on those steps anyhow."
"False alarm," Ruth apologizes.
"I don't think so," Charlie says. "I don't think this is a false alarm."
"Why?" asks Mark.
"Because, at least in my case, the critical path has started to jump all over. Every few days I have this problem. Frankly, I am about to give up."
"This is a very well-known phenomenon," Roger says. "Every project leader will tell you that the critical path changes during the project."
This is serious. I ignore Roger and concentrate on Charlie. He is not talking about a ‘would be' problem or some generalization; he is talking about an existing problem. Charlie, especially after his president being so happy about what he has achieved, would not make such a statement unless the situation was really out of hand.
"Charlie, would you describe to us, in detail, what is actually happening?"
"It's frantic. Noncritical paths, where everything was fine, where the feeding buffers had not been touched, are starting to, all of a sudden, be a problem."
"A severe attack by Murphy," I try to be sympathetic.
"That's the weird thing," Charlie responds, "no special problems, no surprises, still, we are starting to fall behind."
Now I'm confused. And so is everybody else.
"Charlie, let's take it slowly. You are working on step N of a noncritical path, and . . . Now, tell us what happens."
"It's even weirder than that," he says. "I haven't started working on step N on the noncritical path, and this noncritical path becomes a real problem. Without doing a thing, I've exhausted the feeding buffer."
"What are you talking about," Ted speaks for all of us.
"Exactly what I said. I'm supposed to start on a certain step on a noncritical path, but the resource is not available."
"Where is the resource?" Ted asks impatiently.
"Working on another noncritical path."
"So move it."
"I can't. The noncritical path it's working on is also late."
"Miracle," Ted snorts. "Can't be. You're talking nonsense."
Charlie's face is red, but he controls himself, and doesn't answer Ted. He looks at me and asks, "Can I come to the board and show the situation?"
"By all means."
As he starts to draw, he says, "This is not my real project, but it will show you my problem." Two minutes later the diagram is drawn on the board.
"What do the Xs stand for?" I ask him.
"They are steps done by the same specialist, of which we have only one. Assume that each step requires five days, and my feeding buffers are also five days. Do you see the problem?"
We look at the diagram. Charlie's problem is clear. It is also clear that this situation can happen in many projects. There are many contentions for X. For a period of time, X is overloaded and is falling behind. That's what is causing the delays, which are passed from one noncritical path to another. The feeding buffers are not enough to absorb these delays. No wonder his critical path is jumping from one path to another.
"It's obvious that I must acknowledge the limited capacity of X," Charlie says, "but then all our nice method collapses."
"Hold your horses," I say. "Let's go back to your diagram. What is the critical path here?"
"I don't know," he replies. "Not when I take the limited capacity of X into account."
I see the light. "Let's go back to our definition of critical path," I say confidently. "The longest chain of dependent steps, the longest in time. Don't ignore the limited capacity of X. Don't ignore the fact that dependencies between two steps can be because they are performed by the same resource that has limited capacity, so you cannot do both steps at the same time; you must do them sequentially rather than in parallel. That is dependency."
"So what is the critical path?" Ruth asks.
"You tell me," I address the whole class. Jim is frantically taking notes.
"We cannot start with X," Ruth says, "so we have to start somewhere. Then immediately