Scrum es una metodología ágil que permite desarrollar proyectos de una manera eficiente y en un menor plazo de tiempo. Permite realizar proyectos más orientados a las necesidades de la empresa y de los clientes, como por ejemplo, en el área de desarrollo web, a través de un marco de trabajo colaborativo.
Las metodologías ágiles consisten en desarrollar una nueva manera de trabajo en equipo, en la que los participantes incrementan su motivación y su eficiencia para hacer el doble con la mitad de tiempo.
Scrum se basa en iteraciones continuas, es decir, la repetición de un proceso o tarea varias veces con la intención de alcanzar una meta deseada. El objetivo final es construir un producto o proyecto de forma incremental, entregando en cada iteración una propuesta de valor más desarrollada.
Los principios de Scrum, que es la más usada de las metodologías ágiles, son sencillos pero no fáciles de aplicar. Las empresas que logran aplicarlos alcanzan mejoras en la productividad, time-to-market y competitividad de entre 4 y 10 veces.
La palabra Scrum, no es un acrónimo o siglas, sino que proviene del rugby. Significa melé, una jugada en la que varios integrantes de cada equipo empujan como una unidad para hacer avanzar el balón.
En la metodología Scrum todos los componentes de un equipo realizan actividades de forma repetida e incremental para desarrollar el proyecto.
El movimiento de las metodologías ágiles surgió en 2001 tras la publicación del “Agile Manifesto”. En aquel momento los proyectos de gran dimensión requerían una planificación muy compleja, usualmente tomaban mucho tiempo y excedían los presupuestos.
Una muestra de ello fue el desastre del proyecto Sentinel del FBI, en el que después de invertir más de 100 millones de dólares, se tuvo que rehacer todo un software desde cero.
El “Agile Manifesto” fue elaborado por 17 críticos del modelo de desarrollo tradicional quienes plantearon cuatro valores y doce principios que rigen el desarrollo ágil de proyectos.
En 2011, Ken Schwaber y Jeff Sutherland publicaron la guía oficial de Scrum para fijar las mejores prácticas y se convirtió en la guía definitiva del método.
¿Para qué sirve Scrum?
Scrum es una forma de trabajar en equipo más productiva para la gestión de proyectos. A diferencia del modelo tradicional donde un proyecto puede durar meses o años, en este método un proyecto dura un sólo Sprint (una sucesión de iteraciones o tareas repetidas de corta duración para incrementar el valor del proyecto).
Durante un Sprint se realizan todas las tareas necesarias para desarrollar el proyecto, como el diseño, la planificación o las pruebas. Todas esas tareas están orientadas a generar el máximo valor.
El punto de partida de Scrum es una lista de objetivos y de requisitos que conforman el plan de proyecto.
Cada Sprint es una entidad en sí misma. Generalmente, tienen una duración de entre 2 hasta 4 semanas, para presentar el trabajo, recibir retroalimentación y realizar una reflexión para mejorar en cada iteración.
La división del proyecto en Sprints permite establecer prioridades en función de las necesidades de los clientes o en las modificaciones que se produzcan.
Cada Sprint debe brindar un resultado con valor, una variación que pueda ser presentada y entregada al cliente de la manera más rápida y con el menor esfuerzo posible. La sumatoria de todos los Sprints representa el desarrollo total del proyecto.
Las principales ventajas de Scrum
La implantación de la metodología Scrum para el desarrollo de proyectos web aporta ventajas respecto a los sistemas tradicionales:
- El cumplimiento de las expectativas del cliente gracias a la presentación de las demos de sprint al cliente (Product Owner) que proporcionan retroalimentación al equipo.
- Hay una mayor flexibilidad ante los cambios. Scrum está diseñada para adaptarse a las modificaciones, ya sean requerimientos del cliente o cambios del mercado.
- Hay reducción del Time To Market. Al desarrollar las partes más importantes al inicio del proyecto, el cliente dispone de partes de valor que puede empezar a utilizar antes.
- Se registra un incremento de la productividad de los equipos a los que se les brinda autonomía para organizarse y mayor libertad, lo que reduce los protocolos.
- Se reducen los riesgos debido a que primero se validan las funcionalidades más importantes del proyecto, lo que permite anticiparse a los riesgos que puedan surgir.
¿Cómo empezar a implementar Scrum?
A continuación ofrecemos una descripción de todo el proceso para poder aplicar Scrum desde cero:
- Seleccionar el Product Owner, que es la persona responsable del proyecto por parte del cliente, que es la voz de cliente y conoce cuales son las metas y objetivos.
- Seleccionar el Scrum Team para desarrollar el proyecto: es necesario un equipo de entre 3y 9 personas para llevar adelante todas las actividades previstas.
- Elegir un Scrum Master para liderar el equipo. Debe ser una persona que conozca la metodología y que sea responsable de conducir las iteracciones o sprints definidos.
- Elaborar la lista de bloques del proyecto o stories, es decir, un listado con todos los objetivos que deben conseguirse.
- Establecer las prioridades de los bloques del proyecto para que el equipo conozca el nivel de importancia de cada uno.
- Planificar el sprint y definir el plazo y el objetivo que se quiere conseguir. El equipo hace una estimación de cuántos aspectos ha de realizar en el sprint para completar uno de los objetivos definidos. Los sprints duran entre 2 a 4 semanas.
- Definir la relación de actividades para completar el sprint elegido.
- Realizar una reunión diaria para el seguimiento de las actividades. El encuentro, que debe tener un máximo de 15 minutos de duración, servirá para revisar el trabajo realizado el día anterior y planificar las próximas acciones.
- Hacer un panel se seguimiento para visualizar la actividad del equipo. Debe contener tres columnas: Pendiente (To Do), En Proceso (In Progres) y Hecho (Done).
- Revisión del sprint: es una reunión en la que el equipo muestra lo que ha construido.
- La Retrospectiva del sprint y mejora continua: se hace para reflexionar sobre los aspectos necesarios para mejorar el proceso. Una vez completada la primera iteración, se continúa con el ciclo de sprints, en un proceso de avance del proyecto y de mejora continua del proceso para mejorar la experiencia y las capacidades del equipo.
¿Cuáles son los roles para aplicar el Scrum?
En Scrum existen tres roles principales que tienen responsabilidades definidas: el Product Owner, el Scrum Master y el Equipo de desarrollo.
- El Product Owner: Es el responsable del proyecto. Es el vocero del cliente, y se encarga que el equipo entienda y cumpla sus expectativas.
- El Scrum Master o Facilitador se encarga de gestionar el proceso Scrum y ayudar a eliminar trabas y obstáculos. Lidera las reuniones y ayuda al equipo a minimizar los impedimentos para cumplir con el objetivo del Sprint.
- El Scrum Team o Equipo de Desarrollo: Son entre 3 y 9 profesionales que se encargan de desarrollar las actividades y cumplir con los requerimientos del proyecto. Con independencia de cuales sean sus roles internos, en el equipo solo hay un rol, el de miembro.
Este equipo se auto gestiona y decide cual es la mejor manera de llevar adelante el proyecto, asume su propia responsabilidad y rinde cuentas al final de cada sprint.
Software para el manejo de proyectos con Scrum
La transformación digital ocasionó la aparición de novedosas formas de organización dentro de las empresas. Existe una creciente demanda de las compañías de ofrecer el mejor servicio posible en la menor cantidad de tiempo.
Dentro de ese contexto, las metodologías ágiles como Scrum han representado una auténtica revolución. Para las empresas y proyectos esos métodos representan una posibilidad de cambiar las cosas para rentabilizar el negocio. Asimismo, permiten dinamizar los equipos y desarrollar sus productos y servicios de manera rápida y competitiva.
Actualmente, existen diferentes programas o aplicaciones para aplicar la gestión ágil de proyectos. Algunas herramientas son gratuitas y otras requieren un pago, pero son útiles y permiten llevar adelante un proyecto de desarrollo web.
Entre ellas están Active Collab, Asana, Atlassian Jira, Axosoft, Basecamp, Flow-e, Google Drive, iceScrum, LeanKit, Planning Poker, Scrumblr, Slack y Trello.