04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información...

20
04/02/03 1 eXtreme Programming eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia

Transcript of 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información...

Page 1: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 1

eXtreme ProgrammingeXtreme Programming

Jose Mª Cubel Navarro

Laboratorio de Sistemas de Información

Facultad de InformáticaUniversidad Politécnica de Valencia

Page 2: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 2

¿Qué es XP?¿Qué es XP?

Proceso software ligero Diseñado para entornos dinámicos Ideal para equipos pequeños (hasta 10

programadores) Basado en el código Alta dependencia en la comunicación informal,

verbal

Page 3: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 3

¿Qué es XP?¿Qué es 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 C3 concluyó exitosamente en 1997

Page 4: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 4

¿Qué es XP?¿Qué es XP?

Valores que intenta fomentar la filosofia XP: Comunicación Simplicidad Retroalimentación Coraje

Page 5: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 5

ActoresActores Programador

(Programmer) Responsable de

decisiones técnicas Responsable de

construir el sistema Sin distinción entre

analistas, diseñadores o codificadores

En XP, los programadores diseñan, programan y realizan las pruebas

Cliente (Customer) Es parte del equipo Determina qué

construir y cuándo Escribe tests

funcionales para determinar cuándo está completo un determinado aspecto

Page 6: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 6

ActoresActores Entrenador (Coach)

El líder del equipo - toma las decisiones importantes

Principal 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 históricos

Probador (Tester) Ayuda al cliente con

las pruebas funcionales

Se asegura de que los tests funcionales se ejecutan

Page 7: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 7

El procesoEl proceso

Mientras(sistema_es_útil) {Captar requisitos

User Stories Methaphor

Planificar Release planning Iteration planning

Desarrollar Programming

Presentar la entrega Releasing

}

Page 8: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 8

Prácticas clave en XPPrácticas clave en XP

El juego de planificación (The planning game) Entregas pequeñas (Short releases) Metáfora (Metaphor) Diseños simples (Simple designs) Pruebas (Testing) Refactorización (Refactoring)

Page 9: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 9

Prácticas clave en XPPrácticas clave en XP

Programación en parejas (Pair programming) Dominio colectivo del código

(Collective code ownership) Integración contínua (Continuous integration) Semana de 40 horas (40-hour week) Cliente in situ (On site customer) Estándares de codificación (Coding standard)

Page 10: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 10

La gran fotoLa gran foto

De forma aislada, cualquier práctica individual de XP tiene poco sentido

Pero en conjunto, unas compensan las carencias que las otras puedan tener Para evaluar XP tienes que mirar la gran foto, es

decir, todo el conjunto

Page 11: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 11

La gran fotoLa gran foto

Page 12: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 12

OK, ¿pero XP funciona?OK, ¿pero XP funciona? Probablemente

No hay datos concretos y reales en el índice de éxito de proyectos

No obstante está teniendo un gran crecimiento Aumento en el número de proyectos Han aparecido sitios web, grupos de noticias,

incluso artículos en el “Economist” ¿Por qué?

Tiene el visto bueno de algunos de los mejores:Booch, Gamma, Fowler, Cockburn, De Marco, Ambler

Proceso para gente que odia los procesos Tiene sentido

Page 13: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 13

¿Deberias probar XP?¿Deberias probar XP?

¿Tienes ya un proceso en su lugar? ¿Reacciona bien a los cambios? ¿Está tu equipo feliz con él?

Quizás deberías esperar Se están recogiendo datos sobre XP Serás capar de hacer comparaciones

Page 14: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 14

¿Deberias probar XP?¿Deberias probar XP?

Si no tienes ningún proceso Si no eres capaz de responder a cambios Si tu cliente no está feliz

XP es una gran forma de empezar Facil de financiar A los programadores les gustará XP A los clientes les gustará el control añadido

Page 15: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 15

¿Cómo empezar?¿Cómo empezar?

Incrementalmente De “Extreme Programming Explained”:

Escoge tu peor problema Resuelvelo al estilo XP Repite

Page 16: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 16

Experiencias con XPExperiencias con XP

XP 2000 Conference: Implantación progresiva de las prácticas Muy pocos usan XP al completo Prácticas más utilizadas:

Iteraciones cortas Refactorización Evolución progresiva (planning game)

Problemas surgidos: Objetivos mezclados Falta de comunicación

Page 17: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 17

ResumenResumen

XP es una forma de desarrollar softwarebien definida y bien estructurada

Está hecho para equipos de trabajo pequeños que trabajan en la misma localización

Especialmente idóneo para entornos dinámicos Prometedor pero no probado

Page 18: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 18

Dónde encontrar másDónde encontrar másURL’shttp://www.extremeprogramming.org/

Web de XPhttp://www.xprogramming.com

An Extreme Programming Resourcehttp://www.martinfowler.com/articles/designDead.htmlIs Design Dead?

(Martin Fowler, Chief Scientist, ThoughtWorks)http://www.martinfowler.com/articles/xp2000.htmlThe XP 2000

Conferencehttp://www.ucongres.edu.ar/cemun/cemun/hgest-pincirolli.htmLa

importancia de un estándar para el desarrollo de sistemas (por Fernando Pincirolli)

http://www.cimat.mx/ingsoft/seminario/XPresentation.zipSeminario de Ing. de Software del CIMAT. Conferencia sobre XP. Pedro Pinto. 22/01/2001

http://linux.oreillynet.com/pub/a/linux/2001/05/04/xp_intro.htmlAn Introduction to XP O'Reilly Open Source Convention in San Diego, CA, 23-27/07/2001

http://www.objectmentor.comObject Mentor - Extreme Programming at the Speed of Change

Page 19: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 19

Dónde encontrar másDónde encontrar másURL’shttp://www.egroups.com/group/extremeprogramming

Discussion of Extreme Programming practices and principleshttp://www.martinfowler.com/articles/newMethodology.html

The New MethodologyLIBROS / REVISTAS Extreme Programming Explained

Beck, Kent; Addison Wesley Extreme Programming Installed

Jeffries, Ron et al; Addison Wesley Planning Extreme Programming

Beck, Kent et al; Addison Wesley Refactoring – Improving the Design of Existing Code

Fowler, Martin; Addison Wesley Principles of Software Engineering Management Gilb, Tom; Addison Wesley Strengthening the Case for Pair Programming

Williams, Laurie et al;; IEEE SOFTWARE, July/August 2000

Page 20: 04/02/031 eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

04/02/03 20