Desarrollo ágil Webprendedor UC 2010

50
DESARROLLO ÁGIL Principios y Prácticas

description

Las Slides de mi charla en el taller de desarrollo ágil en Webprendedor UC 2010

Transcript of Desarrollo ágil Webprendedor UC 2010

Page 1: Desarrollo ágil Webprendedor UC 2010

DESARROLLO ÁGILPrincipios y Prácticas

Page 2: Desarrollo ágil Webprendedor UC 2010

ABOUT MEVPoE & Co-Founder Welcu Inc.

Estudiante IngenieríaMiembro de ∞ comunidades

@[email protected]

Page 3: Desarrollo ágil Webprendedor UC 2010

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

Page 4: Desarrollo ágil Webprendedor UC 2010

METODOLOGÍAS

Page 5: Desarrollo ágil Webprendedor UC 2010

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

[email protected]

Page 6: Desarrollo ágil Webprendedor UC 2010

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

[email protected]

Page 7: Desarrollo ágil Webprendedor UC 2010

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

Page 8: Desarrollo ágil Webprendedor UC 2010

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

Page 9: Desarrollo ágil Webprendedor UC 2010

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

Page 10: Desarrollo ágil Webprendedor UC 2010

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

Page 11: Desarrollo ágil Webprendedor UC 2010

LA VIDA EMERGE EN EL FILO DEL CAOSInflexibilidad Caos

Empoderamiento Alineamiento+ atribuciones+ confianza

+ valores + principios

Filo del Caos

Sistemas Adaptativos Complejos

Page 12: Desarrollo ágil Webprendedor UC 2010

¿CÓMO SE ORGANIZAN LAS HORMIGAS PARA BUSCAR ALIMENTO?

• ¿Así?

Page 13: Desarrollo ágil Webprendedor UC 2010

¿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

Page 14: Desarrollo ágil Webprendedor UC 2010

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

Page 15: Desarrollo ágil Webprendedor UC 2010

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

Page 16: Desarrollo ágil Webprendedor UC 2010

EJEMPLOS DE APLICACIÓN DE PRINCIPIOS LEAN

Page 17: Desarrollo ágil Webprendedor UC 2010

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í

Page 18: Desarrollo ágil Webprendedor UC 2010

¿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

Page 19: Desarrollo ágil Webprendedor UC 2010

+ RAPIDO CON LEAN

Page 20: Desarrollo ágil Webprendedor UC 2010

¿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

Page 21: Desarrollo ágil Webprendedor UC 2010

¿DÓNDE TENDREMOS UN TRÁFICO PROMEDIO MÁS RÁPIDO?

• ¿Una carretera semi-llena de autos?

Page 22: Desarrollo ágil Webprendedor UC 2010

¿CÓMO SE LLAMA A UN LUGAR LLENO DE AUTOS?

Un Estacionamiento

Page 23: Desarrollo ágil Webprendedor UC 2010

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

Page 24: Desarrollo ágil Webprendedor UC 2010

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

Page 25: Desarrollo ágil Webprendedor UC 2010

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

Page 26: Desarrollo ágil Webprendedor UC 2010

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

Page 27: Desarrollo ágil Webprendedor UC 2010

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

Page 28: Desarrollo ágil Webprendedor UC 2010

¿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

Page 29: Desarrollo ágil Webprendedor UC 2010

BUILT-IN QUALITY

Page 30: Desarrollo ágil Webprendedor UC 2010

CAPAS DEL TESTING EN AGILIDAD

Historia de usuario

Test de Aceptación / Funcional

/ de Integración

Componente

aisladoTest

Unitario

Page 31: Desarrollo ágil Webprendedor UC 2010

CICLO DE PROGRAMACIÓN ÁGILDiseño Sencillo

Test: Hazlo Fallar

Implementar:Hazlo

Funcionar

Test

RefactorizarHazlo mejor

Test

Page 32: Desarrollo ágil Webprendedor UC 2010

KANBAN PARA INGENIERÍA DE

SOFTWARE“AGILE 2.0”

• Herramienta Lean • aplicada al desarrollo de software

Page 33: Desarrollo ágil Webprendedor UC 2010

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/

Page 34: Desarrollo ágil Webprendedor UC 2010

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

Page 35: Desarrollo ágil Webprendedor UC 2010

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/

Page 36: Desarrollo ágil Webprendedor UC 2010

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/

Page 37: Desarrollo ágil Webprendedor UC 2010

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/

Page 38: Desarrollo ágil Webprendedor UC 2010

¿CÓMO APOYA KANBAN LA MEJORA CONTÍNUA?

STAND-UP MEETINGS

Page 39: Desarrollo ágil Webprendedor UC 2010

¿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

Page 40: Desarrollo ágil Webprendedor UC 2010

¿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

Page 41: Desarrollo ágil Webprendedor UC 2010

¿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

Page 43: Desarrollo ágil Webprendedor UC 2010

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

Page 44: Desarrollo ágil Webprendedor UC 2010

APLICANDO LOS PRINCIPIOS LEAN

• Ejercicios prácticos

Page 45: Desarrollo ágil Webprendedor UC 2010

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?

Page 46: Desarrollo ágil Webprendedor UC 2010

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?

Page 47: Desarrollo ágil Webprendedor UC 2010

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

Page 48: Desarrollo ágil Webprendedor UC 2010

AGRADECIMIENTOAgustín Villena y a la comunidad Chile Ágil por el 99.9% de las slides

Page 49: Desarrollo ágil Webprendedor UC 2010

PREGUNTAS …

Page 50: Desarrollo ágil Webprendedor UC 2010

PARA MAS PREGUNTAS:http://failfast.chileagil.cl