XP es una metodología ágil de desarrollo de software que prioriza la programación por encima de la documentación. Esta metodología establece que los equipos de desarrolladores deben enfocarse en escribir código en lugar de caer en la sobreingeniería (over-engineering). Sin embargo, XP no recomienda programar sin estrategia ni planificación.
Un proceso saludable de XP se basa en un plan bien estructurado. Un proceso típico de XP integra elementos tales como planes de iteración, pruebas de aceptación y planes de liberación (release plans). La metodología XP no solo promueve buenas prácticas de comunicación, sino que también proporciona herramientas de comunicación sólidas. Por ejemplo, XP fomenta las reuniones de pie (stand-up meetings) para la comunicación diaria. Además, XP introduce la práctica de la programación en pareja (pair programming), la cual incrementa la calidad del código.
Según los autores de XP, cada ciclo de XP debe comenzar con un plan de iteración basado en el ciclo anterior. Además, cada ciclo debe realizar un conjunto de pruebas de aceptación antes de la liberación. Por ejemplo, el equipo puede definir un conjunto de pruebas al inicio de la iteración y enfocar sus esfuerzos en implementar la funcionalidad hasta que supere dichas pruebas.
A diferencia de la metodología en cascada (Waterfall), las pruebas tempranas de XP mejoran el proceso de desarrollo al realizar pruebas de aceptación tempranas, en las cuales los usuarios pueden reportar comportamientos no deseados, probar las funciones principales del software y reducir el costo de los requisitos malentendidos o modificados.
En contraste con la metodología en cascada, las pruebas tempranas de XP optimizan el proceso de desarrollo al llevar a cabo pruebas de aceptación tempranas, donde los usuarios pueden reportar comportamientos no deseados, validar las funciones principales del software y reducir el costo de los requisitos malentendidos o cambiantes.
La práctica de la programación en pareja no solo proporciona una revisión de código en tiempo real (live code review), sino que también fomenta el trabajo en equipo. Por ejemplo, la programación en pareja ayuda a los desarrolladores a construir funciones complejas. La doble verificación permite a los equipos garantizar mejores implementaciones. Sin embargo, la programación en pareja puede resultar costosa para equipos pequeños.
Las iteraciones y las entregas son la cereza del pastel; la metodología XP establece que el software debe desarrollarse mediante iteraciones. Cada iteración permite a los desarrolladores probar y liberar nueva funcionalidad, de modo que el software se construye paso a paso, función por función y de manera incremental. Este proceso no solo permite a los equipos entregar una versión funcional, sino que también permite a los usuarios dar retroalimentación (feedback) a los desarrolladores. Además, cada entrega incrementa el valor aportado al usuario final.
En conclusión, la Programación Extrema (XP) mejora significativamente el proceso de desarrollo de software a través de la verificación continua y la entrega iterativa. Al ejecutar pruebas de aceptación tempranas antes de cada liberación, los equipos garantizan que la funcionalidad principal esté minuciosamente validada. Además, cada iteración produce un incremento de software funcional y bien probado que entrega valor continuo a los usuarios finales.
