XP vs SCRUM
Introdución:
Extreme Programming (XP) y Scrum están definitivamente muy ligados entre sí. Es un hecho que si perteneces a un equipo que lleva una de estas dos metodologías vas a tener un tiempo difícil encontrando diferencias entre una y otra. Las diferencias son mínimas, pero muy importantes. Personalmente creo que existen 4 principales diferencias entre Scrum y XP.
Desarrollo:
Los Equipos de Scrum normalmente trabajan en iteraciones (llamadas sprints) con una duración de 2 semanas a un mes. Los Equipos de XP normalmente trabajan con iteraciones muy cortas (1 o 2 semanas).
Los equipos de Scrum no permiten cambios en sus sprints. Una vez que el sprint planning meeting ha concluido y se llegó a una acuerdo para elegir los product backlog items, estos no pueden recibir cambios, por lo menos hasta el final del sprint. Los equipos XP aceptan los cambios con más facilidad en sus iteraciones. Siempre y cuando el equipo no haya empezado ya a trabajar en un requerimiento en particular , un nuevo requerimiento de un tamaño similar puede ser cambiado por otro equivalente en la iteración.
Los equipos de XP trabajan en un orden estricto. Los requerimientos que serán desarrollados son priorizados por el cliente (Product Owner en Scrum) y el equipo debe desarrollar los requerimientos en ese orden específico. En contraste, el product owner de Scrum prioriza los product backlog pero el equipo determina el orden en el que serán desarrollados.
Scrum no recomienda ninguna buena práctica de desarrollo. XP si lo hace. Personalmente amo las buenas prácticas de XP , particularmente cosas como el test-driven development, desarrollo basado en pruebas, pair programing, diseño simple, entre otros. Pienso que es un error de los equipos el pensar en “auto-organización, confiamos en ti , pero debes hacer estan buenas prácticas en específico”. Esto envía un mensaje confuso al equipo. Las buenas practicas de XP no es necesarios obligar a los equipos a realizarlas pues descubren sus virtudes por cuenta propia.
Extreme Programming (XP) y Scrum están definitivamente muy ligados entre sí. Es un hecho que si perteneces a un equipo que lleva una de estas dos metodologías vas a tener un tiempo difícil encontrando diferencias entre una y otra. Las diferencias son mínimas, pero muy importantes. Personalmente creo que existen 4 principales diferencias entre Scrum y XP.
Desarrollo:
Los Equipos de Scrum normalmente trabajan en iteraciones (llamadas sprints) con una duración de 2 semanas a un mes. Los Equipos de XP normalmente trabajan con iteraciones muy cortas (1 o 2 semanas).
Los equipos de Scrum no permiten cambios en sus sprints. Una vez que el sprint planning meeting ha concluido y se llegó a una acuerdo para elegir los product backlog items, estos no pueden recibir cambios, por lo menos hasta el final del sprint. Los equipos XP aceptan los cambios con más facilidad en sus iteraciones. Siempre y cuando el equipo no haya empezado ya a trabajar en un requerimiento en particular , un nuevo requerimiento de un tamaño similar puede ser cambiado por otro equivalente en la iteración.
Los equipos de XP trabajan en un orden estricto. Los requerimientos que serán desarrollados son priorizados por el cliente (Product Owner en Scrum) y el equipo debe desarrollar los requerimientos en ese orden específico. En contraste, el product owner de Scrum prioriza los product backlog pero el equipo determina el orden en el que serán desarrollados.
Scrum no recomienda ninguna buena práctica de desarrollo. XP si lo hace. Personalmente amo las buenas prácticas de XP , particularmente cosas como el test-driven development, desarrollo basado en pruebas, pair programing, diseño simple, entre otros. Pienso que es un error de los equipos el pensar en “auto-organización, confiamos en ti , pero debes hacer estan buenas prácticas en específico”. Esto envía un mensaje confuso al equipo. Las buenas practicas de XP no es necesarios obligar a los equipos a realizarlas pues descubren sus virtudes por cuenta propia.
| SCRUM | XP |
| Es una metodología de desarrollo ágil basada en la administración del proyecto. | Es una metodología de desarrollo que está más centrada en la programación o creación del producto. |
| Cada miembro de del equipo trabaja de forma indivisual. | Los miembro del equipo programan en parejas. |
| Las ietraciones de entrega son de 1 a 4 semanas. | Las ietraciones de entrega son de 1 a 3 semanas |
| Al finalizar un Sprint, las tareas del Sprint Backlog que se hayan realizado y que el Product Owner (propietario del producto) haya mostrado su conformidad ya no se retoca. Si funciona y está bién, se aparta y a otra cosa. | Las tareas se van terminando aunque son susceptibles de ser modificadas durante el transcurso de proyecto, incluso, después de que funcionen correctamente. |
| Trata de seguir el orden de prioridades que marca el Product Owneren el Sprint Backlog pero puede cambiarlo si es mejor para el desarrollo de la tareas. | El equipo de desarrollo sigue estrictamente el orden de prioridad de las tareas definido por el cliente. |
Conclusión:
Puedo notar que estas son pequeñas diferencias, pero importantes entre XP y Scrum. De cualquier manera, pueden tener un gran impacto en el equipo. Las buenas prácticas de XP son demasiado buenas y prácticas, pero pueden no funcionar bien para todos los equipos, es mejor que vean por si mismos cuales son las que más se adaptan a todo el equipo. Scrum es tambien muy bueno puesto que trae por muchas mejoras a la forma en que trabajan los equipos y parte de un buen punto para añadir las mejoras de XP.
Bibliografia:
https://es.slideshare.net/edgarespinoza/programacion-extrema
http://ingenieriadesoftware.mex.tl/52753_XP---Extreme-Programing.html
https://manifesto.co.uk/kanban-vs-scrum-vs-xp-an-agile-comparison/
http://www.islavisual.com/articulos/desarrollo_web/diferencias-entre-scrum-y-xp.php
"Una historia de guerra ágil".Henrik Kniberg.© 2007 C4Media Inc
http://ingenieriadesoftware.mex.tl/52812_Scrum.html
http://www.islavisual.com/articulos/desarrollo_web/diferencias-entre-scrum-y-xp.php
http://ingenieriadesoftware.mex.tl/52753_XP---Extreme-Programing.html

