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:

  • Respeto y comunicación: estos dos van de la mano. Aunque existan roles y jerarquías, todos los miembros del equipo deben comunicarse y respetarse. Comunicación cara a cara, aceptar comentarios y trabajar juntos para encontrar soluciones. En el XP no hay espacio para egos.

  • Valentía: se necesita valor para hacer algo que no funciona y probar otra cosa, además de adaptarse a los cambios.

  • Simplicidad: de las primeras cosas que se debe contemplar en un proyecto, la importante es preguntarse cómo resolver un problema de la manera más sencilla y optimizada. La idea es hacer un trabajo fácil de mantener, respaldar y revisar.

  • Feedback: la retroalimentación continua impulsa la mejora progresiva. Esta puede venir de otros miembros o el cliente, la idea es ajustar el software a su mejor versión posible.

Principios de la Metodología Extreme Programming


Dentro de la metodología XP, existen 15 principios, donde 5 se pueden destacar como los más importantes:

  1. Rapid feedback o retroalimentación rápida: el feedback debe suministrarse rápidamente, puesto que nada es más importante que el avance del proyecto. Este debe darse desde el respeto y el que lo recibe debe asegurarse de entenderlo al 100%.

  2. Assume simplicity o asumir simplicidad: el equipo debe enfocarse en lo importante, lo que se ha planificado y lo que debe entregarse. Nada de trabajo extra innecesario o repetir lo que ya está hecho.

  3. Incremental change o cambio incremental: la idea es siempre optar por implementar pequeños cambios al código (progresivamente), ya que es más fácil que aplicar grandes cambios al final.

  4. Embracing change o abrazar el cambio: los cambios son fundamentales y, si el cliente considera que hay que hacer alguno, el equipo debe trabajar conforme lo que solicite. No obstante, debe haber alguien que vele por la organización del equipo ante estos cambios y se encargue de filtrar cuáles son realmente necesarios, como se van a realizar y si hay tiempo para hacerlos.

  5. Quality work o trabajo de calidad: entregar un trabajo óptimo siempre es la meta. El producto final debe tener la mejor calidad posible.

Estos 5 principios son los que rigen cualquier decisión en la metodología XP. Esto significa que, si hay dudas con respecto a realizar alguna acción o de qué manera abordar una situación, se deben revisar los principios para tomar la decisión correcta. Por otra parte, existen otros 10 principios (también valiosos) de esta metodología, que son:

  • Enseñar a aprender.

  • Pequeña inversión inicial (para lograr que el trabajo sea óptimo).

  • Juega a ganar.

  • Trabajar con los instintos de las personas, no en contra de ellos (desde el respeto).

  • Responsabilidad aceptada.

  • Experimentos concretos (siempre y cuando no hagan perder el tiempo).

  • Comunicación abierta y honesta.

  • Adaptación local.

  • Viaja con poco equipaje (simplicidad).

  • Medición honesta.

¿Cuál es la estructura de un equipo que utiliza la Metodología XP? - Roles


Para que las prácticas se lleven a cabo correctamente, deben existir roles definidos en donde cada quien tenga una responsabilidad principal.

Actualmente, los roles no son tan importantes como las prácticas o los principios, puesto que estos se adaptan a cada equipo. No obstante, es importante conocer cuáles son todos los roles en su contexto general que, en total, son 6:

  • Customer o cliente: responsable de escribir historias de usuarios, establecer prioridades y formular la cartera de productos.

  • Developer o programador/desarrollador: es quien desarrolla el programa, escribe el código y realiza las tareas correspondientes para que este funcione.

  • Coach o entrenador: se encarga de vigilar el trabajo de todo el equipo, controla y enseña a sus miembros a implementar las prácticas del XP.

  • Tacker o rastreador: monitorea el progreso del proyecto y detecta los problemas.

  • Tester o comprobador: se encarga de probar el producto final, una versión de él mismo o una parte que haya que integrar. La calidad del programa depende de quien desempeñe este rol.

Doomsayer o pronosticador: identifica, rastrea y advierte al equipo sobre los posibles riesgos del proyecto.


image (2).webp
logomorado.png

Todos los derechos reservados © LarnU 2022

Nos respaldan:

corfo.png
startup.png

Producto

platanus.png

Oficinas:

🇨🇱 Chile

Avenida Apoquindo 6410, Of 605

Las Condes, Santiago

+569 81801932

Contáctanos:

  • LinkedIn - Círculo Negro
  • Facebook
  • Twitter
  • Instagram
bottom of page