Lean Software Development
En este artículo trataremos de dar respuesta a una serie de preguntas sobre el Lean Software Development, con el fin de dar claridad a este paradigma que lleva siendo utilizado desde los años 40 y que en la última década se ha incorporado al desarrollo software.
¿Qué es el Lean?
Lean es un adjetivo que, añadido a un proceso de producción, busca que este goce de un flujo en el que se consiga el mayor valor del producto con las mínimas pérdidas posibles.
En la gestión Lean el valor del producto es muy importante. Este viene determinado por el cliente y no por el productor y, por lo tanto, cualquier gasto añadido en el proceso debe justificarse como un aumento del valor del producto. El negocio Lean se concentra en eliminar actividades dentro del proceso que no contribuyan a añadir valor al producto como: el exceso de producción, las esperas o la fabricación de productos defectuosos.
Este tipo de administración tiene su origen en el contexto manufacturing, nacido en el mundo de la industria, en el sistema de producción de la empresa Toyota. Este sistema desarrolló las primeras bases del Lean Manufacturing durante los años 40, aunque no fue hasta los años 90 cuando se acuñó el término. Una de sus piedras angulares es producir materia de primera calidad sin apenas necesidad de arreglos o procesos posteriores a la creación del producto, detectando defectos de manera inmediata y en etapas tempranas, para que estos no vuelvan a suponer un problema.
¿Cuáles son los principios básicos del Lean?
Los principios básicos del Lean serían, por lo tanto:
- Satisfacer al cliente como prioridad número uno.
- Proporcionar siempre el mayor valor al dinero, eliminando actividades que supongan gastos innecesarios o que no aumenten el valor de producto.
- El éxito depende de la participación activa del cliente, que hará de guía en la definición del valor del producto.
- Cada proyecto de desarrollo Lean supone un esfuerzo de equipo.
- Todo es variable.
- Dominio de soluciones.
- Completar procesos, evitando acumular tareas parcialmente finalizadas.
- Solucionar parte del problema hoy es preferible a planificar la solución del problema para mañana.
- El minimalismo es esencial.
- Determinar la tecnología que es una necesidad.
- El crecimiento del producto supone un crecimiento de sus características.
- No forzar los límites del Lean Development.
¿Cómo aplicar Lean en el desarrollo software?
Como aplicar los principios anteriores al negocio software es una pregunta cuya respuesta presenta variaciones dependiendo de los autores, pero con un claro denominador común, la eliminación de gastos.
En un negocio software con una gestión Lean, se busca igualmente conocer el valor del producto, además de encontrar y eliminar los errores. En este caso hablaríamos por ejemplo de errores de código, que deberían ser detectados lo más rápido posible y se deberían proponer soluciones para evitar que estos errores se propaguen o repitan. En resumen, el concepto de gasto o errores en la producción dentro el desarrollo software se traduciría del siguiente modo:
Lean Manufacturing | Lean Software Development |
Sobreproducción | Características o código extra |
Esperas | Retrasos |
Trasporte | Cambio de tareas |
Sobre procesamiento o procesamiento incorrecto | Procesos extra |
Exceso de inventario | Trabajo parcialmente realizado |
Movimiento | Movimiento |
Hacer productos defectuosos | Defectos en el producto |
No usar la creatividad de los empleados | No usar la creatividad de los empleados |
La aplicación del Lean a productos software se conseguiría mediante prácticas como la disponibilidad de prototipos, el despliegue de funciones de calidad o la integración continua.
¿Qué complementa Lean al desarrollo software?
Como modelo de gestión, el Lean hace propensa la garantía de que se superarán los siguientes principios relevantes dentro del desarrollo software:
- Eliminar gastos innecesarios.
- Añadir calidad al producto.
- Crear conocimiento.
- Agilizar las entregas.
- Respetar a las personas y lo que pueden aportar al proceso.
- Usar una visión económica del proceso.
- Gestionar las tareas en cola.
- Explotar la variabilidad.
- Llevar a cabo restricciones del trabajo en proceso o no finalizado.
- Controlar que las actividades que conforman el proceso fluyen adecuadamente.
- Practicar feedback.
- Favorecer la colaboratividad entre trabajadores.
Conclusiones
En definitiva, garantizar que el trabajo se está realizando con el fin de satisfacer al cliente con un producto de calidad, sin excederse en plazos o en características innecesarias, y eliminando actividades que supongan un gasto y no añadan valor a nuestro producto; todo esto promoviendo el trabajo en equipo y la reducción de tareas en cola.