La Definition of Ready y La Definition of Done son elementos que aparecen con frecuencia relacionados con Scrum. Hoy, nos vamos a centrar en el concepto de Definition of Ready y su papel en Scrum.
¿Qué significa que un elemento esté “ready”en Scrum?
La siguiente frase es la única que hace referencia al concepto ready en Scrum:
“Product Backlog items that can be “Done” by the Development Team within one Sprint are deemed “Ready” for selection in a Sprint Planning”
Es decir, el Development Team es el encargado de decidir cuándo un item se considera listo para poderse ejecutar durante un Sprint. Recordemos que, en la Sprint Planning, generamos un plan llamado Sprint backlog, creado y manejado por el Development Team.
Por tanto, debemos de tener conversaciones para definir cuando un item se considera “ready” para entrar en un Sprint. Scrum, trata de fomentar la comunicación entre el Product Owner (decide qué hay que hacer) y el Development Team (decide cómo hacerlo).
Cuando un item no está ready en Scrum
Una vez, acompañé un equipo que desarrollaba una aplicación web para una aseguradora famosa. Durante una Sprint Planning, el Product Owner nos solicitó una pantalla para recoger la dirección del usuario. La conversación fue más o menos así:
- En esta pantalla, quiero la dirección del usuario.
- ¿Qué dirección? ¿Correo o dirección física?
- La dirección física, donde vive.
- ¿Qué colocamos? ¿Un campo abierto como un albarán o ponemos varios campos con dirección, número, puerta y código postal?
- Uf, no lo sé, lo que hagáis siempre.
- Depende de la aplicación hacemos cosas diferentes.
- Pues tengo que preguntarlo.
En esta conversación, aprendimos que nos faltó trabajar más para que los ítems estuvieran “ready”. Así, podríamos evitar retrasar el arranque de uno concreto, ya que tener que ir a preguntar hace que se retrase al equipo. Es difícil planificar sin tener claro todo lo que se va a hacer.
Definition of ready y Scrum
La Definition of Ready es una técnica que consiste en definir las características que debe cumplir un item en el Sprint. Está definición no está recogida dentro de Scrum, ya que se considera como un contrato entre el Product Owner y el Development Team, y es contrario a la idea de colaboración que buscamos en los equipos Scrum. ¡Colaboración por encima de contratos!
La Definition of Ready no está incluida en Scrum, aunque puede ser utilizada como práctica. Jeff Sutherland, en su libro Scrum: Doing twice in the middle time sí que recoge esta práctica como positiva. Para mí, es una práctica peligrosa que puede provocar un waterfall en Sprints.
Cómo hacer un item “ready” en Scrum sin usar el Definition of Ready
En Scrum, disponemos del refinamiento. El refinamiento nos ayuda a dejar a “ready” los ítems y nos permite tener esas conversaciones que necesitamos para no retrasar al equipo. Y por supuesto, todo aquello que afecte a la entrega de valor. Por tanto, tenemos que buscar el momento en el que refinar y trabajar que los ítems estén listos. Hay muchas técnicas para hacer refinamiento.
En equipos con Sprint de dos semanas, solemos refinar la semana que no hay eventos como Sprint Planning y Sprint Retrospective. Otros equipos apuestan por refinar en pequeños periodos de 20 minutos y hacerlo cada día.
La ventaja del refinamiento Scrum es que no prescribe cómo hay que hacerlo y permite espacio para decidir. Se puede utilizar el refinamiento para hacer estimaciones aunque yo recomiendo que sean de alto nivel y no entrar en mucho detalle
Hay equipos que redistribuyen los ítems para refinar cada uno con el Product Owner por separado. Después, cada uno debe explicárselo a sus compañeros.
No recomiendo que en el refinamiento vayan siempre todo el equipo ya que perdemos el foco de la entrega del Sprint actual.
Definition of Ready como herramienta, no como contrato
Tener una conversación previa sobre cómo debe estar un item, es importante. Utilizar esa conversación para tenerlo escrito simplemente nos puede ayudar a evaluar si los item está listo para poderse hacer durante el siguiente Sprint. Ahora bien, no debe usarse como un contrato y evitar que un Product Owner pueda solicitar que se aborde un item que considera importante.
No quiero poner muchos ejemplos de Definition of Ready, ya que son muy dependientes del contexto. Al final, debéis pensar en todo aquello que necesitáis para que las cosas estén listas para poderlas abordar durante un Sprint.
Por último, hay una regla sobre el Definition of Ready en Scrum que se nos suele olvidar. El Definition of Ready no es un portero de discoteca que impide meter items en el Sprint Planning. Un item puede estar en la Sprint Planning sin haber sido refinado, y podemos hacer ese refinamiento durante la Sprint Planning. Esto hará que la Sprint Planning se haga más pesada, lo trataremos en la retrospectiva.
Y por cierto, el lugar para revisar la Definition of Ready o el Refinamineto es la Retrospectiva, ya que se trata de un elemento de autogestión y de trabajo del equipo. Por ello, es ahí donde estudiamos cómo trabajamos.
Y tú, ¿Usas la Definition of Ready en tu Scrum?
PD: dedicado a mi amiga Aurora por proponer este tema.
Que un PO pueda abordar algo que considera importante sin cumplir el DoR indica que el PO no gestiona los requerimientos de manera adecuada y fuera al equipo a manejar cosas que no están listas. Es difícil pedirle un compromiso al equipo sobre este tipo de elementos, bajo mi punto de vista el DoR debería ser un contrato que se puede salta en momentos muy puntuales cuando haya una razón que lo justifique suficientemente.