¡Compártelo!

¿Eres un programador extremo? Introducción a eXtreme Programming

Si has oído hablar de Agile o agilidad, seguro que te suenan palabras como Scrum, Kanban o incluso el Agile Manifesto, pero ¿sabías que incluso antes del Agile Manifesto, publicado en 2001, ya existía un nuevo enfoque que estaba revolucionando la forma de hacer las cosas? Hoy te presentamos 🥁🥁🥁  ¡eXtreme Programming (XP)!

Como el tema da para mucho, de momento este va a ser un post introductorio, en el que comenzaremos comentando qué es XP, de dónde viene y cuáles son sus cuatro valores básicos sobre los que se construye una nueva estrategia de desarrollo software.

¿Cuándo surge eXtreme Programming?

Tenemos que remontarnos a 1990, donde se identifican dos grandes cambios que afectan al mundo del software:

  • El paradigma de programación, hasta el momento secuencial y orientado a procesos, pasa a ser orientada a objetos (POO).
  • Se produce el boom de las punto com (.com) y el mercado empieza a requerir un aumento del speed-to-market: ciclos de vida cortos adaptados a los posibles cambios.

Ante este panorama, Kent Beck, autor del libro “Extreme Programming Explained: Embrace Change”, ya estaba empleando ciertas técnicas dirigidas a adaptarse a los nuevos tiempos. Pero no fue hasta que se juntó con Ron Jeffries y Ward Cunningham donde pusieron en práctica el enfoque de Kent y lo mejoraron, dando lugar a eXtreme Programming.

¿Qué es eXtreme Programming?

La programación extrema o XP es una metodología ágil de desarrollo de software con el objetivo de conseguir un código de calidad y flexible y mejorar la productividad. Se trata de un método muy útil para abordar proyectos con requisitos cambiantes o poco definidos.

La clave de esta metodología es que es adaptativa, es decir, hace hincapié en la adaptabilidad, más que en la previsibilidad. Un criterio que deja de ser válido cuando entramos en el terreno de la incertidumbre y los cambios imprevistos.

Los 5 valores de eXtreme Programming

Para alcanzar el éxito en un proyecto de desarrollo, el framework eXtreme Programming considera imprescindible potenciar las relaciones interpersonales, promover el trabajo en equipo y favorecer la comunicación entre sus miembros.

eXtreme Programming estaba originalmente basado en 4 valores esenciales: comunicación, simplicidad, feedback y coraje. En la segunda edición de Extreme Programming Explained: Embrace Change, el libro de Kent Beck, este añadió un 5 valor: respeto.

1. Comunicación

Con objetivo de romper las clásicas barreras entre negocio y desarrollo, XP promueve que los requisitos sean comunicados y trabajados con el equipo de desarrollo mano a mano y no a través de documentación (aspecto que el Agile Manifesto recoge como uno de sus cuatro valores).

la comunicación en extreme programming
Fuente: Commitstrip

2. Simplicidad

La línea de XP respecto a la complejidad de las soluciones es tajante: empezar con la solución más simple. ¿Se podría realizar alguna funcionalidad extra fuera de lo mínimo que da valor? Pues se realizará más tarde (principio YAGNI: You Aren’t Gonna Need It). Enfatiza mucho en poner el foco en codificar las necesidades de hoy, no las de mañana, la semana que viene o dentro de un mes.

simplicidad, valor de extreme programming
Fuente: http://www.mryagni.com/

3. Feedback

De nuevo, comunicación, y no solo con el cliente, sino en todas direcciones. Feedback es un valor constante en XP y gran parte de sus prácticas van en esta dirección. Feedback por parte del sistema (los tests nos dicen qué tal lo estamos haciendo), del cliente por supuesto, pero también feedback del propio equipo.

La importancia del buen feedback en extreme programming
Fuente: Commitstrip

4. Coraje

Más allá de una metodología, eXtreme Programming se considera una disciplina: un conjunto de prácticas que se compensan entre ellas bajo el mismo paraguas. Y para ser realmente «extreme» debes cumplirla todas, lo cual no es fácil.

XP toma prácticas de sentido común y las lleva al límite, lo que muchas veces nos obliga a salir de nuestra zona de confort. Por ello, hay que ser valiente: valiente para recibir feedback, valiente para desechar un código en la que has estado horas trabajando… valiente para afrontar los cambios imprevistos.

Specificaciones: al principio y durante el proyecto extreme programming
Fuente: MonkeyUser

5. Respeto

Además, XP promueve algo tan básico como el respeto. Al igual que el feedback, en todas direcciones. Respeto por el trabajo de los demás y, sobre todo, respeto hacia uno mismo y tu trabajo.

El respecto es importante
Fuente: Dilbert

Conclusión

Hasta aquí la introducción a XP. Lo que quiero que te lleves con este post es que, independientemente de la metodología, lo importante son los valores sobre los que se sostiene. En una segunda parte, hablaremos de las 12 prácticasque implementan estos cinco valores y cómo aplicarlas, prácticas que ya revisamos en la formación interna que ofrecí a mis compañeros de Profile hace un par de semanas.


¡Hasta el próximo post! Sigue mientras tanto nuestros Agile Tips en nuestro canal de YouTube.  👍🏼¡Suscríbete! 

Artículos relacionados

jdk 21

Jdk 21: mejoras en la última versión LTS de Java

Cada 6 meses Java lanza una nueva versión de nuestro lenguaje favorito. Da igual si la estábamos esperando con ganas o si nos pilla por sorpresa, es algo que celebrar dentro de la comunidad. Esta vez la versión 21 incluye diferentes características estables, otras en

openAPI

Explorando OpenApi: estructura, rutas y seguridad

En este artículo, nos adentraremos en la utilización de OpenApi para crear los diferentes endpoints de nuestra aplicación, con sus diferentes objetos de request y response que necesitemos. ¡Vamos allá! ¿Qué es una API? Las API (Interfaz de Programación de Aplicaciones) son piezas de código

Cómo hacer una Regresión Lineal Simple en Machine Learning

Cómo hacer una Regresión Lineal Simple en Machine Learning

En la actualidad, el aprendizaje automático se ha convertido en una de las bases para resolver problemas y como ayuda a la toma de decisiones. En este artículo nos centraremos en el análisis y aplicación práctica de uno de los modelos predictivos más sencillos, el