TOC has its applications and is simple in principle to operate, but the focus on global bottleneck constraints leads to sub-optimal behavior when the bottlenecks stall or fill queues. A big problem is once you are clogging the bottleneck, upstream queues become progressively more clogged as well and restarts are a mess. Local queue constraints on pull systems (kanban is an example) give quicker constraint signals and smoother queue restarts. Reinerstsen's "Principles of Product Development Flow" has some great discussion of this
- every system has a bottleneck
- fixing things _after_ the bottleneck will have no effect
- fixing things _before_ the bottleneck will make the bottleneck worse
https://en.wikipedia.org/wiki/Theory_of_constraints