Desarrollo de Software
Esbelto
Juan Carlos Olivares Rojas
Orígenes
• 1800 - Partes 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 (Just in Time)
– Pull system
– Kanban card
• Autonomation (aka Jidoka, aka stop-the-line)
• Los que hacen son los que saben
• Lotes chicos
Desarrollo de Software Esbelto
• Mary y Tom Poppendieck han logrado
transferir los principios de la manufactura
esbelta al software.
• El entendimiento de ésta filosofía puede ser el
paso previo El entendimiento de ésta filosofía
puede ser el paso previo al uso de técnicas de
las llamadas Ágiles.
Desarrollo de Software Esbelto
• En una era donde ser esbelto es lo in ,
¿podemos poner a dieta nuestros
procesos de desarrollo de software?
• No existe una definición formal de
metodologías esbeltas simplemente se
usan los principios del pensamiento ágil.
Cada autor varía los principios manejados.
A continuación se muestran algunos
principios básicos.
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: 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
• Solución
– KISS
– Refactoring
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
Respetar 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
¿Preguntas?
Referencias
• Gabardini,
J.
(2009)
Lean
Software
Development. Facultad de Ingeniería – UBA,
Argentina
• Wikipedia Fundation, Software Esbelto,
http://www.wikipedia.org, Agosto 2009.
Descargar

BPMN