Post on 03-Jul-2015
description
DESARROLLO ÁGILPrincipios y Prácticas
ABOUT MEVPoE & Co-Founder Welcu Inc.
Estudiante IngenieríaMiembro de ∞ comunidades
@sagmorseba@welcu.com
MOTIVACIÓN
• ¿Cómo lograr que mi equipo haga un buen trabajo y a la vez lo “pase bien”?
• Hay dos tipos de trabajo• Repetir una receta conocida: “manufactura”• Crear un nuevo producto
METODOLOGÍAS
Team
wor
k M
anag
emen
t Cyc
le
Burn down Charts
Task Board
Scrum Master Role
Daily Scrum Meeting
Sprint Planning Meeting
SCRUMAGILE
FRAMEWORK
Valu
e O
rient
ed
Man
agem
ent C
ycle
Release Planning Meeting
ReleaseProduct
Owner Role
Development
Sprint Retrospective MeetingScrum Scoreboard
Product Backlog
Tasks
agustin.villena@chileagil.cl
Team
wor
k M
anag
emen
t Cyc
le
Team
Dev
elop
men
t
Qua
lity
Orie
nted
In
crem
enta
l Dev
elop
men
t Cy
cle Continuous
IntegrationCode Standards
Collective Code Ownership
Pair Programming(+ Move people
around)
Simple Design
Refactoring
Test Driven Development
No Overtime
Tracking / Informative Workspace
Coaching
Stand Up Meeting
Iteration Planning
EXTREME PROGRAMMING
AGILE FRAMEWORK Va
lue
Orie
nted
M
anag
emen
t Cyc
le
Planning Game
Acceptance Tests
Small Releases
On Site Customer(One team)
Development
Definition Validation
User Stories
Tasks
agustin.villena@chileagil.cl
PROPUESTA: LEAN THINKING• Inspirado en el “Conocimiento Profundo” y los “14 puntos” de W. Edwards Deming
Manufactura• Toyota Production System
Desarrollo Nuevos Productos• Toyota Product Development System
LEAN SOFTWARE DEVELOPMENT• Mary y Tom Poppendieck,
“Lean Software Development”, 2003• Define las bases teóricas de las
metodologías ágiles, a partir del lean thinking• Filosofía de gestión inspirada en el Toyota Product
Development System
HIPÓTESIS DE LEAN SOFTWARE DEVELOPMENT
• Existe un conjunto simple de principios que, al ser seguidos por un equipo de desarrollo de nuevo producto, genera un comportamiento auto-organizado
AUTO-ORGANIZACIÓN
• Pocos principios fundamentales, que apoyan la toma de decisiones en terreno • Al compartir los principios, el equipo se auto-
organiza• Base para equipos de
Alto Rendimiento
LA VIDA EMERGE EN EL FILO DEL CAOSInflexibilidad Caos
Empoderamiento Alineamiento+ atribuciones+ confianza
+ valores + principios
Filo del Caos
Sistemas Adaptativos Complejos
¿CÓMO SE ORGANIZAN LAS HORMIGAS PARA BUSCAR ALIMENTO?
• ¿Así?
¿CÓMO SE ORGANIZAN LAS HORMIGAS PARA BUSCAR ALIMENTO?
• Dos reglas simples• Marcar el camino
• De ida • De vuelta
• Seguir el camino con más marcas
• Reglas simples que inducen un comportamiento auto-organizado
PRINCIPIOS Y PRÁCTICAS• Prácticas Ágiles• Test Driven Development• Planning Game, • Pair Programming, • etc.
• Ellas se generan a partir de principios, • sobre las que están basados
Principios
Eliminar Desperdicio
s
Crear Conocimient
o
Calidad Intrínseca
Diferir el
compromiso(hasta el último
momento responsable)
Entregar rápido
Respetar a las
personas
Optimizar el todo
PRINCIPIOS DE LEAN SOFTWARE DEVELOPMENT
EJEMPLOS DE APLICACIÓN DE PRINCIPIOS LEAN
CURVA DE VALOR DE UN PROYECTO
• Si diferimos el compromiso hasta el último momento responsable, creamos conocimiento y entregamos rápido, la curva de valor/aprendizaje de un proyecto cambiará así
¿CÓMO TENDRÍAMOS QUE TRAZAR LAS SENDAS PEATONALES SOBRE EL CÉSPED DE UN CAMPUS?
• ¡No trazar ningún sendero!• ¡Al final de año las
partes más gastadas nos indicarán las sendas a pavimentar!
• Principio: • Diferir compromiso
hasta el último momento responsable http://sivers.org/walkways
http://www.uwyo.edu/tour/Prexy.asp
+ RAPIDO CON LEAN
¿DÓNDE TENDREMOS UN TRÁFICO PROMEDIO MÁS RÁPIDO?
• ¿En una carretera usada por autos?
Ojo:En las carreteras los accidentes suelen
suceder
¿DÓNDE TENDREMOS UN TRÁFICO PROMEDIO MÁS RÁPIDO?
• ¿Una carretera semi-llena de autos?
¿CÓMO SE LLAMA A UN LUGAR LLENO DE AUTOS?
Un Estacionamiento
EN RESUMENTIEMPO DE PROCESO V/S
TAMAÑO DE LOTE V/S % DE OCUPACIÓN
Fuente: Lean Software Development: An Agile Toolkit,
Mary y Tom Poppendieck, 2003
ESTIMANDO EL TAMAÑO ÓPTIMO DEL LOTETamaño óptimo de lote
Costo
Tamaño del lote
Costo de Mantención
Costo TotalTamaño
óptimo
Costo de Transacción
Zona óptimaaproximada
TAMAÑO LOTE ÓPTIMO ESTIMADO => PRINCIPIO LEAN: “ENTREGAR
• Cada incremento de tiempo debe generar valor apreciable para el cliente• Minimun
MarketableFeature
• Se opone a la división por actividades del modelo waterfall
CÓMO GENERAR LOTES ÓPTIMOS EN PROYECTOS DE SOFTWARE
• Analizando el problema de negocio para priorizar• Invertir tiempo de ingeniería para lograr
desacoplamiento y establecer avances incrementales de valor (MMFs)• Y así será más fácil adaptarse a los cambios
EFECTO DE LA MULTITAREA EN LA PRODUCTIVIDAD
• La productividad decrece cuando se asignan más de dos tareas en Trabajo en Curso • (WIP: Work In Process)
• Productividad entendida como porcentaje del tiempo dedicado a agregar valor
• => Debemos limitar la multitarea
¿CUÁNDO SE DEBE CREAR LA CALIDAD?
• La calidad debe construirse junto con el sistema. • ¡No se puede agregar como un barniz final!
• Los criterios de calidad funcional los debe definir el cliente mismo• O sino, el ruido que generan los saltos interganizacionales, hace inútil
cualquier intento posterior• Esto elimina el tradeoff de calidad versus costos versus eficiencia, de
hecho los alinea• A mayor calidad, mayor eficiencia y menor costo
Sin definición de criterios de calidad
intrínsecos, los problemas se ocultan
Con criterios de calidad intrínsecos, los problemas aparecen pronto y se eliminan oportunamente
BUILT-IN QUALITY
CAPAS DEL TESTING EN AGILIDAD
Historia de usuario
Test de Aceptación / Funcional
/ de Integración
Componente
aisladoTest
Unitario
CICLO DE PROGRAMACIÓN ÁGILDiseño Sencillo
Test: Hazlo Fallar
Implementar:Hazlo
Funcionar
Test
RefactorizarHazlo mejor
Test
KANBAN PARA INGENIERÍA DE
SOFTWARE“AGILE 2.0”
• Herramienta Lean • aplicada al desarrollo de software
KANBAN¿EN QUÉ CONSISTE?
• Se disponen en un tablero que refleja el estado de cada actividad de trabajo (kanban) 看板: “Tarjeta Señal”
• Se sincroniza el problema de negocio y la capacidad del equipo de desarrollo desarrollo usando Kanban
• Cada persona escoge el trabajo a realizar• Responsabilidad asumida, no
asignada (Principio de eXtreme Programming)
Fuente:http://www.xqa.com.ar/visualmanagement/author/xavier/
KANBAN HERRAMIENTA LIGERA Y VALIOSA
(PRINCIPIO DE EXTREME PROGRAMMING)
• Hace visible claramente el flujo de trabajo • Responde fácilmente: ¿Dónde estamos? • Enfoca al equipo• Presenta rápidamente cuellos de botella• Es sencilla y barata
Cambiar por
…
Stage 1 DoneStage 2 Stage n…Work Items
QueueIn
Process QueueIn
Process QueueIn
Process
GESTIÓN TRADICIONAL
PUSH SCHEDULING
Fuente: Lean & kanban 101
http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
…
Stage 1 DoneStage 2 Stage n…Work Items
QueueIn
Process QueueIn
Process QueueIn
Process
PULL SCHEDULINGPARA DE COMENZAR… ¡COMIENZA A TERMINAR!
• Vamos realizando la tarea correcta en el momento justo en que tenemos capacidad
Fuente: Lean & kanban 101
http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
…
Stage 1 DoneStage 2 Stage n…Work Items
QueueIn
Process QueueIn
Process QueueIn
Process
LIMITANDO LA MULTITAREA (WIP)
Fuente: Lean & kanban 101
http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
¿CÓMO APOYA KANBAN LA MEJORA CONTÍNUA?
STAND-UP MEETINGS
¿CÓMO APOYA KANBAN LA MEJORA CONTINUA?REFLEXIÓN Y EVOLUCIÓN DEL FLUJO DE TRABAJO
• El equipo puede y debe ir revisando su flujo de trabajo
En Cola• F3• F4
En Curso• F2
Listo• F1
¿CÓMO APOYA KANBAN LA MEJORA CONTINUA?REFLEXIÓN Y EVOLUCIÓN DEL FLUJO DE TRABAJO
• El equipo puede y debe ir revisando su flujo de trabajo
En Cola• F3• F4
En Curso• F2
Por Validar
Listo• F1
¿CÓMO APOYA KANBAN LA MEJORA CONTINUA?REFLEXIÓN Y EVOLUCIÓN DEL FLUJO DE TRABAJO
• El equipo puede y debe ir revisando su flujo de trabajo
Por Estimar
Definir Criterio de Aceptación
Listo paraDesarrollar• F3• F4
En Curso•F2 Por
Validar
Listo•F1
FUNCIONALIDADES VERSUS ENTREGABLES
Scrum Tradicional
Kanban con Iteraciones
Fuente http://www.lostechies.com/blogs/derickbailey/archive/2009/08/14/kanban-in-time-boxes-the-cadence-of-wip-and-sprints.aspx
ALGUNOS EJEMPLOS DE PRINCIPIOS LEAN EN KANBAN
• Dar al equipo una visión clara de su avance• Respetar a las personas
• Revisar y mejorar el flujo de trabajo• Entregar rápido• Optimizar el todo• Crear conocimiento• Calidad intrínseca
• Limitar el Trabajo en Curso• Entregar rápido
APLICANDO LOS PRINCIPIOS LEAN
• Ejercicios prácticos
APLICANDO LOS PRINCIPIOS¿CUÁNTO QUEDA?
• Un ingeniero de software un día lunes evalúa una tarea que no ha comenzado y determina que el tiempo estimado para terminar es de 20 horas hábiles. El jueves él nos reporta que lleva 16 horas. • ¿Cuál es la mejor manera de
saber cuanto queda?
APLICANDO LOS PRINCIPIOS
EL CASO DEL CÓDIGO • Un equipo de desarrollo de 4 personas durante la primera iteración de un proyecto
realiza un software de 5.000 líneas de código ocupando 480 horas efectivas de desarrollo.
• Un accidente hace que se borren los datos del servidor de control de versiones y no existía ninguna copia del código fuente del sistema.
• El cliente, que estaba contento con los avances, solicita al equipo que, antes de continuar agregando requerimientos, vuelva a construir el código fuente perdido del sistema, lo que el equipo realiza.
• ¿Qué esperarías tú del tamaño en código fuente del sistema y tiempo ocupado en este nuevo intento en comparación con lo obtenido en el intento original?¿Cómo explicas este fenómeno?
REFERENCIAS
• Mary & Tom Poppendiecks Site• http://www.poppendieck.com
• Limited WIP Society• http://www.limitedwipsociety.org/
• Kanbandev Yahoo Group• http://finance.groups.yahoo.com/group/kanbandev/
• Lean & Kanban 101• http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
• So, Now You're An Agilist, What's Next?• http://www.slideshare.net/jurgenappelo/so-now-youre-an-agilist-whats-
next-10
AGRADECIMIENTOAgustín Villena y a la comunidad Chile Ágil por el 99.9% de las slides
PREGUNTAS …
PARA MAS PREGUNTAS:http://failfast.chileagil.cl