Jidoka es uno de los elementos básicos del Sistema de Producción de Toyota (TPS). Jidoka significa "automatización con un toque humano". El término viene del Telar Automático Toyota Tipo-G que se detenía automáticamente cuando detectaba un problema, como ser cuando se rompia el hilo. De esta manera, el operador no tenía que estar controlando constantemente a la máquina, y podía intervenir rápidamente cuando alguno de los telares detectaba y señalizaba un problema.
Este mismo principio puede aplicarse a cualquier línea de producción. Cuando una máquina o, más precisamente, un empleado detecta un problema, detienen la línea y señalizan el problema usando un tablero Andon. Todos pueden ver que hay un problema. El líder del equipo puede ayudar a diagnosticar el problema y resolverlo.
Mientras más rápido se detecte al problema, más facil será solucionarlo y menor será el impacto. Por lo tanto, una de las partes más importantes de Lean es ser capaz de detectar problemas, avisarlos rápidamente, analizarlos y resolverlos.
¿Podemos aplicar este principio de líneas de producción al desarrollo de software? Por supuesto.
¿Cómo podemos detectar problemas y defectos? Una buena forma es tener una suite completa de pruebas unitarias e integración continua. Cada vez que subimos cambios al repositorio de código, el servidor de integración continua nos avisa si rompimos algo. El servidor de integración continua es nuestro tablero de Andon. Patrick Debois tiene muchos ejemplos de Andon en su colección Visu-Wall.
También se puede tener una suite de pruebas funcionales automatizadas, pruebas de rendimiento, analizadores de código y otras herramientas que se ejecutan en el servidor de integración continua.
Otra excelente forma de implementar Jidoka es con buenos testers que realmente estén involucrados desde el inicio del proyecto y hagan un seguimiento de los entregables. Los verdaderos buenos testers nos pueden decir con claridad lo que está mal, y como reproducir el problema.
En resumen, vamos a estar implementando Jidoka siempre y cuando tengamos una forma rápida y confiable de saber cuando algo está mal.
¿Eso es todo? Por supuesto que no. No alcanza con detectar problemas, además tenemos que hacer algo al respecto.
¿Se rompio el build en integración continua? No subí todos los cambios, no es mi culpa.
¿Cómo que "no funciona"? ¡En mi máquna funciona bien!
¿Quién lo dice? Ah, José... es muy negativo, siempre encuentra algún problema en cualquier cosa.
¿Escucharon frases como estas alguna vez? No alcanza con detectar problemas, también tenemos que hacer algo al respecto. La única respuesta correcta hacia alguien que nos informa de un problema es "¡Gracias!". Y después el equipo corrije el problema.
Cuando correjimos el problema, tenemos la mitad del trabajo terminado. La otra mitad es preguntarnos porqué nuestro sistema de Jidoka actual no detectó al problema a tiempo:
En IT, el cuello de botella más grande es el aprendizaje. Al reflexionar sobre nuestros problemas, aprendemos a detectarlos antes.
Resultaría facil implementar Jidoka si tan sólo fuera instalar herrramientas y producedimientos. Pero implementar Jidoka es muy dificil, porque involucra:
Implementar Ágil o Lean es dificil. Implementar todos los Valores Ágiles es dificil.
Y ustedes, ¿ya hicieron algún problema visible? ¿agradecieron hace poco a algún tester? ¿mejoraron sus herramientas de Jidoka ultimamente? Y si no, ¿están haciendo sólo la mitad del trabajo?