You are on page 1of 50

Metodologas giles y XP

Patricio Letelier
letelier@dsic.upv.es

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

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


Tradicional
Costo del cambio

Suposicin 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

2.

Dar la bienvenida a los cambios. Los AMs capturan los cambios para que el cliente tenga una ventaja competitiva
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

3.

www.dsic.upv.es/~letelier/pub

Manifiesto de las AMs


4.
5.

La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto
Construir proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir el trabajo El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar informacin dentro de un equipo de desarrollo El software que funciona es la medida principal de progreso

6.

7.

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 La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad

9.

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
Pocos Artefactos Pocos Roles

Metodologa No gil
Ms Artefactos Ms Roles

No existe un contrato tradicional o al Existe un contrato prefijado menos es bastante flexible


Cliente es parte del equipo de desarrollo (adems in-situ) El cliente interacta con el equipo de desarrollo mediante reuniones

Grupos pequeos (< 10 integrantes) Grupos grandes y trabajando en el mismo sitio 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

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)

Jefe de Proyecto
(Manager)

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

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
Encargado de Pruebas (Tester)

Entrenador

(Coach)

Ayuda al cliente con las pruebas funcionales Se asegura de que las pruebas funcionales se superan

Responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura

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 userstories 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

Prcticas XP

... El Juego de la planificacin


Reunin diaria XP
Reunin diaria Stand-up Meeting

Todo el equipo

Problemas Solutiones

De pie en un crculo

Evitar discusiones largas Sin conversaciones separadas

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

Un da de trabajo en XP

www.dsic.upv.es/~letelier/pub

No todas las ideas/prcticas giles son buenas


Mala Precaucin Buena

SW SW funcionando >> Working >> HistoriasStories de usuario Documentation Pair Programming Documentation Programacin en parejas Propiedad colectiva Frequent Releases Collective Ownership Releases frecuentes Mejora de la calidad Daily Stand-up Meetings Improve Quality Iteratively Reunin Standup cada da iterativamente Create Great Architectures Collaboration>>Contracts Crear buenas arquitecturas Colaboracin >> Contrato

Nightly Builds (too early to tell) Nightly Builds Refactor (when time appropriate) Refactoring Ever-Present Customers (unlikely to work in real world) Cliente in situ Continuous Integration (unlikely for non-trivial) Things Integracin contnua Dont Create to Discard (moderation!) x No crear cosas que se desecharn

www.dsic.upv.es/~letelier/pub

Diapositiva obtenida de la presentacin 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
1950s 1960s 1970s 1980s 1990s 2000s 2010s

www.dsic.upv.es/~letelier/pub

Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002

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

Fin de la Presentacin

Metodologas giles y XP
Patricio Letelier
letelier@dsic.upv.es

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia