Valores de Metodologías Ágiles - Valorar al individuo y a las interacciones del equipo de desarrollo por sobre el proceso y por sobre las herramientas - Desarrollar software que funcione por sobre buena documentación - Valorar la colaboración con el cliente más que la negociación de un contrato - Poder responder a los cambios antes que seguir estrictamente un plan Los valores impulsan 12 principios - Prioridad en satisfacer al cliente mediante tempranas y continuas entregas de software que aporten valor - Dar la bienvenida al cambio - Entregar frecuentemente software que funcione (desde un par de semanas hasta un par de meses) - La gente del negocio y los desarrolladores del producto deben trabajar juntos a lo largo del proyecto - Debo construir el proyecto en un entorno de individuos motivados - El diálogo cara a cara es el medio más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo - El avance o medida del proyecto se hace en base al software que funciona - Desarrollos sostenibles. A lo largo del proyecto no produzco baches que hagan peligrar el proyecto (El gerente no renuncia, el cliente motivado) - Hace hincapié en la calidad técnica y buen diseño (clave para avanzar más rápidamente) - La simplicidad es esencial en el proyecto - Equipos de trabajo organizados por sí mismos (motiva más al equipo) - Reflexión del equipo para mejorar Aplicación a XP Tipos de proyectos: Con requisitos imprecisos y cambiantes. Alto riesgo técnico (funcionalidades complejas) Características generales: * Realimentación continua entre cliente y equipo de desarrollo * Comunicación fluida entre todos los participantes del proyecto y el cliente * Simplicidad en las soluciones * Preparación para enfrentar cambios Características esenciales: **Historias de usuario** * Especificar requisitos * Tarjeta de papel donde el cliente describe brevemente las características que debe tener el sistema. Tanto requisitos funcionales como no funcionales (p. ej. confiabilidad) * Una HdU tiene que cumplir condiciones: Que sea comprensible y acotada. Implementable en unas pocas semanas (max 7) * Granularidad: Una HdU por cada característica que se considere importante * Asignación: 1 o 2 HdU por mes por programador * Planificación: 1 Iteración de HdU en 2/4 semanas **Roles XP** * Programador: Produce el código del sistema.Escribe pruebas unitarias * Cliente: Responsable de escribir las HdU. Escribir pruebas funcionales. Prioriza las HdU. Decide cuales se implementan en cada iteración. * Tester: Colabora con el cliente en escribir las pruebas funcionales. Ejecuta las pruebas funcionales. Difunde los resultados de las pruebas. Responsable de las herramientas de soporte de las pruebas. * Tracker: Realimenta al equipo de proyecto en el proceso XP. Grado de acierto entre la estimación y la realidad. Progreso iteración * Coach: Responsable del proceso global de XP. Proveer lineamientos al equipo del proyecto tal que se ejecute correctamente el proceso XP. * Consultor: Guía al equipo para resolver problemas específicos * Big Boss: Coordinación. Vincula a clientes con programadores ** Procesos XP:** * Exploración: Clientes definen HdU. Equipo desarrollo: se familiariza con herramientas y tecnologías. Primer prototipo. * Planificación de las entregas: Cliente: prioriza HdU. Equipo de desarrollo: estimación esfuerzo por HdU. * Iteraciones: ... * Producción: Pruebas adicionales. Evaluación rendimiento. Inclusión de cambios * Mantenimiento: Primera versión funcionando e ingresando a la fase de mantenimiento. Inclusión de cambios en cartera. Nuevas iteraciones para nuevas HdU. * Muerte del proyecto: No existen HdU adicionales. No es beneficioso evolucionar el proyecto. ** Prácticas de XP: ...**