Lean Software Development Juan Gabardini 75.46 Administración y Control de Proyectos Informáticos II Facultad de Ingeniería - UBA
Orígenes 1800 - Partes intercambiables 1900 - Personas intercambiables Sin artesanos 1900 - Personas intercambiables Producción en masa 1960 – Toyota Production System Manejando la complejidad: JIT+Autonomation Sin stock y sin inspecciones 1990 - Lean
Lean JIT Autonomation (aka Jidoka, aka stop-the-line) Pull system Kanban card Autonomation (aka Jidoka, aka stop-the-line) Los que hacen son los que saben Lotes chicos
Familia Lean Toyota Production System Keiretsu Manufactura Operaciones Keiretsu Supply Chain Toyota Product Development System Product development Software development
Principios Eliminar el desperdicio Construir con calidad Crear conocimiento Postergar compromiso Entregas rápidas Repetar a las personas Optimizar el todo
Eliminar el desperdicio Tiempo entre pedido y entrega ¿Qué es desperdicio? Lo que no agrega valor Retraso en la entrega ¿Qué es valor? Ejemplos Stock: WIP, Requerimientos, Diseño, Bugs, … Funcionalidad no usada Mito: Especificación temprana reduce el desperdicio
Construir con calidad Inspección para prevenir o para detectar defectos Listas de bug: colas de WIP desperdicio Pruebas automatizadas antes que el código De aceptación Unitarias Mito: trabajo del tester es encontrar defectos
Hacerlo bien la primera vez Cuidado… El código cambia Mucho código es desperdicio Menos código, menos oportunidad de defectos YAGNI / KISS Refactoreo
Crear conocimiento No es posible Conocer las necesidades al inicio Diseñar sin implementar Desarrollo de producto como aprendizaje y mejora Del producto / negocio Del proceso Difundir el conocimiento! Mito: las predicciones crean predictibilidad
Postergar compromiso Tomar decisiones irreversibles ALAP Buscar soluciones reversibles Mito: Planificación es compromiso
Entregas rápidas Alta calidad Bajo costo Menos cambios Habilita a pruebas de concepto y mayor conocimiento del cliente Mito: Apuro causa desperdicio
Repetar a las personas Líderes emprendedores Expertos técnicos Control basado en objetivos Mito: existe la mejor manera de hacerlo
Optimizar el todo Ejemplos: El cliente quiere algo para ayer Testing está sobrecargado Las cadenas de valor que cruzan entre empresas pueden ser costosas Mito: optimizar por descomposición
Bibliografía Mary & Tom Poppendieck Alan Shalloway - NetObjectives http://www.poppendieck.com/ Implementing Lean Software Development: From Concept to Cash, The Addison-Wesley Signature Series. Alan Shalloway - NetObjectives http://www.netobjectives.com/files/An%20Agile%20Developers%20Guide%20to%20Lean%20Software%20Development.pdf