Dentro de TPS (Toyota Production System), Poka-Yoke es un dispositivo físico de control que se activa automáticamente cuando hay algún error o defecto en el proceso de producción, siendo que ese accionamiento suele ser hecho por dos razones:
- Para control, porque cuando se activa, la línea de producción se detiene automáticamente de modo que el problema detectado pueda ser resuelto.
- Para advertencia, sólo usando algún tipo de alarma visual para señalizar a las personas implicadas, algo que necesita ser revisado para evitar un problema mayor.
Observe que esta forma de control de calidad sobre la base de la inspección, es uno de los pilares del modelo productivo sobre la base del pensamiento Lean y el ciclo PDCA (Plan, Do, Check e Action), por eso, como las metodologías ágiles favorecen un buen comienzo para la construcción de este estado de pensamiento Lean y para obtener el ciclo PDCA en proyectos de desarrollo de software, es importante que podamos identificar cuales prácticas ágiles, se pueden utilizar como una forma de Poka-Yoke.
Así que a continuación se enumeran algunas prácticas e ideas que creo que están alineados con el concepto de Poka-Yoke, pero creo que esta conjetura está viva, y cada uno puede observar la implementación más válida para su contexto.
- TDD (Test-Driven Development) - Tal vez esta es la práctica de mayor aplicación como Poka-Yoke por la comunidad ágil mundial, porque en esencia, con TDD se puede capturar cuando se produce un error en el código, detener el desarrollo, corregir el error y actualizar el test unitario a fin de que pueda prevenir futuros casos de este error.
- Integración Contínua - Esto se suma a TDD y casi se puede decir que van de la mano. Son mecanismos de builds integrados que usan los test (Unitarios, Componentes, Integración y los funcionales) generando notificaciones a las partes involucradas en el proyecto, com informes diversos (Test, Cobertura, CheckStyle, PMD, JavaDoc, etc) que son de extrema importancia en el contexto de la calidad del producto.
- Inspección de Código - Otra forma que también creo que es una importante aplicación de Poka-Yoke, es la inspección de código entre los miembros del equipo, que a pesar de ser basada en actitudes, es una interesante manera de verificar, antes de promover una funcionalidad al Build que será entregado, si el código producido, está dentro de los patrones elegidos para el proyecto, que está siguiendo las mejores prácticas, que se lleva a cabo en la forma más simple posible, o si está de acuerdo con los tests previamente diseñados para dicha funcionalidad.
- Gestión de Impedimentos a través de Kanban - Puede que no sea un mecanismo con la finalidad de parar un Lead Time de un proyecto, sin embargo, la actitud de expresar impedimento visualmente a través de un cuadro informativo, tiene un muy fuerte impacto psicológico en el equipo, de modo que sirve como una advertencia de que algo debe resolverse dentro del proyecto, antes de que se convierta en un problema más grave.
- Feedback Continuo - Para completar esta breve lista, creo que a través de reuniones como la Revisión del Sprint o la Retrospectiva del Sprint, podemos tener imágenes muy nítidas de cómo está la calidad del producto que están desarrollando y de cuán eficiente y eficaz es nuestro proceso de desarrollo, por lo tanto, como resultado de esa imagen, podemos crear un Kaizen, que es otro concepto de Toyota, que trabaja con la aplicación de los puntos de mejora continua en el producto o proceso. Incluso a través de esta retroalimentación continua, también podemos ejercer el Hansei, otra idea muy importante en la filosofía japonesa (Aka Toyota), que consiste en hacer una profunda auto-reflexión para determinar cuáles son los fracasos y los puntos a mejorar en un proceso o un producto.
Terminamos este texto recordando que NO se trata de un manual paso a paso de la aplicación de un Poka-Yoke en su proceso, sino que es una pequeña semilla para provocar la reflexión sobre cómo puede utilizar los conceptos de Pensamiento Lean, para mejorar su forma de trabajar en desarrollo de software y tener importantes beneficios en la calidad en el desarrollo de productos.
El pensamiento Lean se basa en hacer "más" con "menos", es decir en aportar más valor utilizando menos recursos. Para ello se utilizarán una serie de herramientas que permitirán gestionar la organización de manera más efectiva, eliminando las operaciones sin valor añadido y centrando la actividad en aquello que el cliente percibe como "valor" del producto o servicio que demanda.