SCRUM - Un poco de Historia

En la actualidad las metodologías ágiles tienen una gran acogida en entornos de tecnología, pero también sabemos que es ampliamente aceptado en muchos campos de desarrollo y ejecución de proyectos, ya que permite mejorar la satisfacción del cliente y la calidad de trabajo percibido.

Es interesante conocer la historia ya que nos permite tener un orden mental y una justificación historica de la importancia de lo que hacemos.

Antes de SCRUM

En el año 1985 el departamento de Defensa de los Estados Unidos publicó el estándar 2167, donde se definía un modelo de desarrollo de software en Cascada. Éste estándar influenció otros en el Reino Unido, Alemania y Francia.

El estándar 2167 y sus "derivados" definian un proceso de Análisis de requerimientos, diseño, desarrollo, pruebas y paso a producción. Éste estándar se basaba en un libro llamado "Managing the Development of large Software Systems", escrito en el año 1970 por Winston Royce.

Royce proponía un modelo de desarrollo en cascada, como lo conocemos en la actualidad, sin embargo en palabras de el:

"La fase de prueba que se produce al final del ciclo de desarrollo es el primer evento para el cual el tiempo, el almacenamiento, la transferencias de entrada/salida, etc., se experimentan en vez de analizarse. Estos fenómenos no son precisamente analizables. No son las soluciones a las ecuaciones de derivadas parciales estándares de la física matemática, por ejemplo. Sin embargo, si estos fenómenos no satisfacen las diversas limitaciones externas, entonces se requiere invariablemente un importante rediseño. Un simple parche o rehacer algo de código aislado no solucionará este tipo de dificultades. Los cambios de diseño requeridos son propensos a ser tan perturbadores que los requisitos de software sobre el que el diseño se base y que permiten la justificación de todo el resto, son violados. O bien los requisitos deben ser modificados, o se requiere un cambio sustancial en el diseño. En efecto, el proceso de desarrollo ha vuelto al origen y se puede esperar un exceso de hasta el 100% de tiempo y/o costo". Winston Royce

De esta forma desde un principio se creía que podrían existir grandes excesos en tiempo y costo de los proyectos, sin embargo, esta afirmación pareció haber sido ignorada por los pensadores de la época.

Este modelo de desarrollo es cambiado por Estados Unidos en el año 1994 por el estándar MIL-STD-498 debido a Pobres resultados alcanzados. Este nuevo estándar sugiere evitar el modelo en cascada para proyectos complejos ya que genera grandes excesos en los presupuestos debido a su carácter formal burocrático, el nuevo estándar fomentar un desarrollo incremental debido a que los requisitos cambian y el diseño es un proceso evolutivo.

Historia basada en el libro Proyectos Ágiles con SCRUM

A continuación podemos ver una gráfica en el que se describe el desarrollo en cascada.

Desarrollo en cascada
Desarrollo en cascada

Este tipo de desarrollo lo relaciono con un sistema de control de lazo abierto, es decir, un sistema que la salida no tiene una relación directa con la entrada (o hasta el final), de esta forma es casi imposible generar estabilidad a la salida. Es normal en los sistemas de control moderno tener observadores (sensores) que permiten realizar cambios para obtener siempre la salida en el sistema deseada. Por este análisis de "Control" lo considero un sistema altamente inestable.

Historía de SCRUM

La creación de SCRUM se debe a las observaciones realizadas al lanzamiento de nuevos productos durante bastantes años, de esta forma dió vida en el año 1995 bajo una publicación de Ken Schwaber, desde ese entonces Schwaber y Sutherland, han producido y publicado varias especificaciones para SCRUM,
así como Desarrollo de Software Ágil con Scrum, Gestión de Proyectos Agiles con Scrum y la Guía de Scrum. Historia expandida.

Desde este entonces bastantes compañias que en sus inicios son 3 personas han creado grandes proyectos, conocidos actualmente en todo el mundo.

Conclusiones:

  • Historicamente el desarrollo de software en cascada fracasó debido a sus excesos en costos y tiempo debido a su estructura.
  • El desarrollo debe basarse en la premisa de que los requerimientos y diseños cambian a lo largo del tiempo.
  • Scrum como metodología ágil permite y define estándares para la ejecución de proyectos con retroalimentación constante.

Juan Pablo Arias

I constantly discover new technologies and ways to improve IT processes. I'm a fan of automation. I like programming, but my passion is cloud computing.