FIFO (first in, first out) is one of the simplest and most basic ideas in manufacturing, and yields significant benefits. It is so simple that I don’t even want to call it a tool, since it is one of the fundamentals in manufacturing (and many other areas). In this post I want to take a closer look at the power of this most fundamental approach to material flow.
FIFO simply means that the first part going into a system is also the first part going out of the system. There are some alternatives (see my blog posts on delivery sequences and production sequences for more), but unless you have a specific reason for not doing FIFO, you should stick with FIFO.
If the FIFO is part of a pull system, it is also helpful if the FIFO has a clearly defined limited capacity. But the big advantage is the sequence of parts.
Reduces Fluctuations, Especially Lead Time
The main reason for FIFO is that it reduces fluctuations in the material flow, especially on lead time. To understand this, let’s compare FIFO with its opposite, LIFO (last in, first out). While in FIFO all parts have to wait similar times, in LIFO the last part get serviced first, and the first part has to wait excessively long. On average, the waiting times will be the same. However, the fluctuations (or the width of the distribution of the waiting times) will be much MUCH larger in LIFO than in FIFO.
This point is so important that I made a small simulation of a single-arrival single-server process. A part arrives every 10 time units, with a random exponential distribution. The process can handle a part every 9 minutes, also exponentially distributed, giving overall an utilization of 90%. Parts wait in a queue with infinite capacity. Simulation time is 100 000 time units after a 100-time-units warm-up. I measure the time a part spends in the system. The only difference is that in one simulation, the queue or buffer is using FIFO. In a second simulation, the queue is using LIFO. Everything else is the same, even the pseudo-random number generator created exactly the same random numbers for each simulation.
Below is the histogram showing the waiting times of up to 100 time units. The average waiting time was identical for both simulations, 49.7 time units. However, the distribution differed quite a bit. The median (i.e., half of the parts were faster than this) was 36.1 time units for FIFO, and only 15.1 time units for LIFO. Most parts were much faster through the system in LIFO than in FIFO. You can also see this on the bars, where the blue LIFO bars are much more toward the left than the green FIFO bars. What is happening? I tell you that FIFO is so much better than LIFO, and yet this graph seems to indicate that LIFO is actually faster. Well, there is a crux.
The chart above is cut off at 100 time units. The full histogram is shown below. In average, FIFO and LIFO have the same mean waiting time. But if a lot of LIFO parts are much farther to the left than the FIFO parts, it means that some LIFO parts are far, FAR out on the right end of the scale. These are not many, but they have a much MUCH larger waiting time. In my simulation, the FIFO part with the worst waiting time was 268 time units in the system. The worst LIFO part was 3170 time units in the system, almost 12 times longer! The standard deviation of FIFO was 42.5 time units, but for LIFO it was 168.8 time units, a fourfold increase. In the graph below it is a bit hard to see, but there are quite a few LIFO instances of waiting times all the way out to 3170 time units. In academic terms, this LIFO histogram is a heavy-tailed distribution.
This is the real problem of LIFO. While on average it makes no difference between FIFO and LIFO, the worst parts of LIFO wait magnitudes longer than with FIFO. And, with a LIFO system, you cannot control this. It is really hard to plan lead times and buffer inventories if some parts arrive quickly, but others take forever to arrive.
Note this is different with prioritization. If you properly prioritize, then you do the same thing and your urgent parts arrive faster at the cost of your less urgent parts. However, with prioritization you control which part gets handled first. With LIFO it is pretty much random. Hence, use FIFO if you can. Avoid other sequences if possible, and stay away from LIFO!
Reduces Management Overhead
A second, smaller but also significant benefit is that FIFO reduced management overhead. If you have any sequence out of FIFO, someone needs to decide which part to make/ship next. That is effort, and also a potential for mistakes. If nobody does that, then the workers will merely pick the part that they like most (because it is the closest, the easiest to work with, the one with the largest bonus payment, …). With FIFO, the organization is easy. Simply take the next in line.
FIFO also helps with traceability. Full traceability requires giving every part its own serial number, and tracking it in a database across its way along the value stream is most stringent—but also requires the most effort. A FIFO is sort of a traceability light. Within a few processes, if there is FIFO it can be reconstructed which part was where if you find, e.g., a defect. Following up on that defect and trying to narrow down the root cause is much easier if you have the original sequence of parts. It is still work, but it is possible. If the sequence is out of order, tracing back the error to its cause will be much harder.
Note that it helps you in detecting the cause of the defects, but it does NOT help in detecting the defects earlier. This depends solely on how much work in progress you have, where less is better. FIFO and other sequences have the same mean waiting time, and only different fluctuations. If you have LIFO, you may detect some defects earlier, and some defects later, but in average it will be the same. As for how large this FIFO inventory should be, it depends on how many of your fluctuations you want to decouple. You can calculate this, but this is messy. You use my online calculator, or you can just use your best guess.
Even More Advantages
There are even more advantages of FIFO. If set up correctly, it is a clearly defined material flow. This makes the material flow easier and more efficient. As any material flow is also simultaneously an information flow, FIFO is also an information flow. Different from other sequences, it is an easier information flow. While other sequences need additional information on the sequence (i.e., “Which part is next?”), FIFO automatically includes this information. The next part is always the first in line! It is also easier to see, and can hence be part of visual management.
I have written a lot about FIFO already. Some of the links are already mentioned above. I, of course, have some basic theory on FIFO. Other posts are on strong and weak FIFO, or when NOT to use a FIFO. Overall, FIFO is a great approach, and unless there are strong reasons not to do FIFO, I would always use FIFO wherever possible. I hope this article motivated you to (continue to) use FIFO. Now, go out, get the FIFO flowing, and organize your industry!