Anda di halaman 1dari 50

www.dsic.upv.

es/~letelier/pub
Metodologas giles y XP
Patricio Letelier
letelier@dsic.upv.es
Departamento de Sistemas Informticos y Computacin
Universidad Politcnica de Valencia
www.dsic.upv.es/~letelier/pub
Contenidos
Introduccin a Metodologas giles
Extreme Programming (XP)
Introduccin
Prcticas de XP
Conclusiones

www.dsic.upv.es/~letelier/pub
Qu es una Metodologa gil?
www.agilealliance.com
Las Metodologas giles (AMs) valoran:
Al individuo y las interacciones en el equipo de
desarrollo ms que a las actividades y las
herramientas

Desarrollar software que funciona ms que conseguir
una buena documentacin Minimalismo respecto
del modelado y la documentacin del sistema

La colaboracin con el cliente ms que la
negociacin de un contrato

Responder a los cambios ms que seguir
estrictamente una planificacin


www.dsic.upv.es/~letelier/pub
Por qu surgen las
Metodologas giles (AMs)?
Dificultad para implantar metodologas tradicionales.
Sofisticadas herramientas CASE y notaciones (UML)

Una solucin a medida para un segmento
importante de proyectos de desarrollo de software

Pugna entre comunidades/gurs

Aceptar el cambio ...
www.dsic.upv.es/~letelier/pub
Costo de los Cambios en SW
Costo
del
cambio
tiempo
Tradicional
Suposicin AMs
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

2. Dar la bienvenida a los cambios. Los AMs capturan
los cambios para que el cliente tenga una ventaja
competitiva

3. Entregar frecuentemente software que funcione,
desde un par de semanas a un par de meses, con
el menor intervalo de tiempo posible entre una
entrega y la siguiente
www.dsic.upv.es/~letelier/pub
Manifiesto de las AMs
4. La gente del negocio y los desarrolladores deben
trabajar juntos a lo largo del proyecto

5. Construir proyecto en torno a individuos motivados.
Darles el entorno y el apoyo que necesitan y confiar
en ellos para conseguir el trabajo

6. El dilogo cara a cara es el mtodo ms eficiente y
efectivo para comunicar informacin dentro de un
equipo de desarrollo

7. El software que funciona es la medida principal de
progreso

www.dsic.upv.es/~letelier/pub
Manifiesto de las AMs
8. Los procesos giles promueven un desarrollo sostenible. Los
promotores, desarrolladores y usuarios deberan ser
capaces de mantener una paz constante

9. La atencin continua a la calidad tcnica y al buen
diseo mejora la agilidad

10. La simplicidad es esencial

11. Las mejores arquitecturas, requisitos y diseos surgen de los
equipos organizados por s mismos

12. En intervalos regulares, el equipo reflexiona respecto de
cmo llegar a ser ms efectivo, y segn esto ajusta su
comportamiento

www.dsic.upv.es/~letelier/pub
Comparacin gil - gil
Metodologa gil Metodologa No gil
Pocos Artefactos Ms Artefactos
Pocos Roles Ms Roles
No existe un contrato tradicional o al
menos es bastante flexible
Existe un contrato prefijado
Cliente es parte del equipo de
desarrollo (adems in-situ)
El cliente interacta con el equipo
de desarrollo mediante reuniones
Grupos pequeos (< 10 integrantes)
y trabajando en el mismo sitio
Grupos grandes
Menos nfasis en la arquitectura La arquitectura es esencial
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
www.dsic.upv.es/~letelier/pub
Qu es XP?
Es una metodologa gil
Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta 10 programadores)
Orientada fuertemente hacia la codificacin
nfasis en la comunicacin informal, verbal

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 metodologa: eXtreme
Programming (XP)
C3 concluy exitosamente en 1997

www.dsic.upv.es/~letelier/pub
Valores que fomenta XP
Comunicacin

Simplicidad

Retroalimentacin

Coraje
www.dsic.upv.es/~letelier/pub
Roles XP
c2.com/cgi/wiki?ExtremeRoles
Programador (Programmer)
Responsable de decisiones
tcnicas
Responsable de construir el
sistema
Sin distincin entre analistas,
diseadores o codificadores
En XP, los programadores
disean, programan y realizan
las pruebas
Jefe de Proyecto
(Manager)
Organiza y gua las
reuniones
Asegura condiciones
adecuadas para el
proyecto

Cliente (Customer)
Es parte del equipo
Determina qu construir
y cundo
Establece las pruebas
funcionales
www.dsic.upv.es/~letelier/pub
... Roles XP
Entrenador (Coach)
Responsable del
proceso
Tiende a estar en un
segundo plano a
medida que el equipo
madura

Encargado de
Pruebas (Tester)
Ayuda al cliente con
las pruebas
funcionales
Se asegura de que las
pruebas funcionales se
superan
Rastreador (Tracker)
Metric Man
Observa sin molestar
Conserva datos
histricos
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Historias del Usuario (User-Stories)
Establecen los requisitos del cliente
Trozos de funcionalidad que aportan valor
Se les asignan tareas de programacin con un n de horas de
desarrollo
Las establece el cliente
Son la base para las pruebas funcionales
www.dsic.upv.es/~letelier/pub
Captura de Requisitos en XP
Una ficha de User-Story
www.dsic.upv.es/~letelier/pub
Planificacin en XP
Planificacin por entregas (releases)
Se priorizan aquellas user-stories que el cliente
selecciona porque son ms importantes para
el negocio
Entregas:
Son lo ms pequeas posibles
Se dividen en iteraciones (iteracin = 2 o 3
semanas)
Estn compuestas por historias
A cada programador se le asigna una tarea
de la user-story
www.dsic.upv.es/~letelier/pub
Programacin en XP
La programacin de tareas se realiza por
parejas

La pareja disea, prueba, implementa e
integra el cdigo de la tarea

Cdigo dirigido por las pruebas

Cdigo modular, intentando refactorizar
siempre que se pueda

www.dsic.upv.es/~letelier/pub
Programacin 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
Cubculos en el espacio exterior
Espacio de trabajo
del proyecto C3 de
DaimlerChrysler
www.dsic.upv.es/~letelier/pub
Prcticas XP

El juego de la
planificacin
Entregas pequeas
Metfora
Diseo simple
Pruebas
Refactoring



Programacin en
parejas
Propiedad colectiva
Integracin contnua
Semana de 40 horas
Cliente in situ
Estndares de
programacin
www.dsic.upv.es/~letelier/pub
Prcticas XP
El Juego de la planificacin
Decisiones de negocio (cliente):
Alcance Cundo debe estar listo el producto
para que sea valioso en produccin?
Prioridad Prioriza la incorporacin de las user-
stories
Composicin de entregas Qu se necesita
para que el negocio sea mejor antes de tener el
sw?
Fechas de entrega Fechas cuando el software
funcionando causara una gran diferencia
www.dsic.upv.es/~letelier/pub
Prcticas XP
... El Juego de la planificacin
Decisiones tcnicas (programadores y otros):
Estimaciones Cunto tiempo tardar en
implementarse una user-story?
Consecuencias Tener en cuenta las
consecuencias tcnicas de determinadas decisiones
de negocio
Proceso Organizacin del proceso y el equipo
Planificacin detallada Dentro de una entrega,
qu
user-stories se realizan primero. Intentar trasladar los
segmentos de desarrollo ms arriesgados al principio,
intentando respetar las prioridades del negocio

www.dsic.upv.es/~letelier/pub
Reunin diaria Stand-up Meeting
Todo el equipo
Problemas
Solutiones
De pie en un crculo
Evitar discusiones largas
Sin conversaciones separadas
Prcticas XP
... El Juego de la planificacin
Reunin diaria XP
www.dsic.upv.es/~letelier/pub
Prcticas XP
Entregas pequeas
Cada entrega es lo ms corta
posible:
Contenga requisitos ms valiosos del
sistema (bsicos)
Reducen el riesgo mayor
retroalimentacin desde el cliente, y
ms frecuente
Minimizar el n de user-stories que
componen una entrega No
realizar user-stories a medias

www.dsic.upv.es/~letelier/pub
Prcticas XP
Metfora
Cada proyecto XP es guiado por una
metfora global

Da un contexto al equipo para entender
los elementos bsicos y sus relaciones

Proporciona integridad conceptual

www.dsic.upv.es/~letelier/pub
Prcticas XP
Diseo simple
Se disea la cosa ms simple que pueda
funcionar
Uso de tarjetas CRC
Diseo de software correcto, es aquel que:
Supera todas las pruebas
No tiene lgica duplicada
Pone de manifiesto las intenciones importantes
de los programadores
Tiene el mnimo nmero de clases y mtodos

www.dsic.upv.es/~letelier/pub
Prcticas XP
Pruebas
Las pruebas unitarias se escriben
ANTES que el cdigo
Pruebas automatizadas
Permiten el desarrollo de proyectos
de forma rpida y segura
Pruebas unitarias programadores
Pruebas funcionales cliente
Resultado Un programa cada
vez ms seguro
www.dsic.upv.es/~letelier/pub
Prcticas XP
Refactoring
www.refactoring.com
Refactorizacin = Mejora del cdigo

Intentar eliminar complejidad
Cdigo duplicado Refactorizacin

Se plantea su aplicacin despus de
implementar cada user-story

www.dsic.upv.es/~letelier/pub
www.dsic.upv.es/~letelier/pub
Prcticas XP
Programacin en parejas
www.pairprogramming.com
Toda el cdigo se escribe en parejas
Se produce cdigo de mayor calidad

Extiende el conocimiento

Se realiza el trabajo de 1 persona en casi
la mitad del tiempo y mejor
(cuestionable)


www.dsic.upv.es/~letelier/pub
Prcticas XP
Propiedad colectiva
Cualquiera puede modificar el cdigo en
cualquier momento Se evitan cuellos de
botella en la codificacin

Todos asume las responsabilidades sobre el
conjunto del sistema

Todos conocen algo sobre todas las partes
y conocen muy bien aqullas en las que
trabajan
www.dsic.upv.es/~letelier/pub
Prcticas XP
Integracin contnua
El cdigo se integra y se prueba despus
de pocas horas

Existe una ordenador dedicado para la
integracin

Cada pareja integra su cdigo en dicho
ordenador

www.dsic.upv.es/~letelier/pub
Prcticas XP
Semana de 40 horas
Filosofa: Los programadores que
descansan son ms productivos

El exceso de trabajo es un serio problema
en un proyecto

La gente est ms fresca y tiene mejores
ideas

www.dsic.upv.es/~letelier/pub
Prcticas XP
Cliente in situ
Cliente real = Aquel que usar el
sistema cuando est en
produccin
El cliente real debe estar con el
equipo de trabajo:
Responder preguntas
Resolver disputas
Establecer prioridades
Discutir mejoras


www.dsic.upv.es/~letelier/pub
Prcticas XP
Estndares de programacin
Son fundamentales cuando los
programadores cambian de pareja o
hacen refactoring del cdigo de otros

Se consigue un cdigo con el mismo estilo,
homogneo, legible
www.dsic.upv.es/~letelier/pub
Prcticas XP
Interaccin entre Prcticas
XP: Kent Beck
www.dsic.upv.es/~letelier/pub
Conclusiones
42
www.dsic.upv.es/~letelier/pub
Un da de trabajo en XP

www.dsic.upv.es/~letelier/pub
Stories
Pair Programming
Frequent Releases
Daily Stand-up Meetings
Create Great Architectures
Working SW >>
Documentation
Collective Ownership
Improve Quality Iteratively
Collaboration>>Contracts
Nightly Builds (too early to tell)
Refactor (when time appropriate)
Ever-Present Customers (unlikely to work in real world)
Continuous Integration (unlikely for non-trivial)
Dont Create Things to Discard (moderation!) x

Mala
Precaucin
Buena
Nightly Builds
Refactoring
Cliente in situ
Integracin contnua
No crear cosas que se desecharn
Historias de usuario
Programacin en parejas
Releases frecuentes
Reunin Stand-up cada da
Crear buenas arquitecturas
SW funcionando >>
Documentation
Propiedad colectiva
Mejora de la calidad
iterativamente
Colaboracin >> Contrato
No todas las ideas/prcticas
giles son buenas
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
www.dsic.upv.es/~letelier/pub
Fuerzas que influyen los enfoque
para el desarrollo de software
Grado de
Ceremonia/control
en el proceso
Tiempo
1950s 1960s 1970s 1980s 1990s 2000s 2010s
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
www.dsic.upv.es/~letelier/pub
Qu resultado proveen las
Metodologas giles?
Hay pocos datos concretos del ndice de xito
de proyectos
Est teniendo un gran auge
Aumento en el nmero de proyectos
Por qu?
Tiene el apoyo de muchos gurs en ingeniera de sw
Es un proceso para gente que odia los procesos
Tiene sentido
Poltica? ... Pugna entre comunidades

www.dsic.upv.es/~letelier/pub
Cundo utilizar una
Metodologa gil?
Existe ya un proceso? Si
Reacciona bien a los cambios? Si
Est el equipo contento con l? Si

Mejor esperar
Se estn recogiendo datos (red NAME)
http://name.case.unibz.it/
En un futuro se podrn hacer comparaciones sobre lo
que es ms conveniente


www.dsic.upv.es/~letelier/pub
... Cundo utilizar una
Metodologa 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

Una Metodologa gil puede ser una
buena
forma de empezar
Fcil de financiar
A los programadores les gusta
A los clientes les gusta el control aadido

www.dsic.upv.es/~letelier/pub
Qu hace la gente con las
Metodologas 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
Metodologas giles y XP
Departamento de Sistemas Informticos y Computacin
Universidad Politcnica de Valencia
Fin de la Presentacin
Patricio Letelier
letelier@dsic.upv.es

Anda mungkin juga menyukai