SCRUM es un método de trabajo diseñado para desarrollar y gestionar proyectos de forma ágil y dinámica. Este sistema se puede emplear prácticamente en cualquier equipo de trabajo que esté llevando a cabo un proyecto o producto complejo, especialmente en desarrollos web y de software.
En el proceso de desarrollo de un proyecto web complejo es habitual que los requisitos no estén bien definidos, bien sea porque el cliente no lo tiene claro o porque el equipo de trabajo no puede determinar con exactitud cuáles serán las acciones que se van a llevar a cabo para alcanzar el producto final.
Durante el proceso de producción las necesidades del cliente y los requerimientos del mismo cambian constantemente. Con una metodología de trabajo tradicional (o waterfall, en la que el proyecto se define antes de comenzar) es muy complicado hacer frente a posibles cambios que surjan en mitad del desarrollo. Cualquier alteración de las condiciones y características de un proyecto van a suponer un retraso en los plazos de entrega y va a perturbar el ritmo de trabajo del equipo. Además del descontento del cliente al ver que no tiene nada que pueda revisar.
Para estos casos SCRUM es el método de trabajo idóneo, ya que se centra en otorgar al cliente un papel determinante en la planificación y evolución del desarrollo del producto final. Al desarrollar un proyecto dentro de este marco de trabajo es proporcionar al cliente una metodología que le permita ordenar y priorizar las funcionalidades que busca y, de esta manera, dirigir el desarrollo por valor de negocio. El cliente decide qué y cuándo construir y el equipo establece el cómo. Así, en muy poco tiempo, el cliente obtiene el máximo valor de su producto.
Antes de comenzar el equipo de desarrollo se reúne con el cliente y juntos determinan la envergadura del proyecto final, pero sin entrar en detalles. La idea estimar la cantidad de entregas o sprints en las que se puede llevar a cabo todo el desarrollo. Es importante dejar claro desde un primer momento que el número de sprints puede aumentar o disminuir en función del número de requisitos que el cliente quiera que se tengan en cuenta.
El tiempo de duración de cada sprint cuenta con dos variables: el tiempo que necesita el equipo de desarrollo para llevar a cabo todas las funcionalidades definidas previamente y el tiempo que necesita el cliente para revisar en lo que se está trabajando y en proporcionar nuevas funcionalidades para continuar con el desarrollo. El plazo habitual de entrega suele ser entre 2 semanas y 2 meses, dependiendo de la complejidad de cada sprint, pero siempre buscando acortar el tiempo lo máximo posible.
Al finalizar cada sprint se redefinen los objetivos del siguiente, revisando el trabajo realizado y las próximas funcionalidades que se llevarán a cabo.
En todo proceso SCRUM hay varios perfiles o roles que se repiten:
–El cliente o propietario del producto (Product Owner): es la persona encargada de representar a todos aquellos interesados en el resultado final del proyecto. No tiene por qué ser el dueño de la empresa, pero sí debe tener autoridad para tomar las decisiones. Es imprescindible que participe en las reuniones de planificación de los sprints, para facilitar al equipo de desarrollo toda aquella información necesaria para definir cada etapa del proyecto.
–El jefe de equipo (Scrum Master): es el responsable de dirigir al equipo de desarrollo. Su misión es asegurarse de que las reglas de trabajo y la metodología SCRUM se sigan minuciosamente. Debe encargarse de motivar a su equipo y resolver los conflictos que se encuentren, tanto en el proceso de desarrollo o con el propietario del producto.
-EL equipo de desarrollo: sobre él recae la mayor carga de trabajo del proyecto. Estará formado por profesionales con perfil técnico capaces de llevar a cabo el proyecto trabajando en equipo. Al principio de cada sprint se comprometen a realizar diferentes tareas, estiman la complejidad de cada una de ellas y mediante estos cálculos determinan el plazo de ejecución para alcanzar los objetivos de la entrega.
La ventaja de emplear un sistema de trabajo ágil como SCRUM es que permite definir y alcanzar objetivos a corto plazo, en los que el equipo de desarrollo trabaja motivado y con las tareas a desempeñar perfectamente definidas. El cliente recibe entregas periódicas de una versión de su proyecto que puede publicar, y permite al equipo continuar desarrollando su trabajo a medida que van surgiendo nuevos requisitos, que ya no se consideran un imprevisto para el desarrollo del proyecto total.