PROGRAMACIÓN EXTREMA (XP) Introducción XP es una Métodología Ágil Desarrollado por Kent Beck «Todo en el software cambia. Los requisitos cambian. El diseño cambia. El negocio cambia. La tecnología cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en sí mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando éste tiene lugar.» Introducción Estadísticas : método que más popularidad ha alcanzado de las metodologías ágiles Se basa en la suposición de que es posible desarrollar software de gran calidad a pesar, o incluso como consecuencia del cambio continuo Asume que con un poco de planificación, un poco de codificación y unas pocas pruebas se puede decidir si se está siguiendo un camino acertado o equivocado, evitando así tener que echar marcha atrás demasiado tarde. Valores que inspiran XP Simplicidad Retroalimentación Coraje Comunicación Valores que inspiran XP: Simplicidad La simplicidad consiste en desarrollar sólo el sistema que realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales. Los costos y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro. Con este principio de simplicidad, junto con la comunicación y el feedback resulta más fácil conocer las necesidades reales Valores que inspiran XP: Feedback Una metodología basada en el desarrollo incremental iterativo de pequeñas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-información valioso para detectar los problemas o desviaciones. ◦ De esta forma fallos se localizan muy pronto. ◦ La planificación no puede evitar algunos errores, que sólo se evidencian al desarrollar el sistema. ◦ La retro-información es la herramienta que permite reajustar la agenda y los planes. Valores que inspiran XP: Coraje Implica saber tomar decisiones difíciles. Reparar un error cuando se detecta Mejorar el código siempre que tras el feedback y las sucesivas iteraciones se manifieste susceptible de mejora Tratar rápidamente con el cliente los desajustes de agendas para decidir qué partes y cuándo se van a entregar Valores que inspiran XP: Comunicación XP pone en comunicación directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance día a día, y es posible ajustar la agenda y las funcionalidades de forma consecuente. Reglas y Prácticas Dos ediciones del libro de Kent Beck Extreme Programming Explained ◦ Primera edición: 2000 ◦ Segunda edición: 2005 Hay cambios significativos entre ambas ediciones, que reflejan la evolución de XP y su maduración, incorporando algunas prácticas de otras metodologías ◦ Primera edición: 12 prácticas principales ◦ Segunda edición: 13 prácticas principales y 11 prácticas secundarias Reglas y Prácticas Planificación ◦ Historias de Usuario ◦ Plan de Entregas ◦ Plan de iteraciones ◦ Reuniones diarias de seguimiento Diseño ◦ Simplicidad ◦ Soluciones Spike ◦ Recodificación ◦ Metáforas Reglas y Prácticas Desarrollo del Código ◦ Disponibilidad del Cliente ◦ Uso de estándares ◦ Programación dirigida a pruebas ◦ Programación en pares ◦ Integraciones permanentes ◦ Propiedad colectiva del código ◦ Ritmo Sostenido Reglas y Prácticas Pruebas ◦ Pruebas Unitarias ◦ Detección y corrección de errores ◦ Pruebas de aceptación Portafolio de Ejercicio 2: Actividad 3 En grupos de 4 personas desarrolle una exposisión para el grupo de reglas y prácticas de XP indicado. ◦ Informe ◦ Diapositivas ◦ Tres preguntas de opción múltiple para los compañeros (Dentro del informe con la respuesta correcta) El trabajo deberá ser sustentado el día viernes, 15 de julio de 2022. 4. El programador construye ese valor de negocio 1. El cliente define el valor de negocio a implementar 3. El cliente selecciona qué construir de acuerdo con sus prioridades y las restricciones de tiempo. 2. El programador estima el esfuerzo necesario para su implementación Procesos y fases Procesos y Fases E L COSTO D E L CAM BIO Procesos y Fases Procesos y Fases: Planeación Procesos y Fases: Diseño Procesos y Fases: Codificación Procesos y Fases: Pruebas Roles Programador: ◦ Escribe las pruebas unitarias y produce el código del sistema. ◦ Define las tareas que conlleva cada historia de usuario. ◦ Estima el tiempo que requerirá cada historia de usuario. Cliente: ◦ Escribe las historias de usuario y las pruebas funcionales para validar su implementación. ◦ Asigna la prioridad a las historias de usuario y decide cuáles se implementan en cada iteración centrándose en aportar el mayor valor de negocio. Roles Tester ◦ Ayuda al cliente a escribir las pruebas funcionales. ◦ Ejecuta pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas. Tracker ◦ Encargado de seguimiento. ◦ Proporcionan realimentación al equipo. ◦ Debe verificar el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado, comunicando los resultado para mejorar futuras estimaciones. Ventajas y desventajas VENTAJAS DESVENTAJAS Relación estrecha con el cliente Mayor esfuerzo de trabajo Ausencia de trabajos de programación innecesarios El cliente se implica en el proceso Software estable debido a pruebas continuas Requiere mucho tiempo Menos errores gracias a la programación en pares Relativamente caro Ausencia de horas extra, gestión propia del tiempo Requiere control de versiones Aplicación rápida de cambios Requiere autodisciplina en la aplicación Código de comprensión sencilla en todo momento. Portafolio de ejercicios 3: Actividad 1 Formar equipos de 2 personas cada uno, asignar un rol diferente a cada miembro del equipo, en caso de requerirse, una persona puede tener mas de un rol. Involucar a los diferentes roles en cada una de las fases del proyecto. Cada miembro del equipo desarrollará, las actividades que le corresponda y presentará las evidencias. El Cliente luego de iniciado el proyecto cambiará un requerimiento así como las prioridades de entregas. Evidencias: Planeación: ◦ Asignación de roles a cada miembro del equipo ◦ Historias de usuarios ◦ Acuerdos sobre las historias(fecha de entrega, otros aspectos del proyecto) Diseño: ◦ Tarjetas CRC ◦ Respuesta del consultor Codificación: ◦ Simular Diseño de pantallas como la programación, e indicar quien o quienes se involucran en el desarrollo de cada funcionalidad. Evidencias: Pruebas ◦ Definir prueba de aceptación y Resultado de la aplicación de la Prueba En cualquier etapa ◦ Cambio del requerimiento por parte del cliente ◦ Sugerencias dadas por el Entrenador ◦ Estado del proyecto (al menos en dos puntos) ◦ Actividades de coordinación del Gestor. Incidencias Comentar todas las incidencias producidas durante este período. Hacer hincapié en cómo resultaron las estimaciones realizadas respecto del esfuerzo real. Establecer la nueva velocidad del proyecto y los ajustes previstos en el plan. (Deben indicarse cambios de requerimientos por parte del usuario y como se replantearon los mismos) FECHA DE ENTREGA : 15 DE JULIO DE 2022