Lean Software Development es una adaptación de los principios Lean de Toyota al desarrollo de software. Se enfoca en eliminar desperdicios y entregar valor al cliente de forma rápida y eficiente. Siguiendo los siete principios Lean, incluyendo identificar y eliminar desperdicios, tomar decisiones tarde, entregar rápido y empoderar al equipo.
2. Lean Software Development
¿Qué es Lean?
Lean Software Development es una adaptación del “Lean
Manufacturing” de Toyota al desarrollo software ágil. Lean
Software Development es una metodología ágil desarrollada por
los mencionados Mary and Tom Poppendieck.
Dicha metodología, como bien dice su nombre, contempla los
principios Lean de Toyota.
Podemos encontrar una adaptación al desarrollo software de
los siete principios Lean,el libro de de Mary y Tom
Poppendieck, dedica un capítulo a cada principio Lean,
la metodología tiene como objetivo eliminar desperdicios,
seleccionando aquellas características que realmente aportan
valor, y da especial importancia a la velocidad y la eficiencia.
3. Lean Software Development
Sistema de producción de Toyota - 1948 - 1975
Desarrollado por Taiichi Ohno, Shigeo Shingo y Eiji Toyoda
Toyoda - produce automóviles para el público en general de Japón.
Muy similar a Henry Ford - 30 años después
utilizó la producción de JIT de Ford y W Edwards Deming
4. Lean Software Development
El artífice del Lean, quien introdujo esta nueva manera de fabricar en Toyota,
fue
Taiichi Ohno (1912 – 1990), cuya estrategia se fundamentó en tres bases:
– Construir sólo lo necesario.
– Eliminar todo aquello que no añade valor.
– Parar si algo no va bien (lo que está relacionado con el principio de cero
defectos).
5. Lean Software Development
Además, conviene destacar que el Lean incluye siete importantes principios,
son los siguientes:
Eliminar desperdicios (Eliminating Waste): hacer desaparecer del proceso y el
producto todo aquello que no aporta valor al cliente.
Amplificar el aprendizaje (Amplifying Learning): ha de fomentarse y
facilitarse, reconociendo el autor la naturaleza predominantemente
intelectual de la producción de software y la importancia del aprendizaje
para mejorar los resultados.
Decidir lo más tarde posible (Deciding as Late as Possible): dada la frecuente
incertidumbre que rodea la toma de requisitos, lo más aconsejable es retrasar
las decisiones tratando de tomarlas con la mayor cantidad de información
posible, y siempre adoptando una aptitud previsora ante la certeza del
cambio
6. Lean Software Development
Entrega lo más rápido posible (Delivering as Fast as Possible): consecuencia de
lo anterior, es necesario disponer de medios que permitan, una vez tomada
una decisión, materializarla, sin sacrificar la calidad.
Capacitar, potenciar, al equipo (Empowering the Team):el empowerment,
dotar a aquellos en los que reside el conocimiento y realizan el trabajo del
liderazgo suficiente para tomar decisiones y realizarlo, evitando pasos
adicionales de aceptación a otras instancias que obstaculizan el flujo normal
de actividad.
7. Lean Software Development
Construir con integridad (Building Integrity In): integridad conceptual, dado
que debe responder a una necesidad del cliente, éste debe percibir el
producto como algo coherente, donde los requisitos a los que da solución se
observan como un todo cohesionado armónicamente. Además, se necesita
integridad técnica: una arquitectura coherente, usable, que responde a su
cometido y a la que se puede dar mantenimiento, adaptar y ampliar
Ver el todo (Seeing the Whole): se debe evitar la tendencia a realizar mejoras
locales a favor de un enfoque global.
8. Lean Software Development
Y en lo que refiere al primer punto, los desperdicios, el Lean habla de que un
desperdicio es todo aquello innecesario, todo añadido del que se puede
prescindir, donde se destacan los siguientes siete siguientes desperdicios:
Sobreproducción
Tiempo de espera
Transporte
Inventarios innecesarios
Transportes innecesarios
Defectos
Sobre procesamiento, o procesos inadecuados
9. Lean Software Development
En la última edición del libro Lean Thinking se añadió este octavo
desperdicio. el talento humano (desperdiciando la creatividad)
El desarrollo ágil es un paraguas que incluye varias metodologías (Scrum, XP,
FDD, etc.). Todas ellas tienen en común que siguen en mayor o menor medida
los valores y principios del manifiesto ágil.
Hay incluso quien afirma que las ideas de Lean y las ideas agiles son tan
similares que se dice que aplicar la filosofía ágil es aplicar la filosofía Lean. Y
un proceso Lean, es un proceso ágil.