Limiting Work in Progress (2020)
truemped.github.io
truemped.github.io
This is a well-understood concept in factories. Not enough people today have ever been in a factory.
It's a classic problem with manufacturing plants that make a large number of different items. There, it's obvious - you have racks or piles or bins of partially finished product sitting around. Yet you can't avoid some of that, because machines have setup and teardown times. So you make a thousand stampings of thing A, which then wait for the next step. If you only made a lot of 100, there would be less work in progress, but more time the stamping machine wasn't running while the dies were changed. If you made a lot of 10,000, the stamping machine's efficiency would be higher but you'd have more work in progress. So, what's the optimal lot size?
This is a classic business school problem.[1] There's a whole theory of this, dating back to 1913.
Apple is famous for having botched this with their Macintosh factory in Fremont.[2] They centered their factory around an automated storage and retrieval system. This meant they could buffer a lot of work in process without making a visible mess. Wrong approach.
This article [3] suggests that Apple simply didn't have enough demand to make the factory successful. Success would have required additional automation such as adding pick and place for the larger components, automating the acceptance testing.
[3]: https://www.mercurynews.com/2018/12/17/steve-jobs-wanted-to-...
As it explained through a fictional story it's an easy read and a great audiobook.
The Goal by Eliyahu M. Goldratt
I didn't fully grasp the problem of too much WIP until I read that book.
At its core, Factorio is about turning a few base materials into useful things, with many intermediate parts. Everything you build, then, is eventually competing with those few basic as materials.
The first time I played, I would see some base part being produced faster than it was consumed, and my thought was I should store the excess product, so that the factories creating those products would not back up and stop functioning. This would let me have a buffer, and keep those intermediate material producing machines running at full capacity.
Now that I had this buffer of intermediate materials that was growing, I would try to add more factories that used those materials for the next intermediate material.
However, the next intermediate material would also need other intermediate materials, so I would have to expand the number of factories producing raw materials to feed those other producers. However, additional raw materials were also consumed by the factories that were ALREADY overproducing. This lead to an attempt at a delicate balancing act, to get the number of factories for each type exactly right. I would add some to one material, then have to add more to another. It was impossible.
What I finally learned is that I had to let the factories over producing backup and stop producing. That way, more raw materials would be leftover for the things I was short on. This back pressure allowed the factory to self balance.
Increasing the buffer on something is only useful if the usage is highly variable. Then, you need a small buffer but not too big of one.
We can perhaps put backpressure on time-sink activities, such as endless scrolling Netflix, and open up those time resources for creative hobbies. This essentially boils down to replacing a consumer habit/mindset with one of creativity and self-expression.
Similarly, living in a small apartment and not paying for a storage unit can put backpressure on material acquisitions.
The spatial organization of the workshops, raw material stockpiles, output bins, consumption points, and transit time between them must be tuned, otherwise the settlement collapses. The settlement always collapses, but the extrapolation of entropy is almost the point (and entertainment) of the game.
You are right though: go read The Goal everyone!
Quotes: "How can I find out what the ideal WIP limit is for the system I am in?" "After a few iterations and having recorded the learnings in retrospectives, we collectively decided to increase the WIP."
This articles also references: Why limiting work-in-progress works. https://lethain.com/limiting-wip/
Discussed previously https://news.ycombinator.com/item?id=19186456
Assuming your work is productive in the first place, zero WIP would be bad.
One WIP, known as "single piece flow" is actually the ultimate optimisation in production. So from that perspective, optimising and minimising is the same thing.
[1] Principle #6 – Visualize and limit WIP, reduce batch sizes, and manage queue lengths - https://www.scaledagileframework.com/visualize-and-limit-wip...
[2] Little’s Law - https://en.wikipedia.org/wiki/Little%27s_law
Totally agree with your point, especially funny how author rediscovers that "Limiting work-in-progress is the tool every manager and leader needs to have in their tool belt. This is the one super power that over time will allow moving faster to the desired goal".
Why do literature review.
When you have less simultaneous work you get done faster, which means you make decisions based on less old information.
Imagine trying to... I don't know, play soccer where your body movements have a five-second delay. It'll feel awful because by the time you decide to move your body you know it's going to be too late for any detailed knowledge so you'll have to make do with some very primitive heuristics like "flail in the direction of the ball and hope to get lucky".
That's what too much WIP is. Limiting it is starting to move and react in real time to changes.
An important point not always noticed is that restricting WIP improves both flow and quality in organizations. I see flow and quality as “mutually co-arising” attributes of thoughtful management of organizations.
I also like the work done by Dave Snowden with his Cynefin framework. Anyone else share this view?