SCRUM vs RUP
Como se sabe RUP es una metodología
para el proceso de software extensamente usado, pero cuando se piensa en una
metodología ágil o mejor dicho, en un marco de procesos como SCRUM, vienen al
momento los beneficios o desventajas que uno puede tener con el otro.
El enfoque en RUP es establecer
una serie de reglas para el desarrollo de un proyecto. Lo cual en proyectos de mediano tamaño nos encasilla
y limita en lugar de simplemente establecer orden. En SCRUM al contrario “los
principios SCRUM” si es que así se les puede llamar tienden a ser líneas guía y
“pactos funcionales” para los desarrolladores.
Comparando ambas metodologías, el
tipo de documentación de RUP enfatiza en las comunicaciones formales con la
finalidad de ser más predictivos, mientras que en SCRUM se enfatiza en las
comunicaciones informales continuas y a la adaptación al cambio, con la
finalidad de ser más adaptivas.
La otra diferencia está relacionada
con las iteraciones de desarrollo, mientras que en RUP tienden a ser pocas y
largas, en SCRUM tienden a ser muchas pero frecuentes. En la metodología SCRUM
se realizan reuniones diarias las cuales son llamadas ’Daily Scrum’ y es donde
se sostiene una pequeña charla sobre el estado del proyecto. En particular
muestran los impedimentos para progresar que se atraviesan y que la gerencia
debe resolver. También informan lo que se ha hecho para tener una actualización
diaria de dónde va el proyecto. La literatura de SCRUM se enfoca principalmente
en la planeación iterativa y el seguimiento del proceso.
Intervención de XP en SCRUM
Decir que SCRUM y XP
(Programación eXtrema) pueden combinarse de forma fructífera no es una
afirmación muy controvertida. La mayoría del material que encuentro en la red
apoya esta hipótesis, así que no voy a perder mucho tiempo argumentando por
qué.
SCRUM se enfoca en las prácticas
de organización y gestión, mientras que XP
se centra más en las prácticas de programación. Esa es la razón de que
funcionen tan bien juntas: tratan de áreas diferentes y se complementan entre
ellas.
XP (Técnicas)
Test Driven Design: La cual
consiste básicamente en hacer pruebas unitarias
Refactoring: El cual consiste en
volver a escribir el código, pero con mejoras, sin modificar el comportamiento
de esta.
Propiedad colectiva: El código le
pertenece a todo el equipo, y todos responden por uno.
Integridad continua: Consiste en
que todo el equipo trabaja con un servidor de acciones.
Programación en pares: Consiste
en que dos personas trabajen en un mismo código fuente, con la condición que
estas parejas roten, para de esta manera socializar el conocimiento.
Historias de usuario. Las
historias de usuario deben ser identificadas con la finalidad de definir la
estimación y la importancia de ella en
el proyecto.
