Está en la página 1de 2

Mientras la mayoría de metodologías tradicionales se basan en la previsibilidad, 

el método Extreme Programming XP


se basa en la adaptabilidad. Cualquier proyecto que pongas en marcha tendrá que hacer frente a una serie de
problemas, es algo inevitable, y la clave del éxito está en ser capaces de adaptarnos a los cambios con los que nos
encontraremos. Sus defensores aseguran que es más fácil tratar de ajustarse a esos cambios que definir todos los
requisitos al principio y luego tratar de controlar los cambios en los requisitos.
¿Qué es la programación extrema?
Si nos centramos en el ámbito empresarial, el método Extreme Programming XP, también conocido como
programación extrema, es una metodología ágil y flexible utilizada en la gestión de proyectos. Su pilar principal es
potenciar las relaciones interpersonales del equipo de desarrollo como factor clave para el éxito a través del trabajo en
equipo, el aprendizaje conjunto y la buena química entre todo el equipo de trabajo, unas buenas relaciones que nos
ayudarán a solventar sin problemas los cambios con los que nos encontraremos.
El Extreme (o XP) Programming es una metodología de desarrollo que pertenece a las conocidas como
metodologías ágiles (otras son Scrum, Kanban…), cuyo objetivo es el desarrollo y gestión de proyectos con eficacia,
flexibilidad y control.
Ambos conceptos, relacionados estrechamente, son distintos. Agile es el marco de trabajo para el desarrollo del
software, se hace mediante un proceso iterativo y define las prácticas y roles del equipo. Por su lado, el  XP
programming es una metodología basada en la comunicación, la reutilización del código desarrollado y la
realimentación.
La metodología Extreme Programming XP también hace énfasis en la retroalimentación continua entre el cliente y el
equipo de desarrollo, lo que la convierte en el método de trabajo ideal para los proyectos con requisitos imprecisos y
muy cambiantes. Son precisamente estas características las que nos impiden establecer los requisitos desde el
principio, como pasa con las otras metodologías convencionales, y ahí la capacidad de adaptación y de reajustarse de
esta metodología es la clave.
Funcionamiento de la programación extrema
Esta metodología sigue el esquema planificación > diseño > codificación > pruebas, desde donde se pasa al
lanzamiento o se vuelve a la planificación. Si empezamos en la fase de planificación, vemos que es el momento en
que se tienen en cuenta los valores, las historias del usuario, y se establecen los criterios de pruebas de adaptación y
el plan de desarrollo. En la fase de diseño tenemos que buscar las soluciones en punto para los diferentes prototipos,
pudiendo pasar por varios rediseños hasta llegar a la codificación.
En este punto, podemos hacer pruebas unitarias de integración continua, pasando a las pruebas de adaptación. Si el
proyecto no cumple con las expectativas volvemos a la casilla inicial y volvemos a iniciar todo el proceso, pero si
hemos alcanzado el punto ideal es la hora del lanzar al mercado el proyecto. Conviene destacar que  la fase de
planificación debe ser flexible y abierta a los cambios, lo que nos permite ofrecer una rápida respuesta a los
imprevistos que puedan surgir a lo largo del proyecto.
Ya hemos dicho que el trabajo en equipo es el factor clave para el éxito del proyecto así que es imprescindible que
cada actor asuma su rol en el proyecto. Así, los programadores se encargan de estimar los tiempos de desarrollo de
cada fase o actividad y programan el proyecto, mientras que el tester se responsabiliza de las pruebas y el tracker de
su seguimiento. También hace falta un coach o entrenador, que se ocupa de guiar y orientar al equipo. Un rol que no
debemos confundir con el del big boss, gestor o gerente del proyecto, que debe tener una idea general y conocer su
estado.
Por último, tenemos el papel del cliente. Será el responsable de definir y conducir el proyecto y sus
objetivos, ofreciéndonos un feedback en las diferentes fases donde participe que nos servirán para introducir las
mejoras o modificaciones convenientes. Es imprescindible que haya una interacción constante entre el cliente y el
equipo de desarrollo, una comunicación en las dos direcciones que nos permita completar el desarrollo de proyecto
de la forma más eficiente y efectiva posible.
El equipo de un proyecto de programación extrema
Los equipos de un proyecto de esta tipología y magnitud tienen normalmente las siguientes figuras y roles:
– Clientes: Establecen las prioridades y marca el proyecto. Suelen ser los usuarios finales del producto y quiénes
marcan las necesidades.
– Programadores: Serán los que se encargarán de desarrollar el Extreme Programming.
– Testers: se encargan de ayudar al cliente sobre los requisitos del producto.
– Coach: Asesoran al resto de componentes del equipo y marcan el rumbo del proyecto.
– Manager: Ofrece recursos, es el responsable de la comunicación externa y quien coordina las actividades.
En general, no obstante, los participantes en este tipo de equipos no siempre toman un rol fijo y contribuyen con
los conocimientos de cada uno en aras del beneficio colectivo.
Las planificaciones
Por una parte se deben planificar los plazos temporales del proyecto basándose en las exigencias del cliente. En base
a las estimaciones de coste y la dificultad del proyecto se marcan las prioridades y las fechas, no siempre de forma
precisa, pero sí orientativa.
Con la entrega de la planificación efectuada, se desarrolla la de la iteración en el que cada dos semanas se marca el
rumbo y se entrega el software útil después de cada uno de estos periodos bisemanales. Con esto se consigue que el
nivel de precisión sea mucho mayor, las estimaciones sobre los costes sean más exactas y la información mucho más
transparente.
Pruebas
Continuamente se han de efectuar una serie de pruebas automatizadas en base a los requisitos del cliente para
comprobar que todo funcione correctamente. Éstas han de hacerse de forma periódica y automática. Con las
planificaciones comentadas anteriormente se incluyen las entregas al final de cada iteración, éstas serán siempre con
el software probado y funcionando correctamente y será facilitado al cliente, que puede utilizarlo para cualquier
propósito, incluso para el usuario final. Los equipos XP también pueden hacer entregas a otros usuarios finales.
Diseño y programación
El diseño del programa suele ser simple y basado en la funcionalidad del sistema y se lleva a cabo durante todo el
proyecto, tanto durante la planificación de la entrega como en el de la iteración.
La programación del software se hace siempre en pareja, lo que se llama programar a dos manos. Se asegura con
este método que al menos un programador conoce y controla la labor de otro y queda revisado. La ventaja es que se
produce mejor código que en base a un programador aunque la dificultad de la misma sea mayor. El código es de
todos, con el desarrollo de las pruebas automáticas y la programación a dos manos se incluye también la posibilidad
de que cualquiera pueda añadir y retocar parte del código, aunque eso sí, deba ser un estilo común y cuyo resultado
sea como si sólo lo hubiera hecho una persona.
Uso de metáforas y otras ventajas
Se buscan frases o nombres que definan parte del programa para qué todos sepan a qué se refieren y cuál es su
funcionalidad. Por ejemplo está el “recolector de basura” de Java.
El Extreme Programming tiene como gran ventaja el de la programación organizada y planificada  para que no
haya errores durante todo el proceso. Los programadores suelen estar satisfechos con esta metodología. Es muy
recomendable efectuarlo en proyectos a corto plazo.
Esta metodología forma parte del extenso mundo de la gestión de proyectos Ágiles, metodologías que cada vez son
más adoptadas por las grandes empresas de internet para hacer frente a un mundo cada vez más cambiante y veloz.

También podría gustarte