La gestión de proyectos es dura. Incluso si armas el mejor equipo y posees óptimos recursos, pueden surgir problemas inesperados que generan retrasos u otros cuellos de botella. El rol de los gerentes de proyectos es tan estresante que el 37% de ellos se planteó dejar su trabajo, según un informe de 2021. La buena noticia es que, a lo largo de las décadas, el sector desarrolló frameworks o marcos para entregar proyectos coherentes sin exceder los recursos ni incumplir los plazos.
Ejemplos de ello son Scrum y Swarming: mientras el primero es un popular framework de gestión de proyectos, el segundo es una técnica utilizada para resolver un problema complejo.
¿Qué es Scrum?
Scrum (a veces denominado SCRUM, aunque no es un acrónimo) constituye un popular framework utilizado habitualmente en el desarrollo de software para crear, entregar y mantener proyectos complejos de forma eficiente. Su nombre deriva del rugby, donde los miembros de un equipo se reúnen para resolver un problema.
Mencionado por primera vez en 1986 en el Harvard Business Review, fue desarrollado posteriormente por Ken Schwaber y Jeff Sutherland que lo habían utilizado en sus respectivas empresas y más tarde trabajaron juntos para probarlo y mejorarlo. El framework comenzó a ganar popularidad y a usarse alrededor del mundo alrededor de 2002.
¿Cuáles son las ideas clave de Scrum?
Scrum parte de la base de que lo definido inicialmente como el alcance del proyecto -por ejemplo, cómo quiere el cliente que funcione una determinada característica del software- puede cambiar a lo largo del desarrollo. También reconoce los posibles desafíos impredecibles que surgen en el proceso (por ejemplo, una actualización de la versión que obligue a modificar parte del código) y hace hincapié en tomarlos con calma y adaptarse a ellos.
A su vez, destaca el trabajo en equipo y la comunicación constante. De hecho, se promueve en el grupo la identificación y comprensión de los puntos fuertes de cada uno, así como a aprender y recibir ayuda de los demás. De este modo, es posible evitar los errores más comunes en la gestión de proyectos.
Además, Scrum fomenta la toma de decisiones empíricas, evaluando constantemente el progreso, la evolución del mercado y el alcance del producto, y adaptándose para ofrecer el máximo valor utilizando los recursos disponibles.
¿Cómo funciona Scrum?
Scrum se utiliza normalmente para equipos de desarrollo integrados por 4 a 10 personas, que pueden o no formar parte de otros proyectos y grupos. Los miembros suelen desempeñar tres funciones: desarrolladores, un único propietario del producto y un único scrum master.
Los primeros son responsables de implementar el producto tal como lo definió el propietario. Puede estar integrado por desarrolladores senior y junior, un asesor técnico y diseñadores.
El propietario es el puente entre el cliente y el equipo, actúa como representante y como voz del usuario final. Como dijimos, define el producto, los distintos requisitos, las historias de usuario y cómo debe comportarse el producto final.
La función del scrum master en cambio es aplicar el framework, guiar al equipo y ayudar al propietario del producto a seguir los principios del scrum.
Scrum organiza los proyectos en sprints, que suelen durar dos semanas. Antes de su inicio se organiza una reunión para planificar qué se conseguirá durante el periodo. Y al finalizar, habrá una revisión. A continuación se planifica el siguiente sprint, y así sucesivamente. A su vez, se realizan reuniones diarias de unos 15 minutos, donde los miembros del equipo informan a todos sobre qué consiguieron hasta el momento y las dificultades a las que se enfrentan.
¿Qué es Swarming?
Normalmente, en Scrum cada uno trabaja por su cuenta, en una función o una característica del producto. A veces, algunos tickets pueden requerir más de una persona; por ejemplo, un diseñador y un desarrollador deben abocarse a la página de inicio de un sitio web. Pero incluso en esta situación, el primero entrega el diseño y, a continuación, el desarrollador trabaja en él. En cambio, Swarming es una técnica de Scrum en la que al menos dos integrantes del equipo se desempeñan juntos al mismo tiempo para resolver un problema.
¿Cuáles son los conceptos clave de Swarming?
Swarming se utiliza generalmente para resolver un problema difícil, que no puede solucionar un desarrollador individual. Cada miembro centra su atención y aporta sus fortalezas y experiencia para finalmente encontrar una resolución en el menor tiempo posible sobre una cuestión particular, que es probable que cause problemas con el producto o que es responsable de bloquear otro trabajo.
Un desarrollador puede probar diferentes métodos y llegar a una solución, pero con más gente enfocándose en el tema, probablemente descartan más rápido lo que no funcionará.
Aunque Swarming es necesario o incluso contribuye a mejorar la productividad durante una crisis, no debería limitarse únicamente a una situación de alto riesgo. Su objetivo es constituir un equipo óptimo, que todos se entiendan entre sí y sean conscientes de sus habilidades, además de fomentar la comunicación. Entonces, aun si no existe una emergencia, lo ideal es conformar Swarming con frecuencia para mejorar el grupo, pero también para prepararse en caso de un problema.
El término Swarming (enjambre) puede que le recuerde a las abejas. En una situación donde se está desarrollando un sistema, quizá es más acertado pensar en un grupo de personas sentadas alrededor de una pantalla discutiendo y probando diferentes opciones. También es posible que sean dos o tres individuos que trabajan a distancia y estén colaborando en la resolución de un problema. Quizás es un diseñador y un desarrollador que se abocan a una web responsive, o de un par de desarrolladores que comparten sus pantallas en una llamada grupal. O algo intermedio entre la programación en parejas y la programación en grupo.
Un problema común al que nos enfrentamos a menudo en los sprints es que al final de los mismos todas las funciones o requisitos están a medio hacer. Swarming garantiza que se completen al menos los requisitos principales, aunque algunos aún no se hayan abordado.
Según Jeff Sutherland, uno de los pioneros de Scrum:
“Un día de trabajo ocupaba 10 días naturales del proceso. La eficiencia es del 10%. (...) Si destinas a tres personas a esa cuestión, ¿todos trabajan juntos en ella y la terminan en un día? Entonces la eficiencia del proceso es impulsada a más del 100% y automáticamente fomenta un aumento de la velocidad.”
¿Cómo pueden trabajar juntos Scrum y Swarming?
Ahora veremos la forma de unir Scrum y Swarming: mientras que los sprints y standups de Scrum pueden hacer la mayor parte del trabajo, Swarming tiene la capacidad de priorizar las tareas fundamentales y conducirlas por la vía rápida. Porque impulsa a que todos se aboquen a un único problema y garantiza que el tiempo invertido se traduzca en resultados tangibles.
Como mencionamos anteriormente, lo ideal es utilizar Swarming más allá de las situaciones de emergencia o crisis. En ese contexto, los scrum masters pueden probar diferentes grupos o parejas para ver qué miembros del equipo trabajan mejor juntos y producen resultados de manera eficiente.
Como Swarming implica reunir tantas personas como sea posible para abocarse a una tarea, resulta ideal para averiguar el número de individuos para resolver un problema.
Para formar un buen equipo, es importante que todos contribuyan durante un Swarming. Especialmente en el caso de los problemas difíciles, no es posible garantizar que una única solución funcione o no. Por lo tanto, la comunicación abierta es clave.
Para utilizar Swarming fuera de los eventos de crisis, puedes elegir ciertos problemas específicos. Por ejemplo, refactorizar el código de ciertos sistemas o reducir la deuda técnica de los proyectos. En lugar de trabajar en diferentes aspectos de estos, los miembros del equipo deben discutir juntos la mejor estrategia para resolverlos, llegar a la solución más eficaz y comunicarse constantemente mientras se implementan.
Puedes probar Swarming para actualizar los sistemas con parches de seguridad (para desplegar rápidamente cuando se descubre una vulnerabilidad importante), la base de conocimientos o incorporar nuevos empleados (aunque esto es posible conseguirlo con el onboarding automatizado, pero eso no viene al caso).
Esta técnica funciona porque impulsa a la gente a estar en su pico de productividad. El equipo requiere aportes constantes de todos, por lo que cada uno contribuye con lo mejor de sí mismo y mantiene a los desarrolladores inmersos en el problema en cuestión y menos distraídos. Según Scrum Inc, se espera hasta un 200% de aumento de la productividad durante un swarming.
El trabajo resultante también tiende a ser bueno, ya que se trata de la mejor solución a la que se ha llegado utilizando los conocimientos y la experiencia de todo el equipo. Además, el trabajo se revisa en tiempo real, por lo que se requiere menos reelaboración posterior.
Cómo aplicar las técnicas de Scrum y Swarming en tu organización
Scrum y Swarming pueden ser aplicados en cualquier organización. Te ayudarán a obtener resultados que satisfagan al cliente y al usuario final, especialmente en un entorno que cambia rápidamente.
Si bien Scrum se concibió originalmente para el desarrollo de software, resulta una herramienta eficaz de gestión de proyectos para muchas aplicaciones y empresas diferentes. Por ejemplo, el caso de una agencia de marketing: si bien el alcance del trabajo está bien definido, este puede cambiar debido a las presiones del mercado o acontecimientos repentinos. Quizá haya una nueva tendencia en las redes sociales y por lo tanto es necesario aprovecharla preparando una campaña rápida antes de que se desvanezca. O quizá el cliente se enfrente a una repentina crisis de reputación y es fundamental resolverla rápidamente. En esta situación, un equipo ágil priorizará los requerimientos y encontrará una solución eficaz con Swarming.
En definitiva, con Swarming los empleados de una organización o equipo adquieren más habilidades y aprenden a hacer uso de la experiencia de los demás para resolver problemas y realizar mejor sus tareas.
Scrum y Swarming ayudarán a las organizaciones, incluso fuera de la órbita de software e IT, a hacer su trabajo de forma más eficiente y productiva.
Preguntas frecuentes
¿Qué es Scrum?
Scrum es un framework utilizado para construir y entregar proyectos complejos y en evolución haciendo uso los recursos disponibles y asegurando la satisfacción del cliente y del usuario final. Las empresas de desarrollo de software suelen utilizarlo para gestionar proyectos cuyo alcance evoluciona con el tiempo o en los que surgen imprevistos. También es posible usarlo fuera de las IT y el desarrollo de software, particularmente para la gestión de proyectos en entornos que cambian rápidamente.
¿Qué significa Scrum?
Scrum no es un acrónimo. Aunque encontrarás varios acrónimos post-hoc en Internet, no tienen el significado aquí presentado. El término "Scrum" en el desarrollo de software fue acuñado por Hirotaka Takeuchi e Ikujiro Nonaka en su artículo de 1986 "The New New Product Development Game". El nombre se tomó del rugby para subrayar la importancia de los equipos en el desarrollo de productos complejos (no sólo de software).
El método de desarrollo ágil heredó su nombre "Scrum" de este juego, ya que se basa en los mismos principios para desarrollar y mantener productos de software complejos.
¿Qué significa Swarming en Ágil?
Swarming es una técnica de Scrum que se utiliza para resolver cuestiones rápidamente haciendo que todos los miembros del equipo trabajen en un solo problema. Suele usarse para solucionar temas difíciles o situaciones de crisis de la forma más eficiente y eficaz. Pero también se puede tomar para mejorar la productividad de un equipo y concluir con celeridad los requerimientos prioritarios.