This post, the second in our production scheduling series (the first being Minimizing Makespan, Explained Using Attack Helicopters), briefly describes bottlenecks in production before introducing industry-tested methods to find, mitigate, and avoid them. Check out The Ondema Guide to Production Scheduling for an actionable resource to add to your tool chest.
Bottlenecks in production - the basics
Imagine if wine came in bottles shaped like a uniform cylinder with the opening the same diameter as the cylinder. So a big glass. If an open bottle tips over, the wine flows out at rapid rate.
In reality, wine bottles have tapered necks with openings of a smaller diameter than the "body" of the bottle. If an open bottle tips over, the smaller diameter opening causes the wine to spill as a lesser rate than the example above. The neck of the bottle reduces the flow rate of the spilled liquid - the bottleneck reduces flow.
In production, bottlenecks are one process in a series of processes that, due to its diminished capacity, reduces the capacity of the system as a whole. Bottlenecks in production result in accumulation of work-in-progress (WIP) in queues, reduced throughput, reduced capacity, and increased wait and lead times, among other things.
Credit: Christoph Roser at AllAboutLean.com
Imagine a production process involving three steps, each step with flow rates (capacity) below.
|Step 1||10 units/hr|
|Step 2||5 units/hr|
|Step 3||4 units/hr|
Step 3, with the smallest capacity, is the bottleneck in the process. Units flow through Steps 1 and 2 at a faster rate, but accumulate in a queue while waiting to flow through Step 3. Because of this, the capacity of the entire production process becomes 4 units/hr.
Say we invest in a new machine that increases the flow rate for Step 3 to 6 units/hr. Step 2 is now the bottleneck, and the flow rate of the entire production process becomes 5 units/hr.
Key takeaway: a system is only as fast as its bottleneck process.
To state the obvious: finding, mitigating, and avoiding bottlenecks in production is a good thing. Let's go over actionable ways to do this.
Finding bottlenecks (aka process analysis)
If you cannot describe what you are doing as a process, you do not know what you are doing. - W. E. Deming
So how to go about finding bottlenecks in production? Conduct a process analysis. Process analysis allows you to identify inefficient tasks, areas for possible gain, and get a better understanding of where value can be added in the system.
1. Map your process (aka value chain)
Creating a process flow chart is the best place to start. Identify each and every step/task in the production process and map it out using industry-standard graphics:
Examples of Made-to-Stock and Made-to-Order process flow charts are shown below. If demand is satisfied by Finished Goods Inventory (FGI) then the production system is Made-to-Stock. Otherwise, it's Made-to-Order.
2. Measure performance at each step
How best to measure performance? We need to determine the capacity (i.e., throughput rate) at each step using the below relationships:
Let's walk through a simple example using AH-1W Super Cobra attack helicopters 💥🚁, of course. The manufacturing process for the M197 20mm cannon, a three-barreled harbinger of air-to-ground fire superiority, consists of machining, assembly, and packing/shipping. The barrels are machined on two lines and then placed in a buffer. Three barrels are put together during assembly and the finished goods are sent to packing/shipping. Our basic M197 manufacturing process diagram looks like this:
At the machining center, setup takes 45 minutes, machining takes 5 minutes per barrel, and batch sizes are 30. Assembly is manually done by two workers and takes 25 minutes. There are 24 workers available. Packing & shipping takes 30 minutes to set up, 3 minutes processing time, and has lot sizes of 60.
First, let's calculate the throughput rate for each step, starting with machining:
Next, let's do the same for assembly. We were given the assembly cycle time of 25 minutes with 2 workers per barrel and 24 available workers, so
Packing and shipping throughput rate can be calculated as
3. identify the bottleneck
The process bottleneck is the smallest processing rate or largest cycle time. The example above gives us capacities for each process step:
|PROCESS STEP||CAPACITY (barrels per hour)|
|Packing & Shipping||17.143|
Packing & shipping has the least capacity and is the bottleneck. The capacity of the entire M197 manufacturing process is therefore 17.143 barrels per hour.
Reducing the impact of bottlenecks
We've identified the bottleneck. Now what?
Every process has at least one bottleneck. You can't eliminate them all, but you can certainly reduce their negative impact. So how can manufacturers do this?
Increase capacity at the bottleneck
This can be done in a variety of ways. The lowest-cost option is process improvement. Eliminating small inefficiencies can add up to big gains. If financial resources are available, manufacturers can also add production resources to the bottleneck process in the form of machines, workers, or other shop floor equipment. Implementing and improving automation at the bottleneck can also increase capacity.
Sell extra capacity
If you've done everything available to boost capacity at the bottleneck, you have the option to sell extra capacity at other steps to alleviate the financial impact of the bottleneck. Have machines sitting idle? I bet there's someone who could use them...
Discard excess capacity
If there aren't any buyers for the extra capacity, think about getting rid of it, if possible. This isn't always an attractive option as it can involve layoffs, selling machines, etc.
This wouldn't be an Oddball Dan Brown Blog Post™ without seizure-inducing production scheduling math, so you know what time it is...
...it's time to get weird! 😳😱🙅
Disclaimer: read on at your own risk. For a great intro to some of the concepts below, check out The Ondema Guide to Production Scheduling.
Some of you may ask: Dan, are you still bitter about the Bears drafting Trubisky instead of Mahomes or Watson? Too soon? My bad. Now for my real questions. If I address one bottleneck in production, doesn't something else become the bottleneck? Is there a framework or model that addresses this?
I'm so glad you asked! Let's dive into one of the most powerful scheduling rules out there: BATCS.
Super-smart people (specifically, Pfund, Mason, and Fowler) were part of a three-year research effort called the Factory Operations Research Center (FORCe) that started in 2000. The main goal of FORCe was developing frameworks for minimizing total weighted tardiness (TWT) in complex job shops that built on the work of Pinedo and Singer (1997) and Mason et al. (2002). They developed a modified shifting bottleneck heuristic for the FJC | rj, sjk, B, rcrc | ∑wjTj problem.
You (maybe): What the f@&#? I'm out.
Don't leave yet! Let's break it down.
Remember from our post on makespan: production scheduling problems are described by the triplet α | β | γ where α is the machine environment, β is processing details and constraints, and γ is the criteria to minimize. Let's break down the above:
- FJC is notation for a flexible job shop. There are c work centers, each with identical machines in parallel. Each job j has its own route to follow and can visit a work center more than once.
- rj, sjk, B, rcrc are the processing details and constraints with
- rj being the release date (i.e., the time when job j arrives at the system and the earliest time at which it can start processing),
- sjk being the sequence dependent setup time between jobs j and k,
- B being a bottleneck that shifts between steps, and
- rcrc being short for recirculation, meaning a job may visit a machine or work center more than once.
- ∑wjTj is just a fancy math way of stating total weighted tardiness, or the minimization of the sum of tardiness for jobs ranked by importance.
"Shifting bottleneck" is just what you think it means - once you add capacity to a bottleneck so it's no longer the bottleneck, the bottleneck is now something else. A heuristic is something that employs a practical method that may not reach an optimal solution, but rather a "good enough" solution. This makes sense since job shop scheduling is NP-hard - math-speak for being a member of the hardest set of problems to solve.
These super-smart people created a heuristic that combines multiple scheduling rules including 1) weighted shortest processing time, 2) minimum slack, 3) setup avoidance, and 4) batching efficiency maximization to create the Batching Apparent Tardiness Costs with Setup (BATCS) rule. It's basically the Voltron of scheduling rules. You know, because all those kick-ass robot lions come together to form Voltron to wreck shop on intergalactic threats.
If you take away one thing from this post, it should be that Batching Apparent Tardiness Costs with Setup (BATCS) is the Voltron of scheduling rules. Congratulations, you're not getting this time back.
Behold! BATCS, a modified shifting bottleneck heuristic for complex job shops:
- Ibj is the index for scheduling jobs that will produce a proposed job sequence,
- wbj is the average weight of the jobs in batch bj,
- pbj is the processing time of batch bj,
- dbj and rbj denote batch bj's due date and ready time, respectively.
If you'd like to dive deeper into the above, check out Semiconductor Manufacturing Scheduling and Dispatching: State of the Art and Survey of Needs by Pfund, Mason, and Fowler. Lots of good stuff in there for those of stalwart constitution.
Until next time, friends
Our wonderful time together has sadly come to an end.
Leave a comment if you find stuff like this helpful. Or if you don't. Or just to say anything, really. I'm on my second week of COVID isolation and would very much enjoy any human interaction that isn't my 3-year-old hiding the TV remote or screaming at spiders.
Your partner in production scheduling,