El término SCRUM surge a mediados de los 80’s, cuando Hirotaka Takeuchi e Ikujiro Nonaka proponen una estrategia de desarrollo de productos donde un equipo trabaja en conjunto para alcanzar una meta en común. En ella introducen el término Scrum utilizado en rugby en base a la analogía en la cual indican que el desarrollo no debe de ser como una carrera de relevos, sino asemejarse al juego de rugby donde el equipo trabaja en conjunto mientras avanzan como una unidad a través del campo.
En 1995 en Austin, Texas se presentó su aplicabilidad al desarrollo del software en la conferencia “Object-Oriented Programming, Systems, Languages & Applications”(OOPSLA) por Ken Schwaber y Jeff Sutherland. Desde entonces se ha continuado mejorando la conceptualización de Scrum y en la actualidad, es el enfoque de desarrollo preferido en muchas organizaciones. En el mundo de desarrollo ágil, se puede definir Scrum como un conjunto de prácticas utilizadas en el manejo de proyectos que enfatiza la comunicación diaria y la re-valoración flexible de los planes que son llevados a cabo en fases de trabajo iterativas.
Los principios en los cuales se basa Scrum son 6, Control de procesos empíricos, auto organización, colaboración, priorización en base al valor, tiempos definidos y desarrollo iterativo.
El modelo de Scrum propone que el desarrollo se lleva a cabo en una serie de iteraciones llamadas sprints. Un sprint es una iteración que dura de 1 a 6 semanas, en las cuales el equipo de desarrollo trabaja para convertir los requisitos en productos funcionales. A lo largo de cada sprint, se llevan a cabo Daily Standup Meetings o Dailys, que son reuniones diarias cortas en donde el equipo de desarrollo se reúne para reportar el avance del proyecto contestando 3 preguntas principales:
- ¿Qué hice desde la reunión anterior?
- ¿Qué planeo hacer antes de la siguiente reunión?
- ¿Existe algún impedimento?
Para poder definir qué se debe realizar en el sprint, se deben de llevar a cabo reuniones de planeación o Sprint Planning Meetings en las cuales se identifica el objetivo del sprint, se divide en tareas y se realiza la estimación de tiempos para realizar esas tareas.
Una vez concluido el sprint, se lleva a cabo una reunión de revisión o Sprint Review Meeting, donde el equipo de desarrollo presenta el producto terminado del sprint. Se lleva a cabo la revisión del mismo y se acepta o se rechaza el producto.
Para poder definir qué salió bien, qué salió mal y qué se puede mejorar en términos de procesos, herramientas utilizadas, colaboración y mecanismos de comunicación, el equipo lleva a cabo una reunión de retrospectiva o Retrospect Sprint Meeting.
Los roles principales involucrados en un proyecto de Scrum se pueden dividir en dos categorías: esenciales y no esenciales. Los roles esenciales son los responsables de cumplir los objetivos del proyecto. Entre ellos se encuentran el Product Owner, Scrum Master, y el Scrum Team.
- El Product Owner es la voz del cliente, y es el responsable de expresar de forma clara y concisa los requerimientos del proyecto.
- El Scrum Master se encarga de que los procesos de Scrum se lleven a cabo, guía al equipo y gestiona la reducción de impedimentos, además de asegurarse de que se cuente con lo necesario para poder completar el desarrollo del producto de forma exitosa.
- Por último, el Scrum Team es un grupo de personas encargadas de entender el modelo de negocios presentado por el Product Owner y llevar a cabo el desarrollo del proyecto.
Los roles no esenciales incluyen a los Stakeholders, Clientes (Customers), Usuarios (Users) y Patrocinadores (Sponsors). No son obligatorios para el proyecto de Scrum y puede que no estén directamente involucrados en el proceso.
- Stakeholder es un término que incluye a clientes, usuarios y patrocinadores que continuamente interactúan con el Product Owner, Scrum Master o Scrum Team y que les proporcionan información relevante para la creación del producto requerido.
- Los Clientes o Customers son los que adquieren el producto, servicio o resultado del proyecto.
- Los Usuarios o Users son los individuos u organizaciones que utilizan directamente el producto.
- Los Patrocinadores (Sponsors) son organizaciones o individuos que proporcionan recursos para el proyecto.
La metodología de Scrum puede ser aplicada a cualquier proyecto, ya sea grande o pequeño y en cualquier industria. Para mayor información sobre los principios, aspectos y procesos de Scrum, se puede referir a “Scrum body of knowledge (Sbok Guide)”.