1. www.chileagil.cl
Agustín Villena M.
agustin.villena@chileagil.cl
19-04-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@gmail.com
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
19-04-2009 agustin.villena@chileagil.cl
4. En el desconocimiento, crece la desconfianza
◦ ¡Yo soy Scrum!
¡Y Master!
◦ ¡Yo soy XP!
& Technically Advanced
◦ ¡Yo soy Lean!
¡Y revoluciono industrias completas!
Todos somos ágiles
Descubriremos en qué se relacionan estas tres
perspectivas de la agilidad
6. Basado 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!
19-04-2009 agustin.villena@chileagil.cl
7. 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
19-04-2009 agustin.villena@chileagil.cl
8. 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 Production
System
19-04-2009 agustin.villena@chileagil.cl
10. Cliente Problema de Negocio
Proyecto de
Software
Ingeniero
de Software
Producto de
Software
Equipo de
Desarrollo
Tecnología
agustin.villena@chileagil.cl
11. Ciclo de Gestión del Proyecto Orientada al Valor
Cliente Problema de Negocio
Ciclo de Gestión del Desarrollo en Equipo
Proyecto de
Software
Ingeniero
de Software
Ciclo de
Programación
Producto de
de calidad
Software
Equipo de
Desarrollo
Tecnología
XP lo organiza en ciclos de
Entorno de un
retroalimentación y aprendizaje acelerado
proyecto de software
agustin.villena@chileagil.cl
12. Value Oriented
Management Cycle
Teamwork Quality Oriented
Management Incremental Development
Team Development
Cycle Cycle
13. Release
Release
Management Cycle
Planning
Value Oriented
Product Meeting Product
Owner Role Backlog
Development
Sprint Planning Meeting Tasks
Scrum Master Role
Teamwork Management Cycle
Burndown Charts
Task Board
Daily Scrum Meeting
Sprint Retrospective Meeting
Scrum ScoreBoard
14. Small
Planning Game
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
Design
Pair Programming
Tracking /
Incremental Development
(+ Move people
Informative Workspace
Team Development
around)
Quality Oriented
Test Driven Continuous
Cycle
Development Integration
Code Standards
Stand Up Meeting
Refactoring
Collective Code
Ownership
No Overtime
15. Prácticas
◦ en su mayoría ya existían con anterioridad
Ellas se explican por principios,
◦ sobre las que están basados
Principios
19-04-2009 agustin.villena@chileagil.cl
16. Antecedente 1
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
17. •Funcionalidades Extra
Eliminar •Sobrecarga de requerimientos o de arreglos luego del testing
Desperdicios •Cruce de fronteras organizacionales
•Planificar es útil. Aprender es esencial.
Crear •Estándares existen para ser desafiados y mejorados
Conocimiento •Rendimiento predecible es guiado por Retroalimentación
•Código a Prueba de Errores con Desarrollo Guiado por Tests.
Calidad •Impedir el desarrollo de código legado (sin tests)
Intrínseca •“Big Bang” está Obsoleto
•Abolir la idea de partir con una especificación completa
Diferir el •Romper dependencias (Arquitectura debe permitir evolucionar)
compromiso •Mantener opciones abiertas
•Planificar decisiones irreversibles asta el último momento responsable
•Listas y colas son amoriguadores entre organizaciones que enlentencen.
Entregar •Entregas Rápidas, con Alta Calidad y Bajo Costo son compatibles
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 evntaja competitiva más sostenible.
Respetar a las •Equipos crecen con Orgullo, Compromiso, Confianza y Reconocimiento
personas •Proveer Liderazgo Efectivo
•Respetar a los socios
•Productos brillantes emergen de combinar oportunidad con tecnología
Optimizar el •Enfocarse en el flujo de valor completo
•Entregar un Producto Completo
todo •Medir hacia valor de negocio generado y satidfacción de los clientes
19-04-2009 agustin.villena@chileagil.cl
18. 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@gmail.com
19. 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@gmail.com
20. Scrum es más genérico que XP, especializado
en gestión de desarrollo de (cualquier)
producto
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 y
Scrum se organizan de la manera que lo hacen
◦ Y abren posibilidades para otras prácticas
19-04-2009 agustin.villena@chileagil.cl
21. Desafío Ágil Actual:
Maestría en el Software
(Software Crafmanship)
Simbología
Prácticas de Scrum
Ciclo de
Gestión de
Prácticas de eXtreme Programming Valor
Ciclo de
16 Principios de XP Gestión de
Trabajo en
Equipo
7 Principios Lean
Ciclo de
Desarrollo
5 Valores de XP Incremental de
Calidad
4 Principios Ágiles
19-04-2009 agustin.villena@chileagil.cl
22. El nuevo chico del barrio
◦ 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
19-04-2009 agustin.villena@chileagil.cl