Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Extreme Programming (XP) : Grupo 03
Extreme Programming (XP) : Grupo 03
Grupo 03
Extreme Programming - Agenda
Introducción
Proceso y Fases
Roles
Prácticas
Conclusiones
Extreme Programming - Introducción
Proceso Pesado :
* fuerte dependencia de planificaciones
* se establecen actividades
* se establecen artefactos
* se establecen herramientas y notaciones
* ESTAMOS MUY CONTROLADOS
Extreme Programming - Introducción
Características :
A los individuos y su interacción por encima de los procesos y las herramientas
Resumen
Simplicidad
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.
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
Extreme Programming - Introducción
Comunicación
5. Vuelve al paso 1
Extreme Programming – Proceso y Fases
Historias de Usuario
Técnica para especificar los reqs.
Fases
Exploración
Planificación de la Entrega
Iteraciones
Producción
Mantenimiento
Muerte del Proyecto
Extreme Programming – Proceso y Fases
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
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
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
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
Reglas y prácticas de XP - Planificación
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
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
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
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
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
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
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
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
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
Reglas y prácticas de XP - Codificación
Consultor
Doomsayer (Augur de desastres)
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.
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.
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.
Extreme Programming – Roles en XP
Roles Opcionales
Consultor
Es 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.