calaix[À]gil


CAT | ESP | EN



Definition of Done, (DoD)

CAT, ESP

calaix[À]gil | Artículos (ESP) | Conceptes Agile importants
Data publicació: 15/11/2022
Última modificació: 15/11/2022
Las Definition of Done ayudan al equipo en la construcción de un incremento del producto del que pueda afirmarse que es de valor para el negocio y los usuarios

Las DoD (Definition of Done) ayudan al equipo en la construcción de un incremento del producto, del que pueda afirmarse que verdaderamente proporciona valor para el negocio y los usuarios.


Podemos imaginar las DoD cómo una lista de acciones, normas o buenas prácticas que deben cumplirse, i que van más allá de la simple construcción del incremento, y que son igualmente necesarias para poder dar por acabada una tarea prevista en el Sprint. Muchas veces este trabajo añadido puede entenderse como trabajo oculto de las DoD, pero es muy necesario ser conscientes que toda este trabajo es necesario para asegurar la calidad, la fiablidad, el rendimiento o la seguridad de lo que estamos creando.



Definir las DoD con el equipo

Una vez hemos imaginado las DoD cómo una lista; ahora podemos pensar en quién en la organización es responsable de la definición y el cumplimiento de los ítems de esta lista. Las DoD plantean prácticas que orientan sobre el cómo construiremos el producto. Suelen ser ítems técnicos que informan sobre el nivel de calidad, fiabilidad o rendimiento necesarios, así cómo la definición del universo de artefactos y buenas prácticas necesarias para poder aceptar el resultado obtenido con garantías de éxito. Por tanto, parece claro que los protagonistas de todo esto son el equipo técnico del proyecto.

De todos modos, el Product Owner y la organización tinen la misión de definir un conjunto de DoD que sea de aplicación en los proyectos, y que marquen un mínimo aplicable en la organización. A partir de estos mínimos, los equipos se adscriben a esta definición, y pueden completarla para hacerla mas restrictiva, (aunque nunca para crear una DoD mas laxa).


Las DoD han de ser el producto de la negociación y el consenso entre miembros del equipo. Estos, en este ejercicio, reconocen, por un lado, los criterios de calidad que la organización y el negocio plantean para este proyecto. Y, por otro lado, ha de ser el espacio donde los técnicos proponen sus propios criterios de calidad, buenas prácticas o artefactos que hagan posible la obtención del producto con la calidad deseada.



¿Qué deberíamos incluir en las DoD?

Las DoD han de incluir todo aquello que se considera necesario, y que va mucho más allá de la simple construcción. A menudo, en nuestro trabajo, la acción de construir ya es de por sí todo un reto, que pone a prueba nuestra resistencia tanto mental cómo física. Es habitual entonces qué, una vez finalizada la construcción, podemos entrar en un proceso de relajación que hace que bajemos la guardia ante otras acciones igualmente necesarias para el éxito de aquello que acabemos de crear.

Es toda una lástima ver cómo una entrega fracasa a causa de falta de atención en elementos que proporcionan robustez a aquello que hemos construido. En este sentido, es necesario ser cuidadoso a la hora de negociar con el equipo que elementos debemos tener presentes al crear nuestra DoD.


Podemos clasificar los ítems de nuestra DoD en las familias siguientes:

  • Pruebas
  • Documentación
  • Buenas prácticas
  • Normas de la organización o del negocio
  • Elementos de calidad sobre el producto y su tecnología
  • Participación de terceros y aceptaciones específicas (UX, seguridad…)
  • Revisiones entre compañeros de equipo (code review)
  • Algunas reglas. Comp por ejemplo: No arrancar nada nuevo sin acabar el trabajo actual

Las pruebas

A menudo, cuándo pensamos en las DoD, rápidamente la mente nos lleva a pensar en las pruebas. Cómo si fuese la única misión de las DoD. No es cierto. Hay más cuestiones a tener presente a la hora de construir las DoD. Pero también es cierto que las pruebas son un elemento de especial importancia.


Las pruebas son aquello que rubrica la calidad y la fiabilidad de lo que hemos construido. Por mucho esfuerzo que dediquemos a la construcción; si en la sesión de Review el producto da problemas de fiabilidad, todo nuestro trabajo se pone en duda. Para evitar esto tenemos las pruebas.

Hemos de tener presentes algunas cuestiones muy importantes a la hora de definir las pruebas:


La importancia de las pruebas

Las pruebas son tanto o más importantes que la construcción. Y requiere la participación activa del equipo técnico, tanto en la definición, cómo en la posterior ejecución de estas pruebas.


Pruebas a 360 grados

Las pruebas han de cubrir todos los aspectos técnicos y funcionales que permitan evaluar nuestra creación en un entorno de 360 grados. Así hemos de planificar pruebas en los niveles siguientes:

  • Pruebas unitarias y técnicas a nivel micro. Para cubrir este nivel de pruebas, es aconsejable que el equipo tenga presentes las tendencias actuales sobre la construcción centradas en pruebas.
  • Pruebas funcionales. Una vez tenemos el producto; y este es técnicamente impecable gracias a las pruebas unitarias y técnicas. El equipo ha de garantizar que el producto creado responde de forma adecuada ante escenarios funcionales concretos. De una buena respuesta del sistema ante escenarios de error depende en gran parte el éxito de nuestra creación.
  • Pruebas de integración y regresivas. Es lógico pensar que la nuestra creación no actuará libre y aisladamente en el sistema tecnológico de la empresa. Habrán interrelaciones necesarias y, como mínimo, en el normal escenario de construcción iterativa, habrá la necesidad de asegurar el correcto funcionamiento con la porción ya existente del mismo producto. Si nuestro incremento no tiene una buena relación con terceras partes necesarias y/o con los incrementos anteriores, no dará el valor deseado al negocio ni a los usuarios.
  • Pruebas de aceptación y criterios de aceptación. En el Sprint Planning hemos visto que, una parte fundamental en la definición de lo que es necesario construir en el próximo Sprint, consiste en que los Stakeholders y/o el Product Owner nos indican los criterios de aceptación en que basaran su inspección en el Sprint Review. El equipo entonces tiene información muy valiosa que hará bien en explorar de cara a asegurar la calidad del producto final. Para esto, es necesario que se asegure, mediante pruebas de aceptación, de que estos criterios son satisfactorios.

La definición documentada de las pruebas

El equipo participa activamente en la definición de las pruebas del incremento (y de sus piezas unitarias) de forma previa a la construcción del producto. Hacerlo así sitúa al equipo en el entorno de trabajo adecuado, donde las pruebas son el elemento que aglutina la construcción. Para llegar a esto hay que crear algún tipo de elemento documental donde queden reflejado el universo de pruebas que se llevaran a cabo, la infraestructura necesaria y los resultados que se esperan.


Las evidencias en la ejecución de las pruebas

Las pruebas son un elemento serio que requiere la aportación de evidencias que demuestren la correcta definición y ejecución de estas. Las evidencias son elementos imprescindibles a la hora de mostrar el nivel de calidad y fiabilidad conseguida en nuestra creación.


La documentación

¿Quién ha dicho que en agilidad no se documenta?


No puede plantearse una construcción seria ni con garantías sin un corpus documental adecuado. Así, en nuestra DoD debe haber espacio para la definición de estos elementos documentales. Cómo se construirán, quién los construirá, y qué nivel de calidad se espera de estos elementos.

Algunos elementos documentales necesarios:

  • Documentación tanto de la necesidad a la cual da cobertura el incremento y cada una de las historias de usuario incorporadas, cómo de la solución técnica o tecnológica aplicada.
  • Planes documentados que sean necesarios tanto para el despliegue o entrega al negocio y a los usuarios, cómo para el posterior mantenimiento y evolución.

Las buenas prácticas

A menudo, a causa del tipo de proyecto, a las características del producto que quiere construirse o a la tecnología aplicable, existen una serie de normas estándares que pueden o han de ser de aplicación en nuestro proyecto.


Así tenemos buenas prácticas de programación, normas sobre usabilidad y accesibilidad , buenas prácticas sobre diseño UX, DevOps, CI/CD , buenas prácticas en la documentación, etc.


Normas de la organización o del negocio

A menudo la empresa no es agnóstica sobre algunos criterios de calidad de los productos que se explotan en ella. Por ejemplo, podemos encontrar criterios de calidad a nivel de marca, estilos, normas jurídicas aplicables, normas de seguridad que afectan al producto o a su uso.

A menudo estas normas de calidad están regidas por un departamento de oficina técnica (PMO) que interviene en los proyectos para asegurar el cumplimiento de dichas normas. El equipo técnico del proyecto ha de tener presentes estas normas para poder aplicarlas y, sobre todo, detectar y gestionar posibles interferencias o puntos débiles en el desempeño de los objetivos de calidad.


Elementos de calidad sobre el producto y su tecnología

A causa de la tecnología utilizada para la creación del producto, pueden ser de aplicación algunas normas de carácter tecnológico y arquitectónico. Cómo por ejemplo:

  • API First
  • Niveles de calidad en lo referente al rendimiento. Cómo por ejemplo tiempos de acceso a características del propio producto o a integraciones con productos externos.
  • Niveles de fiabilidad en diferentes escenarios cómo por ejemplo: situaciones de error de elementos tecnológicos o de soporte, situaciones de carga o caídas totales o parciales del servicio.
  • Niveles de seguridad. Cómo por ejemplo certificados de acceso, seguridad pasiva y activa, segundo factor, copias de seguridad y recuperación, etc.



Las DoD cubren todos los niveles de la construcción

Cuándo el equipo define los ítems de la DoD no está pensando solo en el incremento cómo un elemento indivisible. Hacerlo así sería un error. Las DoD son elementos que pueden explorar la calidad a todos los niveles de la construcción:


Entonces, el equipo consensúa elementos de la DoD que pueden ser aplicados a uno o más de estos niveles, y que deben incluir tanto elementos técnicos, cómo documentales o de evidencias.



Las DoD se evalúan en el Sprint Review

La Sprint Review, aparte de ser el espacio donde se realiza la entrega del incremento; también debe ser el espacio donde se aportan las evidencias que demuestran que este incremento es fiable y tiene el nivel de calidad necesario. Las DoD son un elemento crucial en esta demostración de la calidad. Las DoD deben formar parte, junto al incremento, en la ilustración de su funcionamiento.



Las DoD se revisan de forma constante en la Sprint Retrospective

Las DoD son un elemento vivo, que evoluciona de la misma forma que evoluciona el propio proyecto. Y que mejoramos y perfeccionamos de forma constante, de la misma forma que también evolucionan y mejoran las personas y los equipos que participan. Constantmente aparecen nuevas formas de hacer. Y constantmente evaluamos si podemos hacerlo mejor. En este proceso constante se puede someter la DoD a revisión. Añadir, extraer y modificar aspectos de la DoD para adaptar de forma constante estas políticas a las necesidades cambiantes.

La Retrospectiva es el mejor espacio posible para llevar a cabo esta revisión. La revisión de las DoD no puede ser una excusa para minimizar normas que la organización considera importantes. Aunque si puede ser un espacio para dialogar sobre cómo disponer de las DoD mas adecuadas. El mejor indicativo de madurez del equipo (y de la organización) es que en el proceso de búsqueda de mejora que trata de promover la retrospectiva, las DoD estan presentes como un elemento mas sobre el que el equipo pone el foco para perfeccionarlo.