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
¿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
2
¿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
3
¿Qué es XP?
 Valores que intenta fomentar
la filosofia XP:
 Comunicación
 Simplicidad
 Retroalimentación
 Coraje
04/02/03
4
Actores
 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
04/02/03
Cliente (Customer)
 Es parte del equipo
 Determina qué
construir y cuándo
 Escribe tests
funcionales para
determinar cuándo
está completo un
determinado aspecto
5
Actores
 Entrenador (Coach)
 El líder del equipo - toma  Probador (Tester)
las decisiones
 Ayuda al cliente con
importantes
las pruebas
 Principal responsable
funcionales
del proceso
 Se asegura de que los
 Tiende a estar en un
tests funcionales se
segundo plano a medida
ejecutan
que el equipo madura
 Rastreador (Tracker)
 Metric Man
 Observa sin molestar
 Conserva datos
históricos
04/02/03
6
El proceso
Mientras(sistema_es_útil) {
Captar requisitos
 User Stories
 Methaphor
Planificar
 Release planning
 Iteration planning
Desarrollar
 Programming
Presentar la entrega
 Releasing
}
04/02/03
7
Prá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
8
Prá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
9
La 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
10
La gran foto
04/02/03
11
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
12
¿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
13
¿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
14
¿Cómo empezar?
 Incrementalmente
 De “Extreme Programming Explained”:
 Escoge tu peor problema
 Resuelvelo al estilo XP
 Repite
04/02/03
15
Experiencias 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
16
Resumen

XP es una forma de desarrollar software
bien 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
17
Dónde encontrar más
URL’s
http://www.extremeprogramming.org/
Web de XP
http://www.xprogramming.com
An Extreme Programming Resource
http://www.martinfowler.com/articles/designDead.html
Is Design Dead? (Martin Fowler, Chief Scientist, ThoughtWorks)
http://www.martinfowler.com/articles/xp2000.html
The XP 2000 Conference
http://www.ucongres.edu.ar/cemun/cemun/hgest-pincirolli.htm
La importancia de un estándar para el desarrollo de sistemas (por Fernando
Pincirolli)
http://www.cimat.mx/ingsoft/seminario/XPresentation.zip
Seminario 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.html
An Introduction to XP O'Reilly Open Source Convention in San Diego, CA, 2327/07/2001
http://www.objectmentor.com
Object Mentor - Extreme Programming at the Speed of Change
04/02/03
18
Dónde encontrar más
URL’s
http://www.egroups.com/group/extremeprogramming
Discussion of Extreme Programming practices and principles
http://www.martinfowler.com/articles/newMethodology.html
The New Methodology
LIBROS / 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
19
04/02/03
20
Descargar

Extreme Programming - Universidad Politécnica de Valencia