The two pillars of lean are just-in-time, and jidoka. Today we’ll look for jidoka in software development.
What is jidoka
Often translated as “automation with a human touch”, some people also use the word autonomation. The principle is rather simple. When designing a process, find opportunities for the process to self identify errors and stop so that the problems can be fixed at the source. With this in place, human attention can be focused on either finding and eliminating root cause for the error or improving the task itself. This means we’re investing the human mind where it will do the most good.
Perhaps the most common example of jidoka is the looms made by Sakichi Toyoda. These had the ability to detect thread breakages and stop. This meant that humans could then intervene to fix the issue and let the loom resume. Until there was a break, the advanced looms could be monitored, with many looms sharing one operator. This was a vast departure for it’s time, when any one loom required a great deal of energy from a single dedicated operator, whom may fail to notice thread breakages due to the many other aspects of weaving that required their attention.
Software & Agile
The parallel in software delivery is hopefully rather obvious; automated testing.
This can be in the form of unit tests, integration tests, or most anything else that will allow human creativity to be applied to novel situations and the automation can be left to handle the monotonous work of simple testing.
If our QA team members automate a common test, they can now spend their time looking for more subtle errors, problematic interfaces for humans, or other validation. Just like the loom operator, that test gives them the ability to use their human mind on more valuable things that a machine cannot so easily do (like building more automated tests).