200 likes | 313 Views
eXtreme Programming. Jose Mª Cubel Navarro. Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia. ¿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
E N D
eXtreme Programming Jose Mª Cubel Navarro Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia
¿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
¿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
¿Qué es XP? • Valores que intenta fomentar la filosofia XP: • Comunicación • Simplicidad • Retroalimentación • Coraje
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 Actores
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 Actores
El proceso Mientras(sistema_es_útil) { Captar requisitos • User Stories • Methaphor Planificar • Release planning • Iteration planning Desarrollar • Programming Presentar la entrega • Releasing }
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)
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)
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
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
¿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
¿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
¿Cómo empezar? • Incrementalmente • De “Extreme Programming Explained”: • Escoge tu peor problema • Resuelvelo al estilo XP • Repite
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
Resumen • 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
Dónde encontrar más URL’s http://www.extremeprogramming.org/ Web de XP http://www.xprogramming.comAn Extreme Programming Resource http://www.martinfowler.com/articles/designDead.htmlIs Design Dead? (Martin Fowler, Chief Scientist, ThoughtWorks) http://www.martinfowler.com/articles/xp2000.htmlThe XP 2000 Conference http://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
Dónde encontrar más URL’s http://www.egroups.com/group/extremeprogrammingDiscussion of Extreme Programming practices and principles http://www.martinfowler.com/articles/newMethodology.html The New Methodology LIBROS / REVISTAS • Extreme Programming ExplainedBeck, Kent; Addison Wesley • Extreme Programming InstalledJeffries, Ron et al; Addison Wesley • Planning Extreme ProgrammingBeck, Kent et al; Addison Wesley • Refactoring – Improving the Design of Existing CodeFowler, Martin; Addison Wesley • Principles of Software Engineering Management • Gilb, Tom; Addison Wesley • Strengthening the Case for Pair ProgrammingWilliams, Laurie et al;; IEEE SOFTWARE, July/August 2000