Xp

56
Extreme Programming (XP) Grupo 03

description

 

Transcript of Xp

Page 1: Xp

Extreme Programming (XP)

Grupo 03

Page 2: Xp

Extreme Programming - Agenda

Introducción Proceso y Fases Roles Prácticas Conclusiones

Page 3: Xp

Extreme Programming - Introducción

Proceso : conjunto de actividades ordenadas para lograr una serie de objetivos

Proceso Pesado : * fuerte dependencia de planificaciones

* se establecen actividades

* se establecen artefactos

* se establecen herramientas y notaciones

* ESTAMOS MUY CONTROLADOS

Page 4: Xp

Extreme Programming - Introducción

Como contraposición : Métodología Ágil

Características :A los individuos y su interacción de los procesos y las

herramientaspor encima

El software que funciona de la documentación exhaustivapor encima

La colaboración con el cliente la negociación contractualpor encima

La respuesta al cambio seguimiento de un planpor encima

Page 5: Xp

Extreme Programming - Introducción

Resumen

* Estamos menos controlado

* Preparados para el cambio

* Cliente forma parte del equipo

* Pocos artefactos

* Más importante software funcionando que

documentación

Page 6: Xp

Extreme Programming - Introducción

XP es una Métodología Ágil

Desarrollado por Kent Beck

«Todo en el software cambia. Los requisitos cambian. El diseñocambia. El negocio cambia. La tecnología cambia. El equipocambia. Los miembros del equipo cambian. El problema no es elcambio en sí mismo, puesto que sabemos que el cambio va asuceder; el problema es la incapacidad de adaptarnos a dichocambio cuando éste tiene lugar.»

Page 7: Xp

Extreme Programming - 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.

Page 8: Xp

Extreme Programming - Introducción

Valores que inspiran XP

FEEDBACK CORAJE COMUNICACIÓNSIMPLICIDAD

Page 9: Xp

Extreme Programming - Introducción

Simplicidad

La simplicidad consiste en desarrollar sólo el sistema que realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales.

Con este principio de simplicidad, junto con la comunicación y el feedback resulta más fácil conocer las necesidades reales

Los costos y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro.

Page 10: Xp

Extreme Programming - Introducción

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.

Page 11: Xp

Extreme Programming - Introducción

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

Page 12: Xp

Extreme Programming - Introducción

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

Page 13: Xp

Extreme Programming – Proceso y Fases

1. El cliente define el valor de negocio a implementar

2. El programador estima el esfuerzo necesario para su implementación

3. El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo

4. El programador construye ese valor de negocio

5. Vuelve al paso 1

Page 14: Xp

Extreme Programming – Proceso y Fases

El costo del cambio

Page 15: Xp

Extreme Programming – Proceso y Fases

Historias de Usuario Técnica para especificar los reqs.

Son tarjetas de papel

Debe ser lo suficientemente comprensible y delimitada para que los programadores puedan

implementarla en unas semanas

Page 16: Xp

Extreme Programming – Proceso y Fases

Fases

Exploración Planificación de la Entrega Iteraciones Producción Mantenimiento Muerte del Proyecto

Page 17: Xp

Extreme Programming – Proceso y Fases

Page 18: Xp

Reglas y prácticas de XP

Conjunto de actividades simples que guían los diferentes aspectos del desarrollo para seguir el proceso.

Se dividen en áreas del desarrollo Planificación Diseño Codificación Verificación

Page 19: Xp

Reglas y prácticas de XP - Planificación

El “Juego de la Planificación” Planificación se vuelve “emocional” Todos quieren planificar mejor

Conflictos Mirar la planificación como un Juego

Objetivos Jugadores Piezas Reglas

Page 20: Xp

Reglas y prácticas de XP - Planificación

El “Juego de la Planificación” Piezas: Historias de Usuario Objetivo: Poner en producción la mayor

cantidad de Historias de Usuario Jugadores: Desarrolladores y Encargados del

Negocio

Page 21: Xp

Reglas y prácticas de XP - Planificación

El “Juego de la Planificación” Movimientos:

Escribir Historia de Usuario Estimarla Comprometerse a realizar:

Por Historia Por Fecha Valor y Riesgo Primero

Recuperación por Sobrecarga Cambio de Valor de Historia Introducir nueva Historia Dividir una Historia Salto Re-estimar

Page 22: Xp

Reglas y prácticas de XP - Planificación

Escribir Historias de Usuario Similar a los Casos de Uso Usadas para estimaciones de tiempo en la

planificación de las liberaciones Usados en lugar del Documento de

Requerimientos Escritas por el Cliente en términos del Cliente Guían la creación de Pruebas de Aceptación

Page 23: Xp

Reglas y prácticas de XP - Planificación

Los Planes de Liberación organizan el Calendario Surgen en las reuniones de Planificación de

Liberaciones Utilizados para crear Planes de Iteraciones Decisiones Técnicas por el personal Técnico y

decisiones de negocio por el personal de Negocio

Page 24: Xp

Reglas y prácticas de XP - Planificación

El equipo estima la duración de la implementación de cada Historia de Usuario en “Semanas Ideales de Implementación”

El cliente prioriza las Historias teniendo en cuenta el valor que le aporta al sistema tenerla completa

Page 25: Xp

Reglas y prácticas de XP - Planificación

Medir la “Velocidad del Proyecto” ¿Cuánto trabajo está siendo completado en el

proyecto? Suma de las estimaciones de las Historias de

Usuario completas al fin de la Iteración Utilizada para planificar la siguiente Iteración

Page 26: Xp

Reglas y prácticas de XP - Planificación

Utilizamos la “Velocidad del Proyecto” para planificar

Por Fecha Por Alcance

Page 27: Xp

Reglas y prácticas de XP - Planificación

Liberaciones pequeñas y frecuentes Producir rápidamente versiones operativas del

sistema No debería tardar más de 3 meses

Page 28: Xp

Reglas y prácticas de XP - Planificación

Rotación del Equipo Ayuda a evitar “Islas de Conocimiento” Mejora la flexibilidad del equipo Evita la sobrecarga de una persona

Page 29: Xp

Reglas y prácticas de XP - Planificación

Mejorar el proceso cuando sea necesario Es bueno tener reglas para saber qué esperar

del equipo Si se detectan problemas en el avance se

debe revisar qué está mal Debe consultarse al equipo sobre qué cosas

dificultan el funcionamiento

Page 30: Xp

Reglas y prácticas de XP - Diseño

Diseño simple: Implementar la solución más simple que

pueda funcionar La complejidad innecesaria y el código extra

debe ser removido inmediatamente No agregar nuevas funcionalidades antes de

que sean agendadas

Page 31: Xp

Reglas y prácticas de XP - Diseño

Metáforas: El sistema es definido mediante una metáfora

o un conjunto de metáforas compartidas por el cliente y el equipo de desarrollo

Es una historia compartida que describe cómo debería funcionar el sistema

Solventan el hecho de no contar con una definición de la arquitectura desde el comienzo, ya que en XP la arquitectura se asume evolutiva

Page 32: Xp

Reglas y prácticas de XP - Diseño

Tarjetas CRC: Las Tarjetas CRC (Class, Responsibilities and

Collaboration) sirven para diseñar el sistema en conjunto entre todo el equipo

Permiten reducir el modo de pensar procedural y apreciar la tecnología de objetos

Page 33: Xp

Reglas y prácticas de XP - Diseño

No agregar funcionalidades antes de lo planeado: Parecería que fuera más rápido agregarlas

ahora pero nosotros debemos recordarnos constantemente que no las necesitamos ahora realmente y quizás nunca las necesitemos

Funcionalidades extra siempre nos hacen atrasar y malgastar nuestros recursos

Page 34: Xp

Reglas y prácticas de XP - Diseño

Refactorización: Es una actividad constante de

reestructuración del código con el objetivo de remover duplicación de código, mejorar su legibilidad, simplificarlo y hacerlo más flexible para facilitar los posteriores cambios

Mejora la estructura interna del código sin alterar su comportamiento externo

Nos ahorra tiempo e incrementa la calidad

Page 35: Xp

Reglas y prácticas de XP - Codificación

El cliente está siempre disponible: Gran parte del éxito del proyecto XP se debe

a que es el cliente quien conduce constantemente el trabajo hacia lo que aportará mayor valor de negocio

La comunicación oral es más efectiva que la escrita, ya que esta última toma mucho tiempo en generarse y puede tener más riesgo de ser mal interpretada

Page 36: Xp

Reglas y prácticas de XP - Codificación

Las historias de usuario son escritas por los clientes con la ayuda de los desarrolladores

El cliente debe negociar la selección de las historias de usuario que serán incluidas en una liberación

Como los detalles no son incluidos en las historias de usuario, los desarrolladores necesitarán hablar con los clientes para obtenerlos

El cliente es necesario con las pruebas

Page 37: Xp

Reglas y prácticas de XP - Codificación

El tiempo del cliente es ahorrado al principio por no requerir una especificación detallada de los requerimientos y ahorrado después ya que el sistema es mucho más probable que sea de su agrado

Page 38: Xp

Reglas y prácticas de XP - Codificación

Estándares de programación: XP enfatiza la comunicación de los

programadores a través del código, con lo cual es indispensable que se sigan ciertos estándares de programación

Mantienen el código legible para los miembros del equipo, facilitando los cambios

Page 39: Xp

Reglas y prácticas de XP - Codificación

Pruebas unitarias: La producción de código está dirigida por las

pruebas unitarias Las pruebas unitarias son establecidas antes

de escribir el código y son ejecutadas constantemente ante cada modificación del sistema

Otros desarrolladores podrán ver como usar el código observando las pruebas

Page 40: Xp

Reglas y prácticas de XP - Codificación

Programación en parejas: Incrementa la calidad del software sin

impactar el tiempo para cumplir lo prometido Muchos errores son detectados conforme son

introducidos en el código Los diseños son mejores y el tamaño del

código menor Los problemas de programación se resuelven

más rápido

Page 41: Xp

Reglas y prácticas de XP - Codificación

Se posibilita la transferencia de conocimientos de programación entre los miembros del equipo

Varias personas entienden las diferentes partes del sistema

Los programadores conversan mejorando así el flujo de información y la dinámica del equipo

Page 42: Xp

Reglas y prácticas de XP - Codificación

Integración secuencial: Solo una pareja de desarrolladores puede

integrar, testear y liberar cambios al repositorio de código en un momento determinado

Se permite que la última versión esté consistentemente identificada

Page 43: Xp

Reglas y prácticas de XP - Codificación

Integración continua: Cada pieza de código es integrada en el

sistema una vez que esté lista. Así, el sistema puede llegar a ser integrado y

construido varias veces en un mismo día Es una forma de que todo el mundo esté

trabajando con casi la última versión Evita o detecta antes los problemas de

compatibilidad

Page 44: Xp

Reglas y prácticas de XP - Codificación

Propiedad colectiva del código: Cualquier programador puede cambiar

cualquier parte del código en cualquier momento.

Motiva a todos a contribuir con nuevas ideas en todos los segmentos del sistema,

Evita que algún programador sea imprescindible para realizar cambios en alguna porción de código

Page 45: Xp

Reglas y prácticas de XP - Codificación

40 horas por semana: Se debe trabajar un máximo de 40 horas por

semana No se trabajan horas extras en dos semanas

seguidas El trabajo extra desmotiva al equipo

Page 46: Xp

Extreme Programming – Roles en XP

Los roles siempre presentes en esta metodología son los siguientes: Programador Cliente Encargado de pruebas (Tester) Encargado de seguimiento (Tracker) Entrenador (Coach) Gestor (Big Boss)

Page 47: Xp

Extreme Programming – Roles en XP

Roles Opcionales en los proyectos:

Consultor Doomsayer (Augur de desastres)

Page 48: Xp

Extreme Programming – Roles en XP

El programador escribe las pruebas unitarias y produce el código del sistema. Define las tareas que conlleva cada historia de usuario, y estima el tiempo que requerirá cada una.

El 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 mayor valor al negocio.

Page 49: Xp

Extreme Programming – Roles en XP

El encargado de pruebas ayuda al cliente a escribir las pruebas funcionales. Ejecuta las pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas.

El encargado de seguimiento verifica las estimaciones realizadas, evalúa el progreso de cada iteración y así como la factibilidad de los objetivos con las restricciones de tiempo y recursos presentes. Mantiene contacto directo con el equipo de desarrollo, realizando cambios para lograr los objetivos de cada iteración.

Page 50: Xp

Extreme Programming – Roles en XP

El entrenador es responsable del proceso global. Experto en XP, provee de las guías a los miembros del equipo para que se apliquen las prácticas XP y se siga el proceso correctamente. Determina la tecnología y metodologías a usar por el equipo de desarrollo.

El Gestor es el dueño del equipo y sus problemas. Experto en tecnología y labores de gestión. Construye el plantel del equipo, obtiene los recursos necesarios y maneja los problemas que se generan. Administra a su vez las reuniones (planes de iteración, agenda de compromisos, etc). No le dice al grupo lo que tiene que hacer, cuando hacerlo, ni verifica el avance de las tareas.

Page 51: Xp

Extreme Programming – Roles en XP

Roles Opcionales ConsultorEs un miembro externo del equipo con un conocimiento específico en algún tema necesario para el proyecto. Guía al equipo para resolver un problema específico.

Doomsayer (Augur de desastres)Es el responsable de que se conozcan los riesgos involucrados, que las malas noticias sean notificadas en la medida correcta, y que no se sobredimensionen. Busca posibles riesgos en forma constante, presentándolos al equipo siempre con una posible solución.

Page 52: Xp

Extreme Programming – Roles en XP

Combinación de Roles

Algunos roles pueden ser combinados en un mismo individuo. Por ejemplo, el Gestor y el Tracker.

Sin embargo, otras combinaciones no son recomendadas; como ser:

Programador–Tracker, Programador–Tester Cliente-Programador, Entrenador-Tracker.

Page 53: Xp

Extreme Programming – Conclusiones

XP es la metodología mas popular dentro de la familia surgida luego del manifiesto Ágil, las cuales buscan simplificar los procesos a través de la reducción de irreversibilidad de los mismos .

Dicha metodología ha probado ser de gran utilidad en proyectos pequeños y con requerimientos altamente cambiantes, aunque posee características que la hacen aplicable en ciertos ambientes únicamente.

Page 54: Xp

Extreme Programming – Conclusiones

Conceptos conocidos en los que se basa XP:

La alta comunicación funciona. Un único ambiente para el equipo aumenta la productividad dramáticamente.

La importancia de la Validación. XP reduce el tiempo entre una idea, su criterio de validación, y su implementación. Requiere disponer de pruebas repetibles automatizadas que aseguren la consistencia en el futuro.

El iterar funciona. XP obliga a iterar al establecer múltiples integraciones por día, iteraciones de una a tres semanas de largo que concluyan con un sistema funcionando, y nuevos lanzamientos cada pocos meses.

Page 55: Xp

Extreme Programming – Conclusiones

El futuro de XP Simplificación del proceso de planificación e

integración continua. Búsqueda de valores y principios ocultos que

puedan informar de métodos útiles. Límites de XP. Cuando se debe seguir? Cual

es su limite de integrantes? El rol del Cliente. Es un rol complejo de

interpretar, y probablemente su papel en el proceso de desarrollo de software continúe generando nuevas ideas.

Page 56: Xp

Preguntas