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.
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.