A Study of Queuing Behavior in Continuous Flow Processes
October 25, 2012 1 Comment
It has become commonplace for manufacturing processes to be configured in a continuous flow to gain benefits such as cost and lead time reduction. When working with these lean processes many soon discover that certain interactions occur between operations that can be attributed to differences in their cycle times.
For example, a product requires that an assembly be built in several stages. One operation places a printed circuit board in an enclosure requiring 6 screws. The product then moves on to the next operation which requires further assembly using 10 more screws and a label placed. The 2 operations take different amounts of time to complete. This of course causes an imbalance between them. We’ve now created a new kind of problem – what to do about the queues (buffers or constraints) or waits (idle states) that are the inevitable result?
In this article I’ll take a closer look at the internal dynamics of continuous flow processes that are caused by differences in operational cycle times and provide some guidelines that can be used towards their optimization.
Inefficiencies in a Continuous Flow Process
Reduction in costs and lead-time by moving processes together in a continuous flow are well documented. But two problems remain – queues and idle states. In order to better study how operations interact in a continuous flow I developed an Excel™ spreadsheet that creates a time chart (Figure 1 below) so that I could better see what was going on and test some assumptions. In the cells that provide the data for this chart are mathematical formulas for each operation for how their cycle time relate to the next and what the effects will be downstream. Using the time chart helps to gain knowledge of where the buffers are, how large the buffers will be, which processes have to wait and how long those waits will be. This knowledge can then be used to discover ways to optimize the process and to make better decisions on which trade-offs we are most willing to accept. To learn how to read the time chart below follow this link found on the page Articles, How to Read Lean Time Chart.
By entering the cycle times of each operation we can see where the queues and idle states are graphically. We also have the opportunity to play around with different scenarios to be sure a non-constraint does not turn into a constraint. For any operation 1 of 3 things can happen: 1) If it is not perfectly balanced it will either have 2) a buffer before it or 3) a wait state after it. You can be sure that either a queue or wait will develop even if for only a short period of time, even seconds. This can be explained further in the table below:
Guidelines for Process Optimization
Based on the time chart and additional experimentation I’ve put together some rules that can act as a guideline for designing or improving a continuous flow process. This is by no means all inclusive and I don’t think a line can be truly balanced as there will always be some difference in time between the operations. In real world situations the best you can do is get as close as possible without causing too much disruption or other problems elsewhere. To describe these guidelines I will refer generally to 3 operations in a continuous flow starting with P1, followed by P2 and P3 as well as the time chart in Figure 1.
- All downstream processes are keyed off of the first operation. P1 can always start as soon as it can and never has to wait. It also doesn’t have a buffer in the strict sense of the word as the first buffer is the number of units to be built. Since all the other operations will have to wait for P1 to fill up the pipeline it is best to keep P1 as short as possible so that the other operations can begin their work as soon as possible so the pipeline can be filled faster.
- The operation with the longest cycle time becomes the pace setter and sets the takt time for the line. This follows along with Dr. Goldratt’s Theory of Constraints.
- Buffers. Buffers are constraints and will grow at a rate of time equal to P2 – P1 multiplied by the number of units produced. Typically buffers are eaten up by the next process as time becomes available there. The effect of a buffer gets pushed down to the other operations all together. One operation’s buffer does not affect the size of the other buffers downstream or upstream of it because all the other operations must now wait the same amount of time. Buffers cause everything to shift together at the same time.
- Focus on the constraining operation. I’d like to follow up on this more in a future article but for now click here to read an excellent article on the subject by H. William Dettner.
- Because of Number 3, reducing buffers will have the greatest affect on reducing the overall lead-time and cost. It is best to start by reducing buffers downstream before reducing buffers upstream. The process with the buffer furthest downstream is also more likely to be where the constraint is at because it’s cycle time must be very high in order for a queue to develop there. Its cycle time reduction can be accomplished in the following ways:
- Adjust the requirements of the operation so that it will take less time or see if it is possible to move some of its actions to another process that has some wait time.
- Adding an additional worker in series within the buffered operation so that units will be picked up from its buffer and moved along sooner. This will create an internal buffer to that operation but will help the overall process lead-time. This technique works better for manual operations than for machines.
- For example, instead of having one worker assemble all 10 screws have 2 operators assemble 5 screws while checking each others’ work or have both workers do all 10 screws in parallel. Whatever works for you. This will reduce the buffer going into that operation by moving the product through it in half the time as it would have had with only one worker. Adding 2 more workers would reduce the queue by a third and so forth.
- Add a parallel operation that can begin working on a unit as soon as it appears in the buffer or perform the work on more than one unit at a time. This technique works best for machine operations where a single operator can move the product in and out of the machine. They may then be freed up to help out somewhere else while the machine is working if it is not too disruptive.
- Idles. Idle states work differently than buffers in a continuous flow. When the next process P2 is faster than the one before it (P1) then P2 must wait for a period of time equal to P1 – P2. Idle times stay the same from one unit to the next and are not multiplied like buffers are but instead are more cumulative downstream. Wait times can be carried downstream when these conditions take effect:
- If the next downstream process’s time for P3 is balanced with P2 then P3 must wait the same amount of time that P2 had to wait.
- If the next downstream process’s time for P3 is greater than P2’s wait time then P3’s wait time will be subtracted from the total wait time until it is so much that a new queue develops.
- If the next downstream process’s time for P3 is less than P2’s wait time then P3’s wait time will be added to the total wait time and be cumulative to other operations downstream.
- A Buffer may be considered as “independent” from other buffered operations either upstream or downstream of it. It is affected by the number of units being processed. The only caveat is whether this buffer was caused by Number 7.2 above. Then it can be affected by a change in wait time. An Idle state may be considered as “dependent” on operations upstream of it. They are not affected by how many units are being processed.
- Buffers and Idles are built into the continuous flow process as a result of differences in operational cycle times. As simple as this sounds it can still lead to misconceptions or misunderstandings. On one hand buffers are easier to see and to explain. They may be more tolerated because it is product that is doing the waiting and does not appear to be costing as much. On the other hand wait states mean people are standing around costing money, or so it seems:
- From the time chart we can see that attempts to shorten the time at P4 has only a minor affect in reducing lead time and can actually result in a longer wait time. It also has no affect on the takt time of the line.
- We discover that it is safe to extend the time at P4 to match that of P3 or allow the worker to do something productive elsewhere with little affect on the overall cost and no affect on the takt time. Can you find something to do that 1) won’t create more work downstream or 2) improve throughput somewhere else and 3) can be paused as soon as other work appears. 1
- Workers that are waiting then are not a cause and are instead an effect due to imbalances in upstream processes that are in fact slowing them down and preventing them from doing the work. There is nothing they can do at that point to reduce their waiting further. Their waiting was already built into the design of that process before their work even began.
© 2012 James P. Schoen