Scrum: un proceso ágil para obtener buenos resultados en proyectos complejos
Hablar de Scrum en un deporte como el rugby es algo muy común. Pero hacerlo en el ámbito de la administración de empresas y la gestión de proyectos es totalmente distinto. Con un proceso ágil y buenas prácticas para trabajar de manera colaborativa y en equipo, Scrum facilita alcanzar resultados productivos en proyectos de entornos complejos.
¿Qué es el Scrum?
En el rugby, el Scrum es un reinicio del juego que se realiza después de una infracción menor. Consiste en que 8 jugadores por bando (que son los forwards o delanteros) se apoyen unos a otros, se abracen formando una sola unidad y empujen en equipo para conseguir la pelota.
En el ámbito de la administración de empresas y la gestión de proyectos, el Scrum es un proceso de los denominados ágiles en el que se aplican regularmente un conjunto de buenas prácticas para trabajar de manera colaborativa, buscando obtener el mejor resultado posible en un proyecto que por lo general, tiene lugar en un entorno complejo. Aquí no hay jugadores de rugby, pero si hay prácticas que se apoyan unas a otras con el claro propósito de trabajar en equipo, donde se necesitan lograr resultados productivos rápidamente, donde los requisitos son cambiantes o están poco definidos, y donde la innovación, la competitividad, la flexibilidad y la productividad son vitales.
Su nombre se originó a partir de los estudios realizados en la década de 1980 sobre nuevas prácticas de producción por parte de Hirotaka Takeuchi e Ikujijo Nonaka. Y si bien es una metodología especialmente recomendada para gestionar el desarrollo de software por su agilidad y flexibilidad, sus principios de inspección continua, adaptación, autogestión e innovación la hacen ideal para emplearla en el desarrollo de productos tecnológicos, o directamente, para gestionar proyectos que tienen lugar en entornos que presentan requisitos inestables y que requieren rapidez y flexibilidad.
¿Por qué una metodología ágil como Scrum?
En el desarrollo de proyectos es normal que ocurran problemas recurrentes: que lo entregado no se ajuste a lo esperado por el cliente, que los proyectos se alarguen más allá del plazo previsto, que las entregan se demoren demasiado, que la desorganización en un equipo de trabajo sea una constante, que los costos no puedan controlarse, que la calidad no sea aceptable, que la capacidad de reacción ante la competencia sea nula o escasa, que la motivación de los colaboradores sea muy baja, que la tasa de rotación de los recursos humanos sea demasiado elevada… ¿Por qué aparecen estos problemas? ¿Cómo evitarlos? Y lo más importante: ¿Cómo solucionarlos de una forma ágil? Scrum puede ser la respuesta.
Como metodología de desarrollo de proyectos, Scrum es muy simple, pero que requiere mucha dedicación y esfuerzo, porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto. Es un modo de desarrollo de carácter adaptable más que predictivo; está orientado a las personas más que a los procesos, y emplea una estructura de desarrollo ágil: incremental basada en iteraciones y revisiones.
Por lo general, el proceso comienza con la recopilación de los requerimientos del proyecto o de información para el desarrollo del producto. Con esto se tiene una visión general proyecto o del producto, especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve.
Cada uno de estos periodos de desarrollo forma una iteración, que finaliza con la producción de un incremento operativo del producto. Estas iteraciones son la base del desarrollo ágil, y Scrum gestiona su evolución a través de reuniones periódicas en las que todo el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente.
¿Cómo funciona Scrum?
El primer paso de Scrum es la Visión General del Proceso, que busca recopilar los requerimientos del proyecto o la información para el desarrollo de un producto. Scrum denomina “sprint” a cada iteración de desarrollo y por lo general, en la práctica tiene una duración aproximada de 30 días.
El sprint es por tanto el núcleo central que proporciona la base de desarrollo iterativo e incremental.
Las reuniones
• Planificación de sprint: es la jornada de trabajo previa al inicio de cada sprint en la que se determina cuál va a ser el trabajo y los objetivos que se deben cumplir en esa iteración.
• Reunión diaria: es un breve encuentro donde el equipo del trabajo revisa lo realizado hasta la fecha y efectúa la previsión para el día siguiente.
• Revisión de sprint: es el análisis y revisión del incremento generado, que busca lograr el producto potencial.
Los elementos
• Pila del producto: es la lista de requisitos del usuario que se origina con la visión inicial del producto y va creciendo y evolucionando durante el desarrollo.
• Pila del sprint: es la lista de los trabajos que debe realizar el equipo durante el sprint para generar el incremento previsto.
• Incremento: es el resultado de cada sprint.
Los roles y la evolución del proyecto
Scrum clasifica a todas las personas que intervienen o tienen interés en el desarrollo del proyecto en:
• Propietario del producto: es el responsable de obtener el mayor valor de producto para los clientes, usuarios y resto de implicados.
• Equipo de desarrollo: es el grupo o grupos de trabajo que desarrollan el producto o intervienen en el proyecto.
• Scrum Manager: es el gestor de los equipos y responsable del funcionamiento de la metodología Scrum y de la productividad del equipo de desarrollo. También se lo llama Gestor de Scrum o Scrum Master.
Y claro está, pueden existir otras partes interesadas en el proyecto o en el desarrollo del producto.
Por otro lado, Scrum ofrece un excelente mecanismo de control de la evolución del proyecto. Se controla de forma empírica y adaptable la evolución del proyecto, empleando las siguientes prácticas de la gestión ágil.
Revisión de las Iteraciones
Al finalizar cada iteración (que normalmente es 30 días) se lleva a cabo una revisión con todas las personas implicadas en el proyecto. Este es el periodo máximo que se tarda en reconducir una desviación en el proyecto o en las circunstancias del producto.
Desarrollo incremental
Durante el proyecto, las personas implicadas no trabajan con diseños o abstracciones. El desarrollo incremental implica que al final de cada iteración se dispone de una parte del producto operativa que se puede inspeccionar y evaluar.
Desarrollo evolutivo
Los modelos de gestión ágil se emplean para trabajar en entornos de incertidumbre e inestabilidad de requisitos. Entonces, intentar predecir en las fases iniciales cómo será el resultado final del proyecto (o el producto final), y sobre dicha predicción seguir trabajando (o desarrollar el diseño y la arquitectura del producto) no es realista, porque las circunstancias obligarán a remodelarlo muchas veces.
Entonces, una cuestión de sentido común nos hace preguntarnos: ¿Para qué predecir los estados finales si todo va a estar cambiando?. En Scrum se toma a la inestabilidad como una premisa, y se adoptan técnicas de trabajo para permitir esa evolución sin degradar la calidad o los avances logrados durante el desarrollo.
Auto-organización
Durante el desarrollo de un proyecto son muchos los factores impredecibles que surgen en todas las áreas y niveles. La gestión predictiva confía la responsabilidad de su resolución al gestor de proyectos.
En Scrum los equipos son auto-organizados (no auto-dirigidos), con margen de decisión suficiente para tomar las decisiones que consideren oportunas.
Colaboración
Las prácticas y el entorno de trabajo ágiles facilitan la colaboración del equipo. Ésta es necesaria, porque para que funcione la auto-organización como un control eficaz cada miembro del equipo debe colaborar de forma abierta con los demás, según sus capacidades y no según su rol o su puesto.