Método Ágil XP


Esta es una metodología ágil creada por Kent Beck, centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico.

Ciclo de Vida - Metodología XP :

Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a implementar basado en la habilidad del equipo para medir la funcionalidad que puede entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los siguientes pasos :
  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.
En todas las iteraciones de este ciclo tanto el cliente como el programador aprenden. No se debe presionar al programador a realizar más trabajo que el estimado, ya que se perderá calidad en el software o no se cumplirán los plazos. De la misma forma el cliente tiene la obligación de manejar el ámbito de entrega del producto, para asegurarse que el sistema tenga el mayor valor de negocio posible con cada iteración.
El ciclo de vida ideal de XP consiste de seis fases: Exploración, Planificación de la Entrega (Release), Iteraciones, Producción, Mantenimiento y Muerte del Proyecto.




image002.jpg




Lista de Símbolos :


  1. Aceptación de cambio (Estado)
  2. Casos de Prueba (objeto)
  3. Cliente (sujeto)
  4. Coach / Tutor (sujeto)
  5. Código Base (objeto)
  6. Consultor (sujeto)
  7. Entregable (objeto)
  8. Equipo de Desarrollo (sujeto)
  9. Exploración (verbo)
  10. Gestor / Big Boss (sujeto)
  11. Historia de iteración (objeto)
  12. Historia de usuario (objeto)
  13. Integración continua (verbo)
  14. Iteración (objeto)
  15. Juego de Planificación (objeto)
  16. Mantenimiento (verbo)
  17. Metáfora (objeto)
  18. Muerte del proyecto (verbo)
  19. mini-versión / Versión pequeña (objeto)
  20. Plan de entrega (objeto)
  21. Plan de iteración (objeto)
  22. Planificación (verbo)
  23. Producción (verbo)
  24. Programación en pareja (verbo)
  25. Programador (sujeto)
  26. Prueba (verbo)
  27. Prueba de aceptación / Test del cliente (verbo)
  28. Refactorización / recodificación (verbo)
  29. Registro de velocidad del proyecto (objeto)
  30. Retroalimentación / feedback (verbo)
  31. Spike (objeto)
  32. Tester / Encargado de Pruebas (sujeto)
  33. Tracker / Encargado de seguimiento (sujeto)







Estado
Aceptación de Cambio
Noción
Impacto




Objeto
Caso de Prueba
Noción
  • Es un conjunto de condiciones o variables bajo los cuales se comprueba el funcionamiento de un sistema.
  • Se tiene una entrada conocida para la cual existe una salida conocida.
  • Se definen para distintos tipos de test.
Impacto
  • Se ejecuta el sistema bajo las condiciones o variables determinadas en cada caso para verificar que cada entrada produzca la salida correspondiente.
  • Se ejecutan al realizar las pruebas de aceptación con el cliente.
  • Se ejecutan en la fase de prueba.



Sujeto
Cliente
Noción
  • Es quien da inicio al desarrollo del sistema el cual se construye de acuerdo a sus necesidades.
  • Tiene participación activa en el desarrollo del sistema.
Impacto


Sujeto
Coach/Tutor
Noción
  • Es el responsable del proceso global.
  • Debe proveer guías al equipo de desarrollo de forma tal que se apliquen las prácticas de la programación extrema y se siga el proceso correctamente.
  • Se encarga de coordinar al equipo de desarrollo.
Impacto




Objeto
Código Base
Noción
Impacto




Sujeto
Consultor
Noción
  • Persona externa al equipo de desarrollo con un conocimiento específico en algún tema necesario para el proyecto.
  • Guía al equipo de desarrollo en la resolución de problemas específicos aportando conocimiento especifico sobre un tema en particular.
Impacto




Objeto
Entregable
Noción
Impacto




Objeto
Equipo de Desarrollo
Noción
  • Son las personas responsables de desarrollar el sistema. Está formado por los programadores y testers.
Impacto




Verbo
Exploración
Noción
Impacto




Sujeto
Gestor / Big Boss
Noción
  • Es la persona encargada de hacer de nexo entre cliente y programadores.
  • Se encarga de la coordinación.
Impacto




Objeto
Historia de iteración
Noción
Impacto




Objeto
Historia de usuario
Noción
Impacto




Verbo
Integración continua
Noción
  • Proceso que consiste en la constante inclusión de avances del código nuevo al código base.
  • Son llevadas a cabo por el equipo de desarrollo.
  • Se realiza al menos una vez al día.
Impacto





Verbo
Iteración
Noción
Impacto





Verbo
Juego de planificación
Noción
Impacto




Verbo
Mantenimiento
Noción
  • Es una fase del ciclo de vida de la metodología xp, en la cual se realizan tareas de soporte al cliente.
  • Se realiza luego de que el primer entregable se encuentra en producción.
Impacto




Objeto
Metáfora
Noción
Impacto



Objeto
Mini-Versión / Versión Pequeña
Noción
  • Son versiones del código base que agregan una funcionalidad pequeña adicional importante para al cliente respecto a un código base anterior.
  • Son llevadas a cabo por el equipo de desarrollo
Impacto
  • En cada iteración se producen nuevas versiones agregando aquellas funciones consideradas valiosas para el cliente.
  • Se genera un nuevo código base.







Verbo
Muerte del Proyecto
Noción
  • Es una fase del ciclo de vida de la metodología xp, en la cual se busca satisfacer las necesidades el cliente en aspectos de rendimiento y confiabilidad del sistema.
  • Ocurre cuando no hay mas historias de usuario para ser incluidas en el sistema.
  • Puede ocurrir también cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo.
Impacto
  • Se genera la documentación final del sistema
  • No se realizan más cambios en la arquitectura.



Objeto
Plan de Entrega
Noción
Impacto



Objeto
Plan de Iteracion

Noción
Impacto



Verbo
Planificación
Noción
Impacto


Verbo
Producción
Noción
  • Es una fase del ciclo de vida de la metodología xp, en la cual se realizan la prueba necesaria previo al traslado del sistema al entorno del cliente.
  • Ocurre antes de transferir el entregable a producción.
Impacto
  • Se realizan revisiones de rendimiento del entregable.
  • Se analiza la inclusión de nuevas características a la versión actual debido a cambios en las historias de usuario.
  • Se documentan ideas y sugerencias propuestas para ser implementadas durante la fase de mantenimiento.



Verbo
Programación en Pareja
Noción
Impacto




Sujeto
Programador
Noción
Impacto



Verbo
Prueba
Noción
Impacto
  • El programador escribe las pruebas unitarias antes de escribir código y ejecuta las pruebas unitarias las ejecuta constantemente ante un cambio.
  • El cliente escribe pruebas funcionales para cada historia de usuario a validar.
  • El tester realiza las pruebas integrales



Verbo
Prueba de aceptación / Test del cliente
Noción
  • Proceso por el cual el cliente da su conformidad sobre el funcionamiento de una parte del sistema.
  • Son confeccionadas en conjunto por el Tester y el Cliente para cada historia de usuario.
  • Se confeccionan al armar el plan de iteración.
  • Son ejecutadas por el Tester.
Impacto


Verbo
Refactorización / Recodificación
Noción
  • Proceso por el cual se modifica el código sin cambiar la funcionalidad volviéndolo más simple y entendible.
  • Lo realiza el programador.
  • Se realiza durante la fase de mantenimiento.
Impacto
  • Se elimina código repetido.
  • Se elimina código muerto.
  • Se modifica el código poco eficaz.
  • Se genera un nuevo código base.



Objeto
Registro de velocidad del proyecto
Noción
Impacto
  • Se asignan puntos a las historias de usuario, un punto equivale a una semana ideal de programación.
  • Las historias de usuario generalmente valen de 1 a 3 puntos.
  • Se registra la suma de la cantidad de puntos desarrollados en cada fase de iteración para tener una medida de velocidad.
  • Se utiliza este registro para realizar estimaciones más reales en cada fase de planificación, tomando en cuenta la velocidad de la última fase de iteración.




Verbo
Retroalimentación / Feedback
Noción
Impacto



Objeto
Spike
Noción
Impacto
  • Se realiza estimación de cada historia de usuario.
  • Se realizan pequeños programas para explorar soluciones y poder estimar historias de usuario con riesgos que no establecen con certeza la complejidad de las mismas.





Sujeto
Tester
Noción
Impacto



Sujeto
Tracker
Noción
  • Es el encargado de tomar mediciones y/o métricas del desempeño del equipo de desarrollo durante el proyecto.
  • Realiza un seguimiento de acuerdo a la planificación.
Impacto
  • Mide la velocidad del equipo, comparando las estimaciones frente al tiempo real dedicado.
  • Toma métricas y las documenta para poder ser usadas en futuros proyectos.
  • Agrega los datos obtenidos en el Registro de Velocidad del Proyecto.