Programación Extrema eXtreme Programming (XP)
Historia de XP Creada por Kent Beck a raíz de su experiencia en el proyecto C3 en Chrysler Kent fue contratado para dirigir el proyecto Durante el proceso nació una nueva metodología: eXtreme Programming (XP) C3 concluyó exitosamente en 1997
Valores que fomenta XP Comunicación Simplicidad Retroalimentación Coraje
Roles XP Programador Jefe de Proyecto (Manager) Cliente (Customer) Responsable de decisiones técnicas Responsable de construir el sistema Sin distinción entre analistas, diseñadores o programadores En XP, los programadores diseñan, programan y realizan las pruebas Jefe de Proyecto (Manager) Organiza y guía las reuniones Asegura condiciones adecuadas para el proyecto Cliente (Customer) Es parte del equipo Determina qué construir y cuándo Establece las pruebas de aceptación
... Roles XP Encargado de Pruebas (Tester) Entrenador (Coach) Ayuda al cliente con las pruebas de aceptación Se asegura de que las pruebas aceptación se superan Rastreador (Tracker) “Metric Man” Observa sin molestar Mantiene datos históricos Entrenador (Coach) Responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura
Artefactos esenciales en XP Historias del Usuario Tareas de Ingeniería Pruebas de Aceptación Pruebas Unitarias y de Integración Plan de la Entrega Código
Historia de Usuario Número: 1 Nombre: Enviar artículo Usuario: Autor Modificación de Historia Número: Iteración Asignada: 2 Prioridad en Negocio: Alta (Alta / Media / Baja) Puntos Estimados: Riesgo en Desarrollo: (Alto / Medio / Bajo) Puntos Reales: Descripción: Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores (nombre, e-mail, afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepción del artículo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo. Observaciones:
Spike para Historia de Usuario
Tarea de Ingeniería Tarea Número tarea: Número historia: Nombre tarea: Tipo de tarea : Desarrollo / Corrección / Mejora / Otra Puntos estimados: Fecha inicio: Fecha fin: Programador responsable: Descripción:
Prueba de Aceptación Caso de Prueba Número Caso de Prueba: Número Historia de Usuario: Nombre Caso de Prueba: Descripción: Condiciones de ejecución: Entradas: Resultado esperado: Evaluación:
Prácticas XP El juego de la planificación Programación en parejas Entregas pequeñas Metáfora Diseño simple Pruebas Refactoring Programación en parejas Propiedad colectiva Integración continua Semana de 40 horas Cliente in situ Estándares de programación
… Prácticas XP Interacción entre Prácticas XP: Kent Beck
Escenarios en XP : Exploración ? Historias de Usuario Prioridad Riesgo Esfuerzo (puntos) Definir Historias de Usuario Estimar Esfuerzo y Riesgo Elaborar Spikes Spikes (Bosquejos)
Escenarios en XP: Planificación de la Entrega Velocidad de Proyecto (VP) puntos/semana Historias de Usuario N-ésima Iteración Primera Iteración Segunda Iteración Última Iteración Historias fuera de la entrega … 2 a 3 semanas Entrega <= 3 meses
Escenarios en XP : Comenzar Iteración Definir y ordenar Tareas de Ingeniería Historias de la Iteración Tareas de la iteración
Escenarios en XP : Programación Tareas de Historias de la iteración Historias de la Iteración Programación en Parejas Diseño Refactoring Programación Pruebas Unitarias Integración Pruebas de Integración Pruebas de Aceptación Pruebas de Aceptación de Historias de la iteración Versión del Producto
Escenarios en XP : Pruebas de Aceptación Definir Pruebas de Aceptación Pruebas de Aceptación Corregir errores Definir nuevas Historias Aplicar Pruebas de Aceptación
Esquema de un Proyecto XP
Entorno y clima de trabajo Espacio de trabajo XP Espacio abierto Mesas centrales Cubículos en el espacio exterior Espacio de trabajo del proyecto C3 de DaimlerChrysler
… Entorno y clima de trabajo Reunión diaria XP Reunión diaria: “Stand-up Meeting” Todo el equipo Problemas Soluciones De pie en un círculo Evitar discusiones largas Sin conversaciones separadas
… Entorno y clima de trabajo Gantt de Pared “Centro del universo del proyecto” “Punto de reunión para la “Stand-up Meeting” Obtenida de www.agiletek.com