My family and I went camping with my brother-in-law and his family. We went to a place in Utah called Uinta National Forest — it was beautiful. We prepared well, got the tent and camping stuff ready, then headed to the camp site on Friday. When we arrived, we set-up camp, then we went on a hike.
That’s us above on a hike — that’s me with the blue shirt holding a baby; yeah, the Asian guy, that’s me. It was just absolutely beautiful up there. It was nice to be in nature.
During our hike, I couldn’t help but think of the Boy Scout chapter in Goldratt’s “The Goal”. You know, the chapter where Goldratt introduces the Drum-Buffer-Rope system.
Before explaining the Drum-Buffer-Rope (DBR) system, let me first explain some basic characteristics of systems, in general:
- Every system has a bottleneck.
- A bottleneck is a state of affairs where demand for service exceeds the capacity to serve.
- The Throughput of a system is dependent on the Throughput of the Bottleneck.
- Given (1), (2), & (3), for maximum output, a system ought to keep the bottleneck working at 100% capacity with little or no defects (scrap, waste (muda), time-traps).
- Given (4), Non-bottleneck processes should be working at less than 100% capacity, so as to not over-burden the bottleneck with large batches of work-in-process (WIP).
The characteristics above are basic to any system — manufacturing, clinical, software, or otherwise. Put on your Systems-wide Hat and think about your experience thus far, regardless of industry: bottlenecks are everywhere. That’s not the problem, but managing it is. Hence, the Drum-Buffer-Rope System.
Managing the Constraint is mostly about managing the non-bottleneck systems and making them “aware” how fast they should work — when they should slow down, when they should stop, or when they should increase pace and by how much. The Drum-Buffer-Rope system allows for a systems-wide awareness.
The Drum
The Bottleneck or Constraint, acts as a Drum — it sets the rythm that the whole system should follow. In Lean Manufacturing, this is also called “Takt Time.”
The Buffer
There are situations when when upstream processes can’t produce as much as is needed by the Bottleneck; the result: the Constraint is starved and overall system output is compromised. So, we must have a buffer of inventory that is the size of the accounted-for variation is demand. This will help to level-out variation. A Buffer will assure that the Constraint never has to wait and, waiting is a form of waste.
Similarly, if upstream processes are producing more than the Constraint has the capacity to handle, then there’s going to be excess inventory sitting in front of the Constraint and, hence, a feast.
Put another way, the Buffer is the inventory and inventory is directly related to Lead Time (I explain this in 2 previous posts on Little’s Law here and here.
This phenomena is sometimes called the Feast-of-Famine Syndrome.
DBR is used to avoid either of these scenarios — the Feast or the Famine — by dictating the batch size and frequency of the inputs into the Buffer.
The Rope
The Rope is a method by which the Constraint can signal to the upstream processes (non-bottleneck processes) when to slow down, when to stop, or when to produce faster and the quantity. This is called “Pull Scheduling” in Lean Manufacturing terms. In software, this can be implemented as a data structure called a Stack, with “Push” and “Pop” as the methods for pulling from the Stack.
Applications of Drum Buffer Rope
When I was with Amazon.com, I led a project where I investigated a production line that was experiencing a Feast/Famine scenario. There was a lot of waste on this line and it impacted daily production in a serious way. As the team lead, I set out to observe, interview the operators, and collect data on this line. I quantified the cost to Amazon that was a result of the Feast/Famine scenario — costs in terms of actual dollars resulting from missed orders, upgraded orders, overtime of operators, product damage, and safety issues.
The distribution you see above is best approximated by the Poisson Distribution, which means that the Mean and the Standard Deviation are approximately the same. What does this mean? The picture above graphically shows the Famine Feast scenario — product in totes arrive at the constraint ALL at the same time.
Solution? I led a team of software and industrial engineers that re-engineered this line and we implemented a DBR solution, where the pack-rate at the Constraint would dictate what the upstream pick-rate should be. In other words, we made sure that the pick-rate would never be higher than the pack-rate. This solution worked and Amazon saved a lot of money and customers benefit.
Drum-Buffer-Rope is an intuitive solution to a seemingly complex problem. DBR is seen in many areas including Agile Development, Manufacturing, and Medicine (Emergency Room Visits). It’s an effective business tool to manage the constraints that every business faces.
Oh, by the way, camping was great!
jordy
Goldratt’s “The Goal” really was an awesome book that totally changed the way I look at business processes. His other books are good too, but “The Goal” really is a must read. As a business novel (I know that sounds weird), it’s actually an easy read too.
Mike Stone
I notice that your diagram shows the constraint and the drum being in different places. In actuality, they should be the same thing, as you say in your text.
Also, you say that you made sure that the upstream pick-rate would never be higher than the pack-rate. That is not good. There are times that the upstream pick-rate MUST be higher than the pack-rate. Those times would be that the buffer, for whatever reason, becomes depleted. Otherwise, there is no way that the buffer to the constraint can be replenished without starving throughput at the constraint, and that’s the whole point of the buffer.
The pick-rate should NORMALLY be no higher than the pack-rate for this example–as stated, the constraint acts as a drum to keep the pick-rate at the rate where maximum throughput is sustained. But the pick-rate must have excess capacity that can be called on when needed to replenish the buffer to prevent sacrificing throughput at the buffer, otherwise you would need an infinitely-long buffer to ensure that it never becomes starved.
Janelle Klein
Hi Pete,
I know it’s been years since you wrote this article, but it’s still one of the best descriptions I’ve found of drum-buffer-rope that isn’t convoluted with tons of unnecessary detail. Since I’m currently working on a data-driven software learning technique (essentially SPC for software development), at the moment, this is very relevant to me.
I had a question. In your drum-buffer-rope picture, you have a guy in the back that you label as the “constraint”. This really confused me, since I thought the bottleneck (the drummer), would be the constraint?
I know it’s been years since you wrote this article, but would you mind explaining this part?
Pete Abilla
Hi Janelle – wow, thank you for the kind words. I appreciate that.
In Goldratt’s example, he discusses a boy scout troop on a hiking trail. Some of that group wish to go really fast and some moderately fast, and some slow. In his example, the entire troop goes only as fast as the boy scout in the front of the trail. That makes sense. But it can also work the other way around: The entire team can only go as fast as the slowest person on the team. That can also be the constraint.
So, since constraints are a natural phenomenon present in every dynamic system, recognizing what the constraint is in the system and then managing to it is key.
Again, thank so much for your kind words.