Fun with Kanban, episode 1
Par Yves le jeudi 21 février 2019, 18:47 - Lien permanent
(yes, the title is a nod at something… guess what!)
You are aboard a space-ship, and you crash on the nearby planet after hitting an asteroid. Thus begins the tale of Blackvoxel. From the wreckage, you salvage a base machine, and you are still under the protection of your space-suit. Much like Matt Damon in The Martian, you are alone, and you have to make do with your environment and the salvaged equipment…
Of course, with a few natural resources, some things can be built, just like on Earth, where working with rock, wood, or plants can lead to useful artefacts. Still, to produce more complex items, you soon require better technology, and more complex materials, as well as better tools.
That is why one of the first missions in the game is melting ores using a melting furnace (which you have to build), and thus obtain pure materials or alloys.
Here is the structure of a “typical” (at least, this is the design I created and used…) early-metallurgy installation, with first a view of an intermediate building step, so that you can see below the top layer (colours are here only to denote depth — Y-axis in the game):
This is rather simple to use: you have several input stocks on the right, one output stock on the left, and optionally water-cooling (above and below): the water falling from the top stock, and the excess water getting drained to the bottom stock.
So… What about Kanban?
The top-word in the above description is “stock”: in the pictured example, there are no less than 5 different storage areas. Considering for example the melting of iron, that would be 1º iron ore (input), 2º carbon ore (input), 3º iron (output), 4º cooling water (input), 5º excess water (output). This is a typical production system.
The consequence of having these stocks, is that:
- you have to supervise each stock level;
- you have to find by yourself the right organisation, to transport at the right time the right materials from their storage areas to the various storages where they are needed as input materials;
- the output material is automatically produced until one of the input materials is exhausted, whereas this input material could have had a better use at producing another, more-needed, output material…
As production centres multiply, the number of stocks becomes overwhelming!
Try as I might, using only the game’s low technology, I was not able to design a working mechanism, that would fetch from one output storage, and transport to several input storages. But then the handbook taught me about the “optical fibre” (read the description; it’s worth it), and I had the Kanban revelation!
A key indicator of the success of production scheduling based on demand, pushing, is the ability of the demand-forecast to create such a push [my note: see problem #2 above]. Kanban, by contrast, is part of an approach where the pull comes from demand and products are made to order. Re-supply or production is determined according to customer orders.
A better production system
Here is how my new metallurgy installations are done, with first a view of an intermediate building step, so that you can see below the top layers:
There is more at play here than previously. In short:
- the green translucent stuff is “optical fibre”, which can be viewed as a zero-capacity FIFO with automatic distribution of absorbed items among the consumers;
- the red dots are enqueuing areas and are always preceded by a “dematerializer voxel” (i.e. block), or a pump for a liquid (water for instance);
- the green dots are dequeuing areas and are always followed by a “materializer voxel”;
- the yellow-and-blue block is a deflector/splitter, necessary here because the way from the red-dot block to the green-dot block is not a straight line;
- the translucent blue material is water, which I show here to illustrate the need for confining blocks.
Whereas before, water-cooling and ore-melting were two separate sub-processes, they are merged here. The “sequencer” takes 3 inputs (including water), which are output towards the melting furnace in the defined sequence: first the raw ores necessary to produce 1 unit of melted material, then 1 unit of water. The melting furnace absorbs the raw ores, which results in a unit of melted metal on the other side, and then the pump sends the unit of water on top of it, to cool it down.
Now, the important part is, that:
- the red dot on the right side won’t absorb the produced-and-cooled material unless there is room at the other end of the optical fibre to drop the absorbed unit;
- the melting furnace won’t absorb all the raw ores unless there is room on the other side to pour the melted material;
- the sequencer won’t absorb the needed inputs for the programmed sequence unless the previous run of the sequence has ended;
- the green dots on the left side won’t pull new inputs unless there is room to drop them.
The overall situation is thus that inputs are pulled and processed only when the output product has been used. Said otherwise:
the pull comes from demand and products are made to order. Re-supply or production is determined according to customer orders
So, let us look back on the drawbacks of the former system:
… supervise each stock level: not any more, since there are no significant stocks left;
… transport at the right time the right materials … to the various storages where they are needed: no more, because materials are automatically pulled to their destination when needed;
… output material … automatically produced until … input materials … exhausted, whereas this input … could have had a better use: an input material is only used to create a product for which there is immediate demand, which in turn only happens because at the end of the chain a final product as been explicitly requested.
Here is the whole resulting factory, with raw inputs on the left, and various outputs everywhere (look on top of the pillars). If you think it is a mess… well… it is worse underground
The production system described above does not work for alloys, because alloys need to be complete (all base metals are present), and need time to become homogeneous, before cooling can be done!
Guess what? Kanban will save us again! That will be for the next episode.