Desarrollo ágil Webprendedor UC 2010

Post on 03-Jul-2015

259 views 0 download

description

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

Transcript of Desarrollo ágil Webprendedor UC 2010

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

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