miércoles, 6 de agosto de 2008

Scrum y RUP


Mucha gente acostumbrada a RUP, cuando comienza a aprender acerca de Scrum y métodos ágiles, se hace preguntas similares a la siguiente:

"Para hacer el diseño de un software en RUP se hacer realización de casos de uso (diagramas de secuencia, colaboracion, etc), diagramas de clases, componentes y otros. ¿Se pueden utilizar estos entregables de RUP adicionalmente a los usuales de Scrum (Product Backlog, Sprint Backlog, Impediment List, Burndown chart)?"

Mi respuesta es la siguiente:

En vista de que Scrum es un framework mínimo para crear un proceso de desarrollo de software, no prohibe la creación de artefactos o documentos adicionales a los que indica como obligatorios. Lo único que dice Scrum al respecto es que juzgues la necesidad, la utilidad y el costo (vs. el beneficio) de cada uno de los artefactos que decides agregar. Mi opinión es que siempre es necesario realizar ciertas actividades de modelamiento antes de iniciar un desarrollo.

Lo importante es que los modelos producidos sean como una luz que guíe el resto del proyecto, no una camisa de fuerza, y dejar que evolucionen junto con el código producido. Más aún, es crucial comunicar estos modelos al resto del equipo, por lo que muchos equipos ágiles prefieren utilizar pizarras (vs. herramientas CASE) para realizar sesiones de modelamiento en conjunto.
Esto es lo que se conoce como Agile Modeling.

Una buena fuente de información sobre cómo combinar Scrum y RUP, es el site del OpenUP.