Standard wisdom for creating a good material flow is to use FiFo lanes (First in, First out). In other words, the first part that goes into the line should also be the first part that comes back out. As such, FiFo lanes and its big brother, Supermarket, are essential for any lean material flow. However, some rules of wisdom can be bent and others can be broken. Here are the top five cases when NOT to use a FiFo lane.
Please don’t get me wrong. I love FiFo. It is one of the easiest tools for getting your material flow under control. However, all too often I hear people claim that all material flow MUST be FiFo. This is not true. The idea of lean manufacturing is to apply the principles, not to slavishly copy rules without understanding.
The same applies to FiFo. There are examples when a FiFo will give suboptimal results. Granted, most of these examples are cases where after further implementation of lean, the system would benefit from a regular FiFo. However, until these implementations are made, you may opt not to use FiFo. The following five cases of when not to use a FiFo lane were inspired through a discussion on the LinkedIn Group TPS Principles and Practice (private group, membership on request).
When to Break FiFo between Two Processes
1: Batch Processing
FiFo in its strictest sense is difficult to maintain in batch processing. If you are moving or processing your parts in boxes or batches, then it will be difficult to maintain a FiFo within the box. It is possible using some creative numbering scheme, but unless there is a compelling reason to do so, the effort is not worth the benefit. Naturally, the boxes or crates themselves should be in FiFo if possible, only the parts within are in random order.
2: Priority Orders
Sometimes it makes sense to prioritize your production order. As police or an ambulance can overtake other cars in a traffic jam, so can parts overtake others in the production line. In some cases, this may help your production.
For example, you may have high runners and rarely sold exotic parts. It may make sense for high runners to be built to stock. If your exotic parts are also built to stock, your inventory will go up disproportionately. You may choose either to build to order or try to reduce inventory. In any case, a faster throughput time for exotic parts may be helpful for customer satisfaction. By allowing these exotic parts to cut in line, you may significantly improve delivery performance and inventory for exotics, while only marginally increasing inventory for high runners.
Another example may be when something goes wrong with production or planning. One order was forgotten/delayed/missed/messed up/etc., and now the key customer is screaming for his parts. (Maybe you are familiar with such a scenario. I certainly am 🙁 ). In this case, it may also be possible to reduce pressure by allowing these jobs to cut in line.
The key for prioritizing parts is to do it sparingly. No more than one or two out of ten parts should be allowed to overtake the queue; otherwise the whole system may be thrown into chaos. For example, imagine standing in a supermarket checkout line. If one or two people out of ten are allowed to cut the line in front of you, it is annoying but will be only a minor delay. On the other hand, if every other person can cut in line in front of you, you may never get through the line.
Same happens to parts. The more parts cut in line, the more erratic the throughput time of non-prioritized parts will become. If all your parts are prioritized, then none are, and the chaos will be endless!
3: Parallel FiFo Lanes due to Space Constraints
The challenge here will be to maintain FiFo across multiple parallel lines. Both the source and the destination process need to follow a structure when adding or removing parts to maintain FiFo across multiple lanes.
I have seen different approaches that try to wrestle control over such a system and signal the user when to add or remove parts, from elaborate digital signals to mechanical barriers to cheap plastic flower pots on top of the goods. All of these required that filling and emptying must be different lanes. Only when a lane was completely empty did the delivering process have permission to fill that lane again. Of course, this makes a suboptimal use of your floor space.
In this case, it may be easier to simply forgo FiFo and have both source and destination pick lanes at random. In all likelihood, unless your guys are able to follow a standard to the letter, there will be hiccups in the sequence anyway.
However, there are some important caveats! If you have different products in the system, then you probably will need to maintain a FiFo, even with the occasional hiccup. Otherwise there is a high risk of some products being in the lanes for an excessive time, either by chance or because they are more difficult and the destination process does cherry-picking of easy work (happens all the time!).
Only if you have identical products should you consider breaking FiFo and allowing random picks. The downside is that products may stay in the lanes for different periods and that traceability in case of errors may no longer be available. For example, if the destination process notices an error, it will be more difficult to determine which parts in the lanes have the same problem or what the cause at the source was.
It all boils down to a trade off: the effort of maintaining FiFo vs. the benefits of having FiFo. I had situations when I choose to break FiFo. Of course, the best way would be to reduce inventory to have only a single FiFo lane within the available space; then the entire problem would be gone.
4: Variation in Storage Cost
Yet another example where it may make economic sense to break FiFo is for differences in storage cost. Assume, for example, that your warehouse is full and you have to rent space in an external warehouse. Your own warehouse is paid for no matter how many products are in there. The external warehouse, however, may charge per storage slot.
In this case, it makes sense to fill up your own warehouse completely before adding to the external warehouse. Similarly, you should satisfy demand by delivering from the external warehouse first to reduce storage cost before emptying your own warehouse. Overall, the sequence will be no more FiFo, but possibly more of a LiFo (Last in, First out).
Again, there are some caveats. Make sure your products do not expire while sitting in your warehouse. And, of course, the best option would be to simply improve your system so you can reduce your inventory altogether.
5: Changeover Optimization
Finally, yet another reason to break FiFo is changeover optimization. In many examples, it may be easier to change your machines to a new process if the products come in a certain order.
For example, in injection molding, it may be easier to start with a light color and gradually move to darker colors with the next batch. This way you will have less cleaning of your machine, since a speck of lighter-colored plastic left in the machine will be much less noticeable. On the other hand, a speck of darker-colored plastic left in the machine may ruin clear or white parts.
In such a case, it may be beneficial to break the sequence coming from the previous process and order the parts to reduced changeover time. If different processes in your value stream have different ideal changeover sequences, you may break the sequence more than once. Overall this will reduce changeover cost, although at the cost of a higher inventory.
Again, it boils down to a trade-off between the benefit of reduced changeover and the effort related to the added inventory. Naturally, pure lean theory would be to optimize changeovers into nothingness and have a one piece flow (i.e. a batch size of one with zero changeover time). However, until you have achieved this, you may opt to break FiFo here.
Some More Examples When Not to Use FiFo across an Entire System
The examples above all apply to a FiFo between two processes. Just for the sake of completion, here are some more examples of when to break FiFo across the system, even though you maintain them between the processes. In effect, the parts will leave the system in a different sequence than they entered. This happens in many systems and is usually not a big problem.
Break FiFo when the part flow is not identical for all parts. This may be, for example, in the case of branching, looping, or skipping steps. In this case, the parts will leave the system in a different sequence than they entered.
FiFo almost always gets broken in job shops. If the value stream is different for every part, then the sequence of the parts entering and leaving the system will be almost certainly different. This is sort of an extension of the non-identical part flow above.
Batching, optimizing, and prioritizing open jobs. It is common in many systems to batch and prioritize the open jobs. The most urgent batch is the one processed first. In this case, the sequence of the orders or jobs entering the system is different from the sequence of the parts leaving.
Finally, you should not use a FiFo if a supermarket is the better option. Of course, a supermarket is nothing but parallel FiFo’s, one for every product type. For more details, check my posts Ten Rules When to Use a FIFO, When a Supermarket – Introduction and Ten Rules When to Use a FIFO, When to Use a Supermarket – The Rules. Some of the content above was inspired through a discussion on the LinkedIn Group TPS Principles and Practice.
I hope this post was interesting to you. Please let me know if I missed a reason. Again, try to use FiFo whenever you can, but keep in mind that there are some examples where it may be not the best option. Now go out and organize your industry!