Implementar Scrum en grandes organizaciones

Implementar Scrum en grandes organizaciones

Volvemos al campo del desarrollo software para hablar de SCRUM, un método “ágil” para el desarrollo software, un marco organizativo de ese trabajo como Nexus y la implementación de ambos para el desarrollo final de grandes aplicaciones de producto.

SCRUM y las metodologías ágiles

Agile Manifesto

El concepto SCRUM (no es acrónimo sino nombre propio) tiene su origen en los años 80 tras la definición de una novedosa serie de reglas por parte de Ikujiro Nonaka y Takeuchi para el desarrollo de aplicaciones. Unos año más tarde, se presenta el Scrum Development Process, un marco de trabajo más organizado en base a las reglas definidas años antes y que se reúnen en el Agile Manifiesto. A raíz de la popularidad de este método se crean las primeras certificaciones Scrum siendo scrum.org y Scrum Alliance las de mayor prestigio para empresas de desarrollo de software que se consideran “ágiles”.

¿Qué es una “metodología agil” o forma de desarrollo ágil de un software? No es otra cosa que una manera de enfocar el desarrollo de una aplicación. Un marco de trabajo estratégico para sacar más partido a un equipo de programadores y ganar en productividad y eficacia en función de varias reglas:

  1. Equipo ScrumLa clásica estrategia de programación en la que primero se planifica y luego se desarrolla y ejecuta se sustituye por un “desarrollo incremental” en el que el equipo de programadores no espera a finalizar el producto software sino que va entregando al cliente partes ya utilizables de ese software en hitos llamados Sprint.
  2. La calidad del producto se basa en el conocimiento de los componentes del equipo y no tanto en los procesos.
  3. La planificación secuencial del desarrollo de un producto puede ser modificada, precisamente para ganar en productividad al poder entregar partes del software en los Sprint.
  4. Los roles en un equipo de desarrollo ágil son el Product Owner, el Scrum Master y los programadores dentro de un equipo de desarrollo.

En general, esta forma de organizar equipos y desarrollar aplicaciones evita grandes fiascos dentro del mundo de la programación según el modelo de planificación y ejecución. Hay numerosos ejemplos a lo largo de la historia de grandes aplicaciones que se han planificado al extremo y, luego de pasar a la fase de programación y entrega del producto al cliente, por diversas causas, se ha tenido que reprogramar todo, con el coste consiguiente. SCRUM intenta evitar eso con el desarrollo incremental o fusión de las fases planificación y ejecución.

Escalar Scrum con Nexus para grandes proyectos

El modelo de desarrollo SCRUM de un solo equipo se ha venido utilizando durante años para el desarrollo de aplicaciones y software a pequeña escala. ¿Qué ocurre entonces si se quieren desarrollar aplicaciones que requieren grandes equipos? La solución no es aumentar el número de miembros dentro de un equipo SCRUM sino escalar scrum con nexus. Es decir, enlazar equipos SCRUM a través de un marco de trabajo estratégico desarrollado por Ken Schwaber, el mismo que creó scrum.org, y que se denomina Unidad de Desarrollo. Sus primeras aplicaciones se produjeron en el año 2014.

Esta Unidad de Desarrollo, dependiendo de la envergadura del proyecto, se puede formar con hasta 9 equipos SCRUM y un mínimo de 3. Su lógica operacional es la misma que SCRUM: sustituir un desarrollo de software basado en planificación y ejecución por el desarrollo ágil e incremental. Sin embargo, los equipos son más complejos y se producen algunos hitos más durante el desarrollo, además de añadir otras herramientas. De forma resumida, la Unidad de Desarollo Nexus se compone y trabaja de la siguiente manera:

  • Se añade un nuevo rol al equipo humano: Equipo de Integración. Su misión es recopilar el trabajo “utilizable” de los equipos Scrum para integrarlos al final de cada Sprint.
  • Para que todos los equipos estén al día de la evolución del desarrollo del proyecto se crea un nuevo artefacto: el Nexus Sprint Backlog.
  • Eventos. Aparece el Nexus Daily Scrum, una especie de auditoría continua donde los equipos SCRUM pueden conocer problemas de integración que se puedan producir y corregirlos.

La posible complejidad de la Unidad de Desarrollo Nexus se entiende mejor en la siguiente infografía:

Unidad de desarrollo Nexus Scrum

¿Qué ocurre si un proyecto de desarrollo necesitara más de 9 equipos SCRUM? Es posible que nuevas versiones de NEXUS contemplen esa casuística y se añadan en un futuro evoluciones al método para poder abarcar cualquier tipo de aplicación, por grande que sea.

Por el momento, el éxito del “desarrollo ágil” es palpable: más del 70% de la empresas de desarrollo software lo utilizan.