04.extreme Programming
04.extreme Programming
04.extreme Programming
EXTREME PROGRAMMING
(XP)
XP
¿Qué es?
Objetivos
Valores
¿Qué es XP?
XP es una metodología ágil 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.
Entregas pequeñas
Se desarrolla primero la más mínima parte útil que le proporcione
funcionalidad al sistema, y poco a poco se efectúan incrementos que
añaden funcionalidad a la primera entrega, cada ciclo termina con una
entrega del sistema.
Diseño sencillo
Solo se efectúa el diseño necesario para cumplir con los
requerimientos actuales, es decir, no se abordan requerimientos
futuros.
Prácticas
Desarrollo previamente aprobado
Una de las características relevantes y propias de XP es que primero se
escriben las pruebas y luego se da la codificación, esto con la finalidad
de asegurar la satisfacción del requerimiento.
Propiedad colectiva
El conocimiento y la información deben ser de todos, por lo tanto no
se desarrollan islas de conocimiento, todos los programadores poseen
todo el código y cualquiera puede sugerir y realizar mejoras.
Prácticas
Integración continua
Al terminar una tarea, ésta se integra al sistema entero y se realizan
pruebas de unidad a todo el sistema, ésta práctica permite que la
aplicación sea más funcional en cada iteración y garantiza su
funcionamiento con los demás módulos del sistema.
Ritmo sostenible
No es aceptable trabajar durante grandes cantidades de horas ya que
se considera que puede reducir la calidad del código y la productividad
del equipo a mediano plazo, se sugieren 40 horas semanales.
Cliente presente
Se debe tener un cliente o usuario final tiempo completo, ya que en XP
éste hace parte del equipo de desarrollo y es responsable de formular
los requerimientos para el desarrollo del sistema.
XP
Modelo del Proceso
Flujo
Modelo del Proceso
El proceso de XP se presenta en fases, en XP se ejecuta teniendo
presente los principios y valores antes mencionados, los cuales
son un eje fundamental para el correcto desarrollo de cada fase
durante el ciclo.
Flujo del proceso
Exploración
En esta fase, los 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.
Customer
El cliente es quien 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 el mayor valor de negocio.
Pieza básica en desarrollos XP.
Define especificaciones.
Influye sin controlar.
Define pruebas funcionales.
Roles XP
Programmer
El programador es considerado el mas importante miembro del equipo
ya que escribe las pruebas unitarias y el código del sistema.
Pieza básica en desarrollos XP.
Más responsabilidad que en otros modelos de desarrollo.
Responsable sobre el código.
Responsable sobre el diseño (refactorización, simplicidad).
Responsable sobre la integridad del sistema (pruebas).
Coach
Es responsable del proceso global y se encarga de guiar a los miembros
del equipo para seguir el proceso correctamente.
Roles XP
Tester
Ayuda al cliente a escribir las pruebas funcionales. Ejecuta pruebas
regularmente, difunde los resultados en el equipo y es responsable de
las herramientas de soporte para pruebas.
Big Boss
Es el dueño de la tienda y el vínculo entre clientes y programadores. Su
labor esencial es la coordinación.
Consultor
Es un miembro externo del equipo con un conocimiento específico en
algún tema necesario para el proyecto ayuda al equipo a resolver un
problema específico y puede que no siempre haya un consultor como
parte del equipo.
Roles XP
Manager
Se encarga de agendar las reuniones, se asegura de que el proceso de
juntas sea seguido, registra los resultados de las reuniones para
futuros reportes para el Tracker. Asiste a las reuniones y trae
información importante para el equipo.
Doomsayer
Se asegura de que todos los miembros conozcan los riesgos del
proyecto.
Asegurándose:
De que todo el mundo sabe los riesgos que algo implica.
Que las malas noticias no se oculten ni sean pasadas por alto.
Que las malas noticias no sean exageradas.
Anti-Roles XP
StandardsAndMetodologyGuy
Normalmente un ex-académico, la clase de persona que nunca ha
hecho que un día valga la pena, código difícil en su vida, pero tiene el
poder de decirte que estas haciendo mal y por qué el emplear XP
puede no funcionar y no funcionará. Puede haber unas discrepancias
con el Manager.
GodHead
El tipo de persona que quiere ser el ChiefArchitect (rol que no existe
en esta metodología) o el Manager pero no lo es. Gusta de estar en el
centro de todo. Memoriza suficientes detalles del sistema para
abalanzarse dentro de cada discusión acerca del diseño. Toma
responsabilidad en todo lo que ve. Y el resto del equipo teme tocar su
código o el diseño sin el.
DESARROLLO ÁGIL
Fuentes:
AgileAlliance.org. (s/f). Extreme Programming (XP).
Bello, E. (2021). Descubre qué es el Extreme Programming y sus
características.
López, M. (2020). Extreme Programming: Qué es y cómo aplicarlo.
Mistry, A. (2019). Roles In Extreme Programming (XP).
ViewNext. (2020). Extreme Programming – XP.