domingo, 1 de abril de 2012

Scrum y XP


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.




2 comentarios: