To understand Lean Manufacturing, first read Ohno’s Toyota Production System, and May’s The Elegant Solution. Ohno describes a single, achievable goal – to shrink the time lapsed between the moment the customer orders a product, and the moment they receive it. He describes the framework of TPS: single piece flow, minimal setups, mistake-proof processes and kanban (visual) controls. These processes work well in repetitive manufacturing environments, but not so well in an engineered-to-order setting.
Then, at the behest of my favorite college professor, I read May’s book. One sentence in that book changed my entire approach to operations management in non-repetitive environments: “Delay on one component stops production on the others.”
I was working in low volume, configured / engineered industrial equipment plants at the time, and we were scheduling everything incorrectly. We were working on completing everything according to customer need date. Our finite scheduling engine told us the need date and the estimated completion date, and the difference between them was called Gap. Our job was to “Mind the Gap.” But we had no idea if delay on one component should stop production on the others. Or which component was delaying the others. We could not measure how far off the critical path any component or activity was.
So we used the “Critical Path Method” to make our system smarter and provide this information. Then, we wondered what to do with this information. Eventually, we realized the application of this idea was simple – don’t release anything for work unless it is near the critical path, and the work center has the capacity to begin the work immediately. This is like saying, “Unless my internal customer can use the product soon, I won’t process it.” Conversely, once a work order is released, do not allow the order to go idle. Process the released work on a first-in, first-out basis.
In this way, a factory, no matter its condition, can begin to sync up all of its activities, and watch for bottlenecks. Then, remove waste from the bottlenecked processes, or add resources, to bring the site into a level-loaded state and achieve continuous flow.