top of page
image (18).webp

Extreme Programming: que es, características y cómo funciona

Actualizado: 2 dic 2022



La metodología XP es una metodología de desarrollo ágil, por lo que tiene como objetivo el desarrollo y gestión de proyectos con eficacia, flexibilidad y control.


Formulada por Kent Beck en su libro “Extreme Programming Explained: Embrace Change” (1999), esta metodología fue la que predominó en los equipos de desarrollo durante los primeros años del siglo XXI; desplazada en popularidad por Scrum unos años después.


A pesar de esto, su éxito y efectividad no se pone en duda, puesto que ha sido más que demostrado. Es por esto que no podemos dejar de hablar sobre esta metodología, que asegura un enorme control sobre los proyectos y una implementación efectiva de prácticas de optimización de tiempo.


¿Qué es la Metodología XP?


El Extreme Programming o metodología XP es una metodología ágil de desarrollo de software, cuyo objetivo es promover la aplicación de prácticas de ingeniería apropiadas para la creación de software. Se basa en la comunicación, la reutilización del código desarrollado y la realimentación.


En ese sentido, su principal diferencia con respecto a otras metodologías es que pone a la adaptabilidad como prioridad, considerando los cambios sobre la marcha como acciones naturales e inevitables.


En XP, los equipos deben ser capaces de adaptarse a los cambios que puedan surgir, sin importar en qué punto de ciclo se encuentren. Esto, sin duda, es una visión más realista que establecer bases en un proyecto y esperar a que esto no varíe.


¿Cómo funciona el Extreme Programming o Metodología XP?


Al igual que el Scrum, el Extreme Programming es una metodología ágil que se basa en ciclos y entregas. En este caso, el objetivo principal es realizar ciclos de entrega rápidos y continuos, para conseguir los resultados esperados por el usuario final.


Para lograr lo anterior, la metodología XP se basa en prácticas y etapas predefinidas, con la finalidad de que el proceso tenga la máxima efectividad. Los ciclos son semanales, con reuniones periódicas con el cliente y otras prácticas que veremos a continuación.


Prácticas de la Metodología Extreme Programming


Al aplicar la metodología Extreme Programming, algunas prácticas entran en juego en el equipo, estas son:

  • Juego de planificación: así se le denomina a una reunión al principio de la semana que se tiene con el cliente para aclarar las funcionalidades prioritarias, expectativas y necesidades de proyecto. La finalidad de esto es definir el alcance, que siempre debe ser flexible y negociable.

  • Cliente siempre disponible: el cliente, o alguna persona asignada en su representación, debe estar siempre disponible para solventar dudas, realizar cambios y priorizar el alcance.

  • Entregas cortas: los ciclos de entrega suelen ser de una semana. En ese sentido, al final de la semana, el cliente recibe pequeñas actualizaciones o versiones del proyecto para que pueda aprobarlos y/o sugerir mejoras.

  • Metáfora: esta es una estrategia utilizada para facilitar a la comunicación con el cliente, al tratar de explicar las particularidades del sistema en términos que pueda entender mejor. Se trata de simplificar la comprensión, se ahorra tiempo y las expectativas se ajustan.

  • Diseño sencillo: aquí nos referimos al código, entre más sencillo, mejor, pero sin afectar el resultado. No siempre un código complejo es la solución, pero un código demasiado sencillo puede que no cubra las necesidades del cliente; hay que encontrar un equilibrio.

  • Pruebas de usuario: debe haber las que sean necesarias. Idealmente, estas deben hacerse antes de que el cliente pruebe el producto.

  • Ritmo sostenible: el respeto al factor humano, la motivación y la armonía son valores del Extreme Programming, por lo que los ciclos deben estar formados en función de semanas de hasta 40 horas o menos, para que suponga un ritmo de trabajo saludable para el equipo.

  • Trabajo en equipo o propiedad colectiva: esto hace referencia a la transparencia. Los proyectos deben ser conocidos y accesibles para todos los miembros. Sin permisos de acceso y sin ocultar partes del proyecto.

  • Programación en parejas: el trabajo en parejas garantiza que el desarrollo pase por una revisión constante y el aprendizaje sea clave en la ecuación.

  • Estandarización del código: cuando varias personas están desarrollando un software, es necesario estandarizar el código para que todos sigan las mismas reglas; con la finalidad de que parezca que todo lo hizo una misma persona y con orden.

  • Desarrollo a base de pruebas: las pruebas unitarias son fundamentales para la calidad del proyecto.

  • Refactoring: se trata de la mejora continua del proyecto, haciéndolo cada vez más inmune a errores y basándose en las pruebas, feedback y cambios.

  • Integración continua: cuando un ciclo o funcionalidad esté correctamente terminado, estos deben integrarse rápidamente a la versión del sistema. Es por esto que los periodos de entrega son cortos, puesto que impulsan a que las pruebas y correcciones se hagan cuanto antes, así como la integración.

Valores del Extreme Programming


Para que una metodología sea saludable y no genere un ambiente de tensión en el trabajo, debe tener valores claros que se aplican al momento de trabajar, como lo hace la XP. Estos valores son: