Programación Extrema (XP) frente a Scrum: Diferencias clave & cuándo usar cada uno

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.

Extreme Programming

Programación Extrema

Sprint Cycle

Ciclo de sprint

Sin embargo, hay algunas diferencias, algunas de las cuales son bastante sutiles, particularmente en los siguientes cuatro aspectos:

1. Duración de la iteración
Scrum
  • Normalmente de dos a cuatro semanas.
XP
  • Normalmente de una a dos semanas.
2. Si los requisitos pueden cambiarse durante la iteración
Scrum
XP
  • 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.
3. Si las historias de usuario se implementan estrictamente según la prioridad de la iteración
XP
  • 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.
Scrum
  • 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.
4. Si se adoptan prácticas de ingeniería estrictas para garantizar el progreso o la calidad
Scrum
  • No prescribe ninguna práctica de ingeniería específica.
XP
  • 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 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.

 

Dejar una contestacion