Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
a Metodologías Ágiles
Extreme Programming (XP)
Introducción
Prácticas de XP
Conclusiones
www.dsic.upv.es/~letelier/pub
¿Qué es una Metodología Ágil?
www.agilealliance.com
www.dsic.upv.es/~letelier/pub
¿Por qué surgen las
Metodologías Ágiles (AMs)?
www.dsic.upv.es/~letelier/pub
Costo de los Cambios en SW
Tradicional
Costo
del
cambio
Suposición AMs
tiempo
www.dsic.upv.es/~letelier/pub
Manifiesto de las AMs
agilemanifesto.org
Principios:
1. La prioridad principal es satisfacer al cliente mediante
tempranas y continuas entregas de software que le
reporte un valor
www.dsic.upv.es/~letelier/pub
… Manifiesto de las AMs
www.dsic.upv.es/~letelier/pub
… Manifiesto de las AMs
8. Los procesos ágiles promueven un desarrollo sostenible.
Los promotores, desarrolladores y usuarios deberían ser
capaces de mantener una paz constante
9. La atención continua a la calidad técnica y al buen diseño
mejora la agilidad
10. La simplicidad es esencial
11. Las mejores arquitecturas, requisitos y diseños surgen de
los equipos organizados por sí mismos
12. En intervalos regulares, el equipo reflexiona respecto de
cómo llegar a ser más efectivo, y según esto ajusta su
comportamiento
www.dsic.upv.es/~letelier/pub
Comparación Ágil - ¬Ágil
Metodología Ágil Metodología No Ágil
Pocos Artefactos Más Artefactos
www.dsic.upv.es/~letelier/pub
Principales AMs
Crystal Methodologies, Alistarir Cockburn,
www.crystalmethodologies.org
SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com
DSDM (Dynamic Systems Development Method), www.dsdm.org
Lean Programming, Mary Poppendieck, www.poppendieck.com
FDD (Feature-Driven Development), Peter Coad & Jeff De Luca,
www.nebulon.com/fdd, www.coad.com/peter/#fdd
Extreme Programming, Kent Beck www.extremeprogramming.org,
www.xprogramming.com
Adaptative Software Development, Jim Highsmith
www.adaptivesd.com
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
eXtreme Programming
12
¿Qué es XP?
www.dsic.upv.es/~letelier/pub
Historia de XP
Creado por Kent Beck para la plantilla
del proyecto C3 en Chrysler
Kent fue contratado para dirigir el proyecto
Durante el proceso nació una nueva
metodología: eXtreme Programming (XP)
C3 concluyó exitosamente en 1997
www.dsic.upv.es/~letelier/pub
Valores que fomenta XP
Comunicación
Simplicidad
Retroalimentación
Coraje
www.dsic.upv.es/~letelier/pub
Roles XP
c2.com/cgi/wiki?ExtremeRoles
www.dsic.upv.es/~letelier/pub
... Roles XP
Encargado de Entrenador (Coach)
Pruebas (Tester) Responsable del proceso
Ayuda al cliente con las Tiende a estar en un
pruebas funcionales segundo plano a medida
que el equipo madura
Se asegura de que las
pruebas funcionales se
superan
Rastreador (Tracker)
Metric Man
Observa sin molestar
Conserva datos
históricos
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Historias del Usuario (User-Stories)
Establecen los requisitos del cliente
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Una ficha de User-Story
www.dsic.upv.es/~letelier/pub
Planificación en XP
Planificación por entregas (releases)
Se priorizan aquellas user-stories que el cliente
selecciona porque son más importantes para el
negocio
Entregas:
Son lo más pequeñas posibles
Se dividen en iteraciones (iteración = 2 o 3 semanas)
Están compuestas por historias
A cada programador se le asigna una tarea de la
user-story
www.dsic.upv.es/~letelier/pub
Programación en XP
www.dsic.upv.es/~letelier/pub
Programación en XP
Una ficha de Tarea
www.dsic.upv.es/~letelier/pub
Modelo de un Proyecto XP
www.dsic.upv.es/~letelier/pub
Espacio de trabajo XP
Espacio abierto
Mesas centrales
Cubículos en el espacio exterior
Espacio de trabajo
del proyecto C3 de
DaimlerChrysler
www.dsic.upv.es/~letelier/pub
Prácticas XP
• El juego de la • Programación en
parejas
planificación
• Entregas pequeñas • Propiedad colectiva
• Metáfora • Integración contínua
• Diseño simple • Semana de 40 horas
• Pruebas • Cliente in situ
• Refactoring • Estándares de
programación
www.dsic.upv.es/~letelier/pub
Prácticas XP
El Juego de la planificación
www.dsic.upv.es/~letelier/pub
Prácticas XP
... El Juego de la planificación
Decisiones técnicas (programadores y otros):
Estimaciones ¿Cuánto tiempo tardará en
implementarse una user-story?
Consecuencias Tener en cuenta las consecuencias
técnicas de determinadas decisiones de negocio
Proceso Organización del proceso y el equipo
Planificación detallada Dentro de una entrega, qué
user-stories se realizan primero. Intentar trasladar los
segmentos de desarrollo más arriesgados al principio,
intentando respetar las prioridades del negocio
www.dsic.upv.es/~letelier/pub
Prácticas XP
... El Juego de la planificación
Reunión diaria XP
Reunión diaria “Stand-up Meeting”
Todo el equipo
Problemas
Solutiones
De pie en un círculo
Evitar discusiones largas
Sin conversaciones separadas
www.dsic.upv.es/~letelier/pub
Prácticas XP
Entregas pequeñas
Cada entrega es lo más corta posible:
Contenga requisitos más valiosos del sistema
(básicos)
Reducen el riesgo mayor retroalimentación
desde el cliente, y más frecuente
Minimizar el nº de user-stories que componen
una entrega No realizar user-stories a
medias
www.dsic.upv.es/~letelier/pub
Prácticas XP
Metáfora
www.dsic.upv.es/~letelier/pub
Prácticas XP
Diseño simple
Se diseña “la cosa más simple que pueda
funcionar”
Uso de tarjetas CRC
Diseño de software correcto, es aquel que:
Supera todas las pruebas
No tiene lógica duplicada
Pone de manifiesto las intenciones importantes de
los programadores
Tiene el mínimo número de clases y métodos
www.dsic.upv.es/~letelier/pub
Prácticas XP
Pruebas
Las pruebas unitarias se escriben ANTES
que el código
Pruebas automatizadas
Permiten el desarrollo de proyectos de forma
rápida y segura
Pruebas unitarias programadores
Pruebas funcionales cliente
Resultado Un programa cada vez más
seguro
www.dsic.upv.es/~letelier/pub
Prácticas XP
Refactoring
www.refactoring.com
www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
Prácticas XP
Programación en parejas
www.pairprogramming.com
www.dsic.upv.es/~letelier/pub
Prácticas XP
Propiedad colectiva
Cualquiera puede modificar el código en
cualquier momento Se evitan cuellos de
botella en la codificación
www.dsic.upv.es/~letelier/pub
Prácticas XP
Integración contínua
www.dsic.upv.es/~letelier/pub
Prácticas XP
Semana de 40 horas
www.dsic.upv.es/~letelier/pub
Prácticas XP
Cliente in situ
Cliente real = Aquel que usará el sistema
cuando esté en producción
El cliente real debe estar con el equipo de
trabajo:
Responder preguntas
Resolver disputas
Establecer prioridades
Discutir mejoras
www.dsic.upv.es/~letelier/pub
Prácticas XP
Estándares de programación
www.dsic.upv.es/~letelier/pub
Prácticas XP
Interacción entre Prácticas
42
Un día de trabajo en XP
www.dsic.upv.es/~letelier/pub
No todas las ideas/prácticas
ágiles son buenas
Mala
• SW SWfuncionando >> Precaución
HistoriasStories
de usuarioWorking >>
Pair Programming
Programación en parejas Documentation
Documentation Buena
Frequent Releases
Releases • Propiedad
frecuentesCollective colectiva
Ownership
Reunión “Stand-up”
Daily Stand-up • Mejora
cada díaImprove
Meetings de laIteratively
Quality calidad
Create Great
Crear Architectures
buenas iterativamente
arquitecturasCollaboration>>Contracts
• Colaboración >> Contrato
www.dsic.upv.es/~letelier/pub Diapositiva obtenida de la presentación “A History of Agile Methods” presentada por Alan Davis en JISBD 2002
Fuerzas que influyen los enfoque
para el desarrollo de software
Grado de
Ceremonia/control
en el proceso
Tiempo
1950’s 1960’s 1970’s 1980’s 1990’s 2000’s 2010’s
www.dsic.upv.es/~letelier/pub Diapositiva obtenida de la presentación “A History of Agile Methods” presentada por Alan Davis en JISBD 2002
¿Qué resultado proveen las
Metodologías Ágiles?
Hay pocos datos concretos del índice de éxito de
proyectos
Está teniendo un gran auge
Aumento en el número de proyectos
¿Por qué?
Tiene el apoyo de muchos gurús en ingeniería de sw
Tiene sentido
www.dsic.upv.es/~letelier/pub
¿Cuándo utilizar una
Metodología Ágil?
¿Existe ya un proceso? Si
¿Reacciona bien a los cambios? Si
¿Está el equipo contento con él? Si
Mejor esperar
Se están recogiendo datos (red NAME)
http://name.case.unibz.it/
En un futuro se podrán hacer comparaciones
sobre lo que es más conveniente
www.dsic.upv.es/~letelier/pub
... ¿Cuándo utilizar una
Metodología Ágil?
¿Existe ya un proceso? No
o existe pero no reacciona bien a los cambios
o existe pero el equipo no está contento con él
www.dsic.upv.es/~letelier/pub
¿Qué hace la gente con las
Metodologías Ágiles?
International Conference on eXtreme
Programming and Agile Methods in Software
Development (XP200x)
http://www.xp2003.org
XP Agile Universe
http://www.agileuniverse.com
www.dsic.upv.es/~letelier/pub
Fin de la Presentación
Metodologías Ágiles y XP
Patricio Letelier
letelier@dsic.upv.es