Entender cómo XP y Scrum difieren, se superponen y trabajan juntos.
XP y Scrum surgieron aproximadamente al mismo tiempo y comparten las mismas raíces, pero se enfocan en problemas diferentes.
Scrum se enfoca en la gestión de proyectos: ¿Cómo organizas el trabajo? ¿Qué roles necesitas? ¿Qué reuniones? ¿Qué artefactos? Scrum te da un marco para gestionar el flujo de trabajo a través de un equipo.
XP se enfoca en las prácticas de ingeniería: ¿Cómo escribes realmente el código? ¿Cómo aseguras la calidad? ¿Cómo mantienes saludable la base de código? XP te da prácticas para hacer bien el trabajo.
Por eso se complementan tan naturalmente. Scrum te dice qué construir en un sprint. XP te dice cómo construirlo.
A pesar de diferentes enfoques, XP y Scrum comparten conceptos clave:
Un equipo "haciendo Scrum" se ve muy parecido a un equipo "haciendo XP" desde afuera. La diferencia está bajo el capó.
Scrum es silencioso sobre las prácticas de ingeniería. La Guía de Scrum no dice nada sobre TDD, programación en parejas, refactorización o integración continua. Asume que los equipos descubrirán las prácticas técnicas por sí mismos.
XP es prescriptivo sobre las prácticas de ingeniería. XP dice que debes escribir las pruebas primero. Deberías programar en parejas. Refactorizarás continuamente. Integrarás muchas veces al día.
Scrum define roles. Product Owner, Scrum Master, Equipo de Desarrollo. Estos roles tienen responsabilidades específicas.
XP es flexible sobre los roles. Hay un cliente y desarrolladores. Eso es todo. XP asume que el equipo se auto-organizará alrededor de los roles según sea necesario.
Scrum tiene eventos específicos. Planificación del Sprint, Scrum Diario, Revisión del Sprint, Retrospectiva del Sprint.
XP tiene cadencias más flexibles. Juego de planificación, standup, demo de iteración—similares, pero menos rígidamente definidos.
La Diferencia Real
Scrum te dice cómo organizarte. XP te dice cómo programar. La mayoría de los equipos exitosos necesitan ambos.
Muchos equipos exitosos usan el marco de Scrum con las prácticas técnicas de XP. Esta combinación es poderosa:
Esto no es "impuro" ni incorrecto. Los creadores originales de Scrum esperaban que los equipos trajeran prácticas de ingeniería. XP las proporciona.
Un patrón común:
Los equipos a menudo llaman a esto "Scrum con prácticas de ingeniería de XP" o simplemente "hacer bien lo ágil."
Un equipo ejecuta sprints de dos semanas (Scrum) con TDD, programación en parejas e integración continua (XP). El Scrum Master facilita el proceso; los desarrolladores son dueños de las prácticas técnicas.
Un equipo ejecuta sprints y tiene todos los eventos de Scrum, pero no escribe pruebas, nunca refactoriza e integra solo al final del sprint. Son 'ágiles' pero la calidad de su código se deteriora con cada sprint.
Puedes hacer XP sin Scrum. Algunos equipos prefieren el enfoque más ligero de XP:
Esto funciona bien para equipos que encuentran la estructura de Scrum demasiado pesada, o donde el trabajo llega continuamente (como operaciones o soporte).
La clave es que las prácticas técnicas de XP no son negociables. Ya sea que uses Scrum, Kanban o algo más para organizar el trabajo, TDD, refactorización e integración continua siguen siendo esenciales.
Ten Cuidado
Algunos equipos usan 'sin Scrum' como excusa para omitir la disciplina por completo. XP sin disciplina de ingeniería no es XP—es solo caos.