Lean Management, surgida a partir de Toyota Production System, es una mezcla de filosofía y metodología que busca la eliminación de cualquier tipo de exceso, desperdicio o ‘muda‘, como se dice originalmente en japonés, en procesos de negocio, en busca de la máxima eficiencia. Inicialmente surgida en el ámbito de la fabricación, cada vez se extiende más a todo tipo de procesos.
Podríamos entender Lean management como una forma de mejora continua. Pero Lean management ha influido también en las metodologías de gestión de proyectos software y, en concreto, en las metodologías agile.
Y cuando pensamos en el mundo del software ¿cuáles son los desperdicios, las ineficiencias, a eliminar en el desarrollo de software?
En su libro ‘Going Agile‘, Gloria J. Miller asimila el desperdicio a una actividad que utiliza recursos pero no genera un beneficio. Y al respecto cita los trabajos de Mary Poppendiek y Tom Poppendiek quienes nos ofrecen una tipificación del desperdicio en desarrollo software.
Estos autores identifican siete tipos de desperdicio. Son éstos:
- Cambios de tarea: el trabajo en diferentes proyectos o actividades hace perder tiempo cuando el paso de uno a otro implica un cambio de contexto.
- Funcionalidades extra: funcionalidades no requeridas pero que se consideran interesantes (‘nice to have‘).
- Movimiento: Movimiento de comunicaciones y documentos.
- Esperas: esperas a revisiones o aprobaciones.
- Trabajo completado sólo parcialmente: trabajo completado pèro no terminado.
- Procesos extra: trabajo adicional que no añade valor.
- Defectos: software o documentación defectuosos que precisan corrección.
Mary y Tom Poppendiek |
Quizá esta clasificación adolece de cierta generalidad, cierta falta de concreción, pero aún así creo proporciona pistas valiosas o áreas donde enfocar el esfuerzo de mejora y eficiencia. En una disciplina que, en mi opinión, tiene aún más de artesanía que de ingeniería, unas ciertas recetas para su optimización y su eficiencia, son siempre de agradecer.