Mucho se ha escrito los últimos años sobre las metodologías ágiles y en particular sobre Scrum, pero qué es Scrum?. En este artículo pretendo ayudarte a entender de una vez por todas qué es Scrum? y en qué casos te puede ayudar?, y en cuáles no.
Definición
Partamos viendo la definición de Scrum según la Scrum Guide:
Definición
Partamos viendo la definición de Scrum según la Scrum Guide:
"Scrum es un marco de trabajo liviano que ayuda a las personas, equipos y organizaciones a generar valor a través de soluciones adaptativas para problemas complejos."
Vamos por parte analizando la definición:
- Es un marco de trabajo liviano, no una metodología como muchos piensan. Qué implica esto?, que me dice qué hacer pero no me dice cómo. Es decir, me da lineamientos pero es responsabilidad de cada equipo definir cómo va a llevar a la práctica las cosas.
- A continuación vemos que ayuda a las personas, equipos y organizaciones a generar valor. El framework o marco de trabajo nació en el mundo del desarrollo de software abordando la problemática de cómo entregar valor a los usuarios de la manera más eficiente posible (siguiendo los principios del manifiesto ágil.
- Cómo hace la entrega de valor?, a través de soluciones adaptativas para problemas complejos. Un problema es complejo (o pertenece a un dominio complejo) del modelo Cynefin cuando no sabemos a priori si una solución dada va a solucionar el problema o no. Por eso, la única forma que tenemos de abordar el problema es probando: vamos a tomar supuestos, construir una solución basada en esos supuestos y luego aprender. Qué significa aprender en este contexto?: evaluar lo que hicimos y vamos a obtener retroalimentación de los usuarios para luego tomar nuevos supuestos e ir mejorando la solución de manera iterativa.
Cuándo no usar SCRUM?
Si el problema que estamos abordando no es complejo (basado en Cynefin puede ser complicado, simple, caótico, etc) Scrum no nos va a servir. Por ejemplo, si tenemos un problema simple, como hacer nuestra cama. Sabemos con seguridad que siguiendo una sucesión de pasos vamos a lograrlo, no es necesario resolverlo aplicando un framework.
Si lo complicamos un poco, y nos vamos a un problema complicado, como por ejemplo arreglar una impresora. Es más complejo que hacer la cama puesto que requiere un conocimiento experto que evalúe las alternativas de solución y defina el plan para abordar la solución. Pero aplicando el plan lo más probable es que se solucione el problema inicial, no es necesario el proceso adaptativo de Scrum en este caso.
Cuándo usar SCRUM?
Tal como dice la definición anterior, lo vamos a usar cuando tenemos problemas complejos. Es decir, cuando no sabemos con antelación si nuestra solución va a solucionar el problema del usuario o no. El ejemplo más clásico es el desarrollo de nuevos productos. La problemática es un dolor del usuario y queremos solucionarlo, pero no es evidente la forma de hacerlo. Podemos hacer un software muy complejo que lo haga, o quizás uno muy simple, pero es el usuario el que va a tener la última palabra: le solucionamos el problema o no? En este tipo de problemas es donde brilla Scrum, vamos a ir de manera adaptativa generando soluciones y evaluándolas con el mismo usuario para ver si le satisfacen o no. Y en base a la retroalimentación que nos de vamos a ir mejorando la solución hasta llegar a un producto que satisfaga todas las necesidades y requerimientos del usuario.
Espero haber aclarado un poco qué es Scrum y en qué casos puede ser útil. En otros artículos abordaré cómo funciona y el modelo Cynefin.