Programación Extrema (XP) es un desarrollo ágil de softwaremarco diseñado para generar software de mayor calidad y mejorar la calidad de vida del equipo. XP es el marco ágil más específico en cuanto a prácticas de ingeniería adecuadasprácticas de ingeniería.
Scrum es un marco en el que las personas pueden resolver problemas complejos y adaptativos al mismo tiempo que entregan productos de alto valor de forma eficiente y creativa. Scrum en sí mismo es un marco sencillo que permite la colaboración efectiva del equipo en productos complejos.
Tanto Scrum como XP son metodologías ágiles, compartiendo conceptos comunes como el desarrollo iterativo, software funcional, lanzamientos y planificación de iteraciones,reuniones diarias de pie, retrospectivas y todos los demás elementos del proceso ágil. Estos dos enfoques son tan consistentes que puede ser difícil distinguir entre un equipo que practica XP y otro que practica Scrum.

Programación Extrema

Ciclo de sprint
Sin embargo, hay algunas diferencias, algunas de las cuales son bastante sutiles, particularmente en los siguientes cuatro aspectos:
- Normalmente de dos a cuatro semanas.
- Normalmente de una a dos semanas.
- No permite cambios en susprint.
- Una vez que elplanning del sprint está completo y un conjunto debacklog del productoelementos se compromete, esos elementos permanecen sin cambios hasta el final del sprint.
- Más fácil de cambiar durante la iteración.
- Mientras una característica específica no haya comenzado, se puede intercambiar una nueva característica de tamaño similar en la iteración del equipo XP en lugar de una no iniciada.
- Trabajar en orden de prioridad estricto.
- Las características a desarrollar son priorizadas por el cliente (el Propietario del producto), y el equipo debe tratarlas en secuencia.
- El Propietario de Scrum prioriza el backlog del producto, pero el equipo determina el orden en que desarrolla los elementos del backlog.
- Un equipo Scrum podría elegir trabajar en el segundo elemento más importante.
- No prescribe ninguna práctica de ingeniería específica.
- Sí, XP sí lo hace.
- Por ejemplo: TDD, programación en pareja, diseño simple, refactorización, etc.
Podemos resumir las diferencias entre XP y Scrum de la siguiente manera:
| Aspecto | Práctica | XP | Scrum |
| Duración de la iteración | Si los requisitos pueden cambiarse durante la iteración | 1–2 semanas | 2–4 semanas |
| Gestión de cambios durante la iteración | Si los requisitos están estrictamente ordenados por prioridad | Puede ser reemplazado por otro requisito del mismo tamaño si aún no se ha implementado. | Scrum no permite esto. No se permiten cambios después de que comienza el sprint, y elScrum Master lo aplica estrictamente. |
| Priorización de características | Si los requisitos están estrictamente ordenados por prioridad | Sí | No es necesario |
| Prácticas de ingeniería | Si se utilizan métodos de ingeniería estrictos para garantizar el progreso o la calidad | Muy estricto | Requiere que los desarrolladores estén conscientes |
Por lo tanto, creemos que el enfoque de XP es aceptable, pero introduce una paradoja en Agile: combinar la filosofía de XP con los principios de Agile envía un mensaje confuso a los equipos: «Ustedes son una organización completamente autogestionada, pero deben implementar TDD, programación en pareja, etc.»
Es claro que estas cuatro diferencias son bastante distintas:
- En Scrum, el énfasis está en la autoorganización.
- En XP, el énfasis está en las fuertes restricciones de prácticas de ingeniería.
Conclusión
Scrum es un marco de desarrollo de productos—un contenedor en el que se pueden agregar otras prácticas. XP es una de las prácticas que se pueden aplicar dentro del marco de Scrum. No hay razón para que un equipo elija entre Scrum y XP. Las reglas y prácticas de XP no son fáciles, y la mayoría de ellas son no negociables. Incorporar XP en Scrum puede ser una evolución natural para un equipo que comienza con Scrum y busca convertirse en un equipo Scrum profesional.