¿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 XP
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
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
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

 

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ácticas que 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!

¿Te pareció interesante? Compártelo:
Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Print this page
Print
Email this to someone
email

Sobre el Autor:

Agile Ninja