Metodología Ágil de Desarrollo de Software - XP

MODELO XP

Define cuatro variables para
cualquier proyecto de software: costo, tiempo, calidad y
alcance.
Además, se especifica que, de estas cuatro variables,
sólo tres de ellas podrán ser fijadas arbitrariamente por
actores externos al grupo de desarrolladores

PROCESO XP

Si bien el ciclo de vida de un proyecto XP es muy
dinámico, se puede separar en las siguientes Fases:

Exploración

clientes plantean a grandes rasgos
las historias de usuario que son de interés para la primera
entrega del producto. Al mismo tiempo el equipo de
desarrollo se familiariza con las herramientas,
tecnologías y prácticas que se utilizarán en el proyecto.

Planificación de la Entrega (Release),

el cliente establece la prioridad de cada
historia de usuario, y correspondientemente, los
programadores realizan una estimación del esfuerzo
necesario de cada una de ellas. Se toman acuerdos sobre
el contenido de la primera entrega y se determina un
cronograma en conjunto con el cliente. Una entrega
debería obtenerse en no más de tres meses. Esta fase
dura unos pocos días.

Iteraciones,

Esta fase incluye varias iteraciones sobre el sistema antes de ser entregado. Los elementos que deben tomarse en cuenta durante
la elaboración del Plan de la Iteración son:
historias de usuario no abordadas,
velocidad del proyecto,
pruebas de aceptación no superadas en la iteración anterior y
tareas no terminadas en la iteración anterior.

Producción,

Requiere de pruebas
adicionales y revisiones de rendimiento antes de que el
sistema sea trasladado al entorno del cliente. Es posible que se rebaje el tiempo que toma cada
iteración, de tres a una semana. Las ideas que han sido propuestas y las sugerencias son documentadas para su posterior implementación

Mantenimiento

Mientras la primera versión se encuentra en
producción, el proyecto XP debe mantener el sistema en
funcionamiento al mismo tiempo que desarrolla nuevas
iteraciones. Para realizar esto se requiere de tareas de
soporte para el cliente. De esta forma, la velocidad de
desarrollo puede bajar después de la puesta del sistema
en producción

Muerte del Proyecto.

Es cuando el cliente no tiene más historias para ser
incluidas en el sistema. Esto requiere que se satisfagan
las necesidades del cliente en otros aspectos como
rendimiento y confiabilidad del sistema. Se genera la
documentación final del sistema y no se realizan más
cambios en la arquitectura. La muerte del proyecto
también ocurre cuando el sistema no genera los
beneficios esperados por el cliente o cuando no hay
presupuesto para mantenerlo.

Roles xp

Aquí Describiremos los roles de acuerdo con la
propuesta original de Beck.

1. Programador

Escribe las pruebas unitarias y
produce el código del sistema.

2. Cliente

Escribe las historias de usuario y las
pruebas funcionales para validar su implementación.
Además, asigna la prioridad a las historias de usuario y
decide cuáles se implementan en cada iteración. El cliente es sólo uno dentro del proyecto pero puede corresponder
a un interlocutor que está representando a varias
personas que se verán afectadas por el sistema.

3. Encargado de pruebas (Tester)

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.

4. Encargado de seguimiento (Tracker)

Proporciona
realimentación al equipo en el proceso XP. Verificar el grado de acierto entre las
estimaciones realizadas y el tiempo real dedicado, comunicando los resultados para mejorar futuras estimaciones. También realiza el seguimiento del progreso de cada iteración y evalúa si los objetivos son alcanzables con las restricciones de tiempo y recursos presentes.
Determina cuándo es necesario realizar algún
cambio para lograr los objetivos de cada iteración.

5. Entrenador (Coach)

Es responsable del proceso global. Es necesario que
conozca a fondo el proceso XP para proveer guías a los
miembros del equipo de forma que se apliquen las
prácticas XP y se siga el proceso correctamente.

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

7. Gestor (Big boss)

Es el vínculo entre clientes y programadores, ayuda
a que el equipo trabaje efectivamente creando las
condiciones adecuadas. Su labor esencial es de
coordinación