1. www.chileagil.cl
Agustín Villena M.
agustin.villena@chileagil.cl
07-10-2009
2. Esta obra está publicada bajo una Atribución-No Comercial-
Licenciar Igual 2.0 Chile de Creative Commons. Para ver una
copia de esta licencia, visite
http://creativecommons.org/licenses/by-nc-sa/2.0/cl/
agustin.villena@chileagil.cl
3. Agustín Villena Moya
Ingeniero Civil en Computación, U. de Chile (1998)
Magister en Ciencias de la Computación, U. de Chile (2008)
Emprendedor a jornada completa (1998-2002) y parcial (2003 a la fecha)
Coordinador Área de Investigación y Desarrollo Microsystem Chile (2005 a
2008)
Gerente de Consultoría SAP Novis (2009 a la fecha)
Desde el 2002 investigo, practico y comparto mis experiencias ágiles con
mis alumnos de la U. de Chile, en los cursos
◦ CC62V Taller de Metodologías Ágiles de Desarrollo de Software
◦ CC61A Proyecto de Software
Impulsor de la comunidad chilena de desarrollo ágil Chile Ágil
07-10-2009 agustin.villena@chileagil.cl
4. Uno no se baña nunca dos
veces en el mismo río
Heráclito
07-10-2009 agustin.villena@chileagil.cl
6. Pero con poca productividad
Fuente:
“CHAOS Report”, EE.UU.
The Standish Group
07-10-2009 agustin.villena@chileagil.cl
7. Como lo explicó el Como lo entendió el Como lo diseñó el Como lo programó el Como lo describió el
cliente Jefe de Proyecto Analista Desarrollador área comercial
Como se documentó el Qué fue instalado en Qué se le cobró al Cómo fue soportado Qué necesitaba el
proyecto el cliente cliente cliente en realidad
07-10-2009 agustin.villena@chileagil.cl
8. Y en Chile, ¿será mejor?
◦ ...
07-10-2009 agustin.villena@chileagil.cl
9. Plano de Negocio
Valor Problema
(Necesidad)
Lenguaje de Negocio
Ámbito de la
Lenguaje
Funcionalidades
Común
Base
(Soluciones) gestión
Lenguaje Técnico
TAREAS
Calidad
Plano Técnico
agustin.villena@chileagil.cl
10. Avance de Proyecto:
- ¿Cuánto hemos avanzado realmente
(en generar real valor)?
- ¿Cuáles y cuántas funcionalidades queda por hacer?
- ¿Cuánto tiempo se requerirá para dichas funcionalidades?
- ¿Qué defectos puede tener el producto?
Método de Trabajo
- ¿Qué prácticas y estándares se debe seguir?
- ¿Qué errores no se debe repetir?
- ¿Qué debemos mejorar?
?
?
Tecnología:
Desarrollador - ¿Cuál tecnología usar?
Cliente
Problema en resolución: ¿Concuerdan? - ¿Qué sabemos hacer con
¿Concuerdan?
la tecnología utilizada?
- ¿Cuáles son la necesidades
- ¿Cuáles es posible hacer
actuales? (limites) con la
- ¿Cuáles son prioritarias? tecnología?
Trabajo en Equipo:
- ¿Cómo mantener la motivación?
- ¿Cómo comunicarse efectivamente?
- ¿Hay áreas del proyecto que sólo puedan ser
?
mantenidas por uno?
agustin.villena@chileagil.cl
Equipo de Desarrollo
11. Entonces definamos todo al principio, y luego
construyamos y probemos…
Análisis y
especificación de
requerimientos
Diseño
Codificación y
Test de Módulos
Integración y
Test del Sistema
Instalación y
Mantenimiento
agustin.villena@chileagil.cl
12. Y así es fácil “evaluar” a cada individuo de manera
separada Toma este
problemita
Toma este
Análisis y
problemita
especificación de
requerimientos
Toma este
Diseño
problemita
Toma este
Codificación y
Test de Módulos
problemita
Integración y UF
Test del Sistema
Instalación y
Mantenimiento
agustin.villena@chileagil.cl
13. (¿Y cómo %$@ lo
Tienes que vamos a hacer?)
construir esto …
Si, jefe
07-10-2009 agustin.villena@chileagil.cl
14. Férreo control centralizado en una pirámide jerárquica
07-10-2009 agustin.villena@chileagil.cl
15. ¿PROCESOS?
◦ “Buenos procesos generan buenos productos”
¿Personas?
◦ “Pero las personas vienen y van”
07-10-2009 agustin.villena@chileagil.cl
17. ◦ Pocos principios fundamentales, que apoyan la toma de
decisiones en terreno
◦ Base para equipos de
Alto Rendimiento que
enfrentan
alta incertidumbre
07-10-2009 agustin.villena@chileagil.cl
18. Cómo se organizan las hormigas para buscar alimento
◦ Dos reglas simples
Marcar el camino
Seguir el camino con más marcas
◦ … que inducen un comportamiento auto-organizado
07-10-2009 agustin.villena@chileagil.cl
20. Una Cultura basada en
◦ Principios
◦ Valores
◦ Prácticas
Foco principal:
◦ El valor de la persona humana
¿En qué nos enfocamos?
◦ En el trabajo en equipo entre
clientes y desarrolladores
07-10-2009 agustin.villena@chileagil.cl
21. Cliente Problema de Negocio
Proyecto de
Software
Ingeniero
de Software
Producto de
Equipo de Software
Desarrollo
Tecnología
agustin.villena@chileagil.cl
22. Ciclo de Gestión del Proyecto Orientada al Valor
Cliente Problema de Negocio
Proyecto de Ciclo de Gestión del Desarrollo en Equipo
Software
Ingeniero
de Software
Ciclo de
Producto de Programación
Software de calidad
Equipo de
Desarrollo
Tecnología
Entorno de un XP lo organiza en ciclos de
proyecto de software retroalimentación y aprendizaje acelerado
agustin.villena@chileagil.cl
23. Prácticas
◦ técnicas concretas de planificación de negocio, trabajo en
equipo o desarrollo
◦ Se explican por principios, sobre las que están basados.
Principios
◦ Criterios que ayudan a tomar decisiones a las personas
Principios
07-10-2009 agustin.villena@chileagil.cl
24. En 2001, Kent Beck y otros autores de enfoques similares
proponen los Principios Ágiles:
Individuos e interacciones Procesos y herramientas.
Software funcional Documentación exhaustiva
por
sobre
Colaboración con el cliente Negociación de contratos
Responder al cambio Seguir un plan
agustin.villena@chileagil.cl
25. Mary y Tom Poppendieck,
“Lean Software Development”
Define las bases teóricas de las metodologías ágiles,
a partir del lean thinking
◦ Filosofía de gestión inspirada en el Toyota Production
System
07-10-2009 agustin.villena@chileagil.cl
26. •Funcionalidades Extra
Eliminar Desperdicios •Sobrecarga de requerimientos o de arreglos luego del testing
•Cruce de fronteras organizacionales
•Planificar es útil. Aprender es esencial.
Crear Conocimiento •Estándares existen para ser desafiados y mejorados
•Rendimiento predecible es guiado por Retroalimentación
•Código a Prueba de Errores con Desarrollo Guiado por Tests.
Calidad Intrínseca •Impedir el desarrollo de código legado (sin tests)
•“Big Bang” está Obsoleto
•Abolir la idea de partir con una especificación completa
Diferir el compromiso •Romper dependencias (Arquitectura debe permitir evolucionar)
•Mantener opciones abiertas
(hasta el último momento responsable)
•Planificar decisiones irreversibles asta el último momento responsable
•Listas y colas son amortiguadores entre organizaciones que enlentecen.
•Entregas Rápidas, con Alta Calidad y Bajo Costo son compatibles
Entregar rápido •Teoría de Colas aplica al desarrollo, no sólo a los servidores
•Limitar Trabajo a la Capacidad del Equipo
•Personas motivadas y pensantes proveen la ventaja competitiva más sostenible.
•Equipos crecen con Orgullo, Compromiso, Confianza y Reconocimiento
Respetar a las personas •Proveer Liderazgo Efectivo
•Respetar a los socios
•Productos brillantes emergen de combinar oportunidad con tecnología
•Enfocarse en el flujo de valor completo
Optimizar el todo •Entregar un Producto Completo
•Medir hacia valor de negocio generado y satisfacción de los clientes
07-10-2009 agustin.villena@chileagil.cl
27. Si nos enfocamos en validar continuamente nuestras
hipótesis y generar valor lo antes posible…
07-10-2009 agustin.villena@chileagil.cl
29. Value Oriented
Management Cycle
Teamwork Quality Oriented
Management Team Development Incremental Development
Cycle Cycle
agustin.villena@chileagil.cl
30. Inspirado en el enfoque de gestión de la innovación de
productos de Hirotaka Takeuchi and Ikujiro Nonaka, 1986
Sutherland and Schwaber , lo presentan en OOPSLA (1995)
Define un conjunto de herramientas de gestión y visualización
de avance
Metáfora:
◦ se requiere abarcar todas las disciplinas requeridas, tal como la
formación de scrum del rugby
Es una metodología para gestionar desarrollos de productos
◦ ¡Cualquier tipo de producto!
07-10-2009 agustin.villena@chileagil.cl
31. Release
Release
Management Cycle
Planning
Value Oriented
Product Meeting Product
Owner Role Backlog
Development
Sprint Planning Meeting Tasks
Scrum Master Role
Teamwork Management Cycle
Burn down
Charts
Task Board
Daily Scrum Meeting
Sprint Retrospective Meeting
Scrum Scoreboard
agustin.villena@chileagil.cl
32. Ken Beck, 1999, “Extreme Programming Explained”
Enfoque empírico e integral de un proyecto de software
Equipos pequeños que incluyen al cliente
Premisa
◦ Llevar las buenas prácticas de desarrollo al extremo
07-10-2009 agustin.villena@chileagil.cl
33. Planning Game Small
Releases
Management Cycle
Value Oriented
On Site
User Stories
Customer
(One team)
Acceptance Tests
Definition Validation
Development
Iteration Planning
Tasks
Coaching
Teamwork Management Cycle
Simple
Tracking / Pair Programming Design
Incremental Development
Informative Workspace (+ Move people
Team Development
around)
Quality Oriented
Test Driven Continuous
Cycle
Development Integration
Code Standards
Stand Up Meeting
Collective Code Refactoring
Ownership
No Overtime
agustin.villena@chileagil.cl
34. Se sincroniza el problema de negocio y el desarrollo usando
Kanban
◦ 看板: “Tarjeta Señal”
Se disponen en un tablero que refleja el estado de cada
kanban
◦ Los estados los define cada equipo
A pesar de verse rústica:
◦ Enfoca al equipo
◦ Presenta rápidamente
cuellos de botella
◦ Es sencilla y barata
Fuente:
http://www.xqa.com.ar/visualmanagement/author/xavier/
07-10-2009 agustin.villena@chileagil.cl
35. Se limita la cantidad de Kanban en proceso, para eliminar cuellos de
botella
◦ Ej.: No más de 1 kanban en Trabajo en Curso por desarrollador
Quien asume la responsabilidad cambia el Kanban de estado (gestión
PULL)
Se mide lead time: tiempo promedio de un kanban en ser procesado
Test de Aceptación
1
Cola de Trabajo Trabajo en Curso Por Validar Terminado
En Cola Definido
F4 F2 F1
F5 F3
F6 F0
07-10-2009 agustin.villena@chileagil.cl
36. Work Items Stage 1 Stage 2 … Stage n Done
In In In
Queue Process Queue Process Queue Process
…
Fuente:
Lean & kanban 101
http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
37. Work Items Stage 1 Stage 2 … Stage n Done
In In In
Queue Process Queue Process Queue Process
…
Fuente:
Lean & kanban 101
http://availagility.wordpress.com/2009/06/11/zurich-lean-agile-scrum-slides/
38. Scrum y Kanban se especializan en gestión de
desarrollo de (cualquier) producto
Kanban es más genérico que Scrum
XP abarca todo el sistema, desde gestión,
hasta programación
XP y Lean hacen énfasis en la destreza técnica
del líder del equipo. El ScrumMaster, en
cambio, es sólo un líder metodológico.
Los principios Lean explican porqué XP, Kanban
y Scrum se organizan de la manera que lo
hacen
◦ Y abren posibilidades para otras prácticas
07-10-2009 agustin.villena@chileagil.cl
39. Desafío Ágil Actual:
Maestría en el Software
(Software Craftmanship)
2008
1998 - Prácticas de eXtreme Programming
Simbología
1996 - Prácticas de Scrum
Ciclo de
2007- Kanban for Software Gestión de
Engineering Valor
Ciclo de
16 Principios de XP Gestión de
Trabajo en
Equipo
2003 - 7 Principios Lean
Ciclo de
Desarrollo
5 Valores de XP Incremental de
Calidad
4 Principios Ágiles
07-10-2009 agustin.villena@chileagil.cl
40. Manifiesto sale a la luz Marzo de 2009
Busca devolver la excelencia técnica al rango de pilar del
movimiento ágil
Una comunidad de
Individuos e interacciones
profesionales
Software funcional Software bien hecho
No sino
sólo que
Colaboración con el cliente Sociedades productivas
Constantemente agregar
Responder al cambio
valor
07-10-2009 agustin.villena@chileagil.cl
41. Modelo Abierto y Libre de Certificación Ágil
◦ Capacitación y certificación libre para personas individuales
◦ Material con licencia Open Educational Resource
◦ El uso de la marca y material en capacitación es sólo para
profesionales certificados
De origen hispanoamericano, y comenzando en Chile
◦ Distribuido mediante e-learning
07-10-2009 agustin.villena@chileagil.cl
42. Las áreas de producto y
proyecto son abarcadas
por los métodos ágiles
comunes
ScrumManager aporta
la mirada de la gestión
global de la empresa,
para soportar la cultura
ágil
agustin.villena@chileagil.cl 07-10-2009
43. Blog: www.chileagil.cl
Twitter:
◦ www.twitter.com/agustinvillena
◦ www.twitter.com/chileagil
Podcast:
◦ www.chileagil.cl/tag/podcast
Foro de la comunidad
◦ groups.google.com/group/chileagil
OpenKnowledge de ScrumManager
◦ www.scrummanager.net/ok
agustin.villena@chileagil.cl
07-10-2009 www.chileagil.cl
45. El desarrollo de software es una actividad humana
◦ Es afectada por la motivación, creencias y los instintos de las personas
Valores Comunes: son los que permiten que las personas trabajen por el
beneficio común antes que el propio
Comunicación
Respeto Simplicidad
Coraje Retroalimentación
agustin.villena@chileagil.cl
46. Reglas que orientan la toma de decisiones
• Comunicación abierta y honesta
• Enseñar a aprender
• Trabajar con los instintos de las personas
• Siempre asumir simplicidad
• Viajar con equipaje: poco, simple y valioso
• Cambios paso a paso
• Adaptar de XP a la realidad local
• Jugar a ganar
• Responsabilidad aceptada (antes que asignada)
• Trabajo de Calidad
• Atacar los problemas urgentes, dejando la mayor cantidad de opciones abiertas
• Retroalimentación Rápida (favorece el aprendizaje)
• Medir honestamente
• Experimentos concretos
agustin.villena@chileagil.cl