Está en la página 1de 56

Extreme Programming (XP)

Grupo 03
Extreme Programming - Agenda

 Introducción
 Proceso y Fases
 Roles
 Prácticas
 Conclusiones
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
Extreme Programming - Introducción

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

 Características :
A los individuos y su interacción por encima de los procesos y las herramientas

El software que funciona por encima de la documentación exhaustiva

La colaboración con el cliente por encima la negociación contractual

La respuesta al cambio por encima seguimiento de un plan


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
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ñ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.»
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.
Extreme Programming - Introducción

 Valores que inspiran XP

SIMPLICIDAD FEEDBACK CORAJE COMUNICACIÓN


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.

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

 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
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
Extreme Programming – Proceso y Fases

 El costo del cambio


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
Extreme Programming – Proceso y Fases

 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

 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
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
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
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
Reglas y prácticas de XP - Planificación

 Utilizamos la “Velocidad del Proyecto” para


planificar
 Por Fecha
 Por Alcance
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
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
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
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
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

 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
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

 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
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
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
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

 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
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

 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
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
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)
Extreme Programming – Roles en XP
 Roles Opcionales en los proyectos:

 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.

 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.
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.
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.
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.
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.
Preguntas

También podría gustarte