Improving system capacity requires you to find the bottleneck; however, bottleneck detection is a tricky business. The main problem is that most bottlenecks are not static, but move around. In this post we will look at the behavior of bottlenecks on the shop floor. This is the first post in a series of posts on bottleneck detection. Subsequent posts will look at the flaws of commonly used methods to find the bottleneck and describe two new reliable methods for finding the bottleneck on the shop floor.
Definition of a Bottleneck
Before we delve into details about bottlenecks, I want to define what a bottleneck is:
The bottleneck in a system for any given time is the process that constrains the system capacity at this time.
Hence, a bottleneck is the process that limits (at the moment) the output of the system. This definition will be more important later on.
Types of Production Systems
With respect to bottleneck behavior, production systems can be seen in different ways.
The easiest systems with respect to bottleneck detection and capacity management are static systems. In these systems, there is no random fluctuation. There are no breakdowns, change-overs, or any other changes. Every time, the system behaves just like every time before.
It is easy to find the bottleneck in such systems. Simply take the process with the longest constant cycle time, and you have the bottleneck. All buffers before the bottleneck will be always full or approaching infinity, and all buffers after the bottleneck will be always empty.
Unfortunately, such systems do not exist in reality. In reality, there are fluctuations in cycle times. In reality, there are failures, with a random time between failures (Mean Time Between Failure, or MTBF) and a random repair time (Mean Time To Repair, or MTTR).
Hence, in reality there are no static production systems. This is why it’s baffling to me how many bottleneck detection methods assume or require a static system to work.
In reality, the world is dynamic. The behavior of any real system is subject to countless random events, which makes the system different every single time. These random events create different probability functions, describing how the randomness behaves. These dynamic systems can be further divided into two subgroups.
Stable Dynamic Systems
A stable dynamic system is a dynamic system that has randomness; however, the randomness itself does not change over time. For example, if the randomly distributed cycle time has a mean with the value of “x,” this “x” does not change over time. The random behavior today is the same as the random behavior tomorrow or next week.
It is easy to see that stable dynamic systems also do not exist in reality. Most systems change, with new machines added and old ones removed, with continuous improvement changing the system behavior, with old products no longer being produced but replaced with new products. If nothing else, a system is created at one point and deconstructed or destroyed at another point.
However, for a shorter time a stable dynamic state is a valid assumption. While your shop floor will look and behave totally differently ten years from now, the changes are often negligible if you look only at next week. Hence, a stable dynamic system can be a valid assumption.
Unstable Dynamic Systems
As described above, no systems are stable forever. Hence, in the long run, all real systems are unstable dynamic systems.
Dynamic systems have one major impact on bottlenecks: In dynamic systems, bottlenecks shift! The bottleneck may change over time. For example, if a process has a breakdown, then the bottleneck may change to this process.
In my experience, such shifting bottlenecks are the norm on most shop floors. A shop floor sometimes feels more like a sequence of problems rather than a stable system. Hence, bottlenecks do change. Depending on the buffer between the processes, bottlenecks may change quicker or slower. I have seen systems where the bottleneck changed from one process to the second to the third within less than a minute. Plus, I have the method to actually see such changes in action (as I will describe in a later post). But before that I have to clarify a common misconception regarding bottlenecks.
Long-Term and Momentary Bottlenecks
In industry, many people see a bottleneck as a constant. There is one process that is the bottleneck, and all others are not. This is unrealistic. As we have seen above, bottlenecks change. These shifting bottlenecks are the system constraint for only a certain period of time, so they are momentary bottlenecks. Long-term bottlenecks can be determined based on how long each process was the momentary bottleneck. The process that was most frequently the momentary bottleneck is also the biggest long-term bottleneck, but it by no means has to be the only long-term bottleneck.
As such, in order to find the long-term bottlenecks, you always have to find the momentary bottlenecks first. At Toyota, there is a saying regarding to bottlenecks:
"Never Ever Use Averages for Bottleneck Detection!"
Hence, it is surprising to me how many flawed bottleneck detection methods are based on long-term averages. These methods can do nothing but fail.
In the next post we will see a list of commonly used but flawed bottleneck detection methods, and then we will move on to an accurate theoretical and an accurate practical bottleneck detection method.
Other Posts in this Series on Bottlenecks
- Shifting Bottlenecks
- Common Bottleneck Detection Methods that do NOT work!
- Mathematically Accurate Bottleneck Detection 1 – The Average Active Period Method
- Mathematically Accurate Bottleneck Detection 2 – The Active Period Method – My preferred method if you have lots of data (e.g. from a simulation)
- The Bottleneck Walk – Practical Bottleneck Detection Part 1 – My preferred method on the shop floor
- The Bottleneck Walk – Practical Bottleneck Detection Part 2