La guía de Scrum define la Definition of Done como la descripción formal del estado de un Incremento cuando cumple con los requisitos de calidad requeridos para el producto.

En otras palabras, en el momento que un Product Backlog Items cumple con la Definition of Done, podemos considerar que tenemos un incremento.

La Definition of Ready es una práctica popular que utilizan los equipos Scrum para tener un acuerdo común sobre los puntos que tiene que tener un elemento antes de comenzar a trabajar sobre el mismo.

Scrum requiere el uso de la Definition of Done para mejorar la transparencia del Incremento y El uso de la Definition of Ready puede ser contraproducente.

Definition of Done: Un compromiso para mejorar la transparencia

Scrum se basa en el empirismo o control empírico de procesos: Un sistema de transparencia, inspección y adaptación que permite navegar situaciones en sistemas complejos.

El problema de los sistemas complejos es que tenemos muchas variables interactuando y no controlamos la mayoría de ellas. El mejor encaje para salir airosos es utilizar un enfoque de inspección y adaptación continua.

Cuando utilizamos Scrum como proceso de referencia para resolver problemas complejos a través de soluciones adaptativas uno de los problemas más comunes es la divergencia de opiniones sobre cuando algo está realmente terminado.

En uno de mis primeros trabajos recuerdo asistir a la presentación de la nueva versión de un producto que estábamos diseñando. A los pocos minutos de comenzar todo falló y el ingeniero que lo presentaba dijo: “Esto funcionaba en mi ordenador”.

Si multiplicamos el efecto de la ley de Murhpy por todas las personas que potencialmente pueden interactuar con un producto, necesitamos una herramienta que asegure de forma transparente que algo realmente está terminado.

Aquí es donde la Definition of Done juega su papel clave para mantener la transparencia: habilitando una lista formal de elementos para asegurar que realmente el trabajo está terminado.

Definition of Ready: Un acuerdo de trabajo para limar fricciones

La Definition of Ready es habitualmente parte de los acuerdos de trabajo de un equipo y se usa para decidir que elementos tiene que tener una historia de usuario para poder abordarla. Véanse por ejemplo: Un mockup, un wireframe, unos criterios de aceptación, etc…

A pesar de que pueden parecer similares, en el caso de la Definition of Ready, la necesidad surge de desacuerdos entre el equipo. Generalmente entre el Product Owner y los Developers.

La Definition of Ready puede parecer una buena idea: ¿Y si usamos un acuerdo común para decidir que tenemos todo lo que necesitamos para arrancar algo?

Sin embargo puede convertirse en un arma de doble filo. Por dos motivos.

El primero es que es difícil hacer una lista de lo que vamos a necesitar para arrancar algo si no sabemos el trabajo que vamos a realizar en el futuro.

En entornos complejos es normal que no sepamos lo que vamos a hacer en el futuro, por tanto, prepararse para lo que no sabemos es un acto, como mínimo, inútil.

El segundo es que precisamente en estos escenarios lo que necesitamos es mejorar nuestros niveles de interacción y comunicación, buscar consensos y poder arrancar el trabajo sin tener toda la información disponible.

Esta es la principal diferencia entre la Definition of Ready y la Definition of Done. Mientras que en la primera estamos buscando llevar a cabo una lista preparatoria de elementos para no sentarnos a debatirlos antes de tenerlos, en la segunda necesitamos un acuerdo de transparencia una vez que está el trabajo realizado para asegurarnos de que está terminado.

Leave a Reply