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/032 ¿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/033 ¿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/034 ¿Qué es XP? Valores que intenta fomentar la filosofia XP: Comunicación Simplicidad Retroalimentación Coraje
04/02/035 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 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/036 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
04/02/037 El proceso Mientras(sistema_es_útil) { Captar requisitos User Stories Methaphor Planificar Release planning Iteration planning Desarrollar Programming Presentar la entrega Releasing }
04/02/038 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/039 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/0310 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/0311 La gran foto
04/02/0312 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/0313 ¿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/0314 ¿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/0315 ¿Cómo empezar? Incrementalmente De “Extreme Programming Explained”: Escoge tu peor problema Resuelvelo al estilo XP Repite
04/02/0316 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/0317 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/0318 Dónde encontrar más URL’s Web de XP An Extreme Programming Resource Is Design Dead? (Martin Fowler, Chief Scientist, ThoughtWorks) The XP 2000 Conference La importancia de un estándar para el desarrollo de sistemas (por Fernando Pincirolli) Seminario de Ing. de Software del CIMAT. Conferencia sobre XP. Pedro Pinto. 22/01/ An Introduction to XP O'Reilly Open Source Convention in San Diego, CA, /07/ Object Mentor - Extreme Programming at the Speed of Change
04/02/0319 Dónde encontrar más URL’s Discussion of Extreme Programming practices and principles 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/0320