04/02/031 extreme programming jose mª cubel navarro laboratorio de sistemas de información...
TRANSCRIPT
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
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
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
04/02/03 4
¿Qué es XP?¿Qué es XP?
Valores que intenta fomentar la filosofia XP: Comunicación Simplicidad Retroalimentación Coraje
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
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
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
}
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)
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)
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
04/02/03 11
La gran fotoLa gran foto
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
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
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
04/02/03 15
¿Cómo empezar?¿Cómo empezar?
Incrementalmente De “Extreme Programming Explained”:
Escoge tu peor problema Resuelvelo al estilo XP Repite
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
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
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
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
04/02/03 20