La Definición de Done es un elemento clave de Scrum para asegurar la consistencia de los Incrementos de Producto y los Sprints. El Criterio de aceptación es una práctica útil para facilitar el entendimiento de las necesidades de los usuarios y evitar desviaciones innecesarias de alcance en su desarrollo. Confundir ambos conceptos es muy frecuente. En este artículo explicamos la diferencia y como utilizar ambos con efectividad.
Cursos relacionados
Fecha | Ciudad | Curso |
---|---|---|
04/03 | Curso virtual | Professional Scrum Master – Advanced (PSM-A) |
13/01 | Curso virtual | Professional Scrum Master (PSM) |
14/01 | Curso virtual | Professional Scrum Product Owner (PSPO) |
03/02 | Curso virtual | Professional Scrum Product Owner – Advanced (PSPO-A) |
¿Qué es la Definición de Done?
La Guía Scrum 2020 define la “Definición de Done” como la descripción formal del estado del Incremento cuando cumple las medidas de calidad requeridas por el Producto.
También dice que “en el momento que un Product Backlog Ítem cumple la Definición de Done, ha nacido un Incremento”.
Así pues, esta definición se aplica a todo el Incremento y detalla las condiciones bajo las cuales el Producto es usable sin tener que añadir ningún trabajo adicional.
Es habitual que se confunda la Definición de Done con las verificaciones de funcionalidad de los Ítems que se van realizando durante el Sprint, como es comprobar el Criterio de Aceptación. Uno de los motivos es que una buena práctica es no dejar estas comprobaciones de funcionalidad para el final del Sprint (realizando una “mini-cascada”) para evitar sorpresas desagradables.
Las buenas prácticas de ingeniería de software ágil como la “Integración Continua (CI)” recomiendan verificar frecuentemente tanto las pruebas técnicas, como las funcionales y las de calidad (p.e. la Definición de Done), y obligatoriamente antes de dar por finalizado el Incremento.
La Definición de Done detalla las condiciones de calidad que debe cumplir cualquier Incremento del Producto, mientras que el Criterio de Aceptación define las condiciones específicas de cada funcionalidad respecto su comportamiento y calidad técnica.
Este diagrama muestra un ejemplo sencillo de la definición de Done y Criterio de Aceptación.
💌 Recibe estos artículos en tu buzón cada semana
¿Qué es el Criterio de aceptación?
El Criterio de Aceptación es una buena práctica de la ingeniería de software ágil consistente en definir, previamente a su implementación, las condiciones específicas de cada funcionalidad respecto su comportamiento y calidad técnica. Esta definición suele realizarse durante el refinamiento previo al Sprint, por parte del Product Owner, los Developers y otros Stakeholders (p.e. los usuarios o expertos concernidos).
Cabe destacar que el Criterio de Aceptación no es estándard de Scrum, no aparece en la Guía Scrum, y que no es un documento que el Product Owner escribe para que lo lean los Developers, sino que suele ser definido de manera conjunta para mejorar su calidad y minimizar malentendidos.
Tampoco debe confundirse el criterio de aceptación con las pruebas funcionales, que se realizan como parte del desarrollo de la funcionalidad durante el Sprint y que pueden adoptar diferentes estilos, como es el Behaviour-Driven Development.
El Criterio de Aceptación no es algo estándard de Scrum, sino una buena práctica ágil, que suele realizarse conjuntamente entre Product Owner y Developers en el refinamiento previo al Sprint.
¿Cómo se usan conjuntamente la Definición de Done y el Criterio de Aceptación?
Ejemplo de aplicación del Criterio de Aceptación,
Implementación del Ítemy Definición de Done durante el Sprint.
El Criterio de Aceptación pretende guiar la implementación, así como permitir las estimaciones o detectar dependencias. Permite comprender los aspectos clave de la funcionalidad, p.e. acompañados de una descripción gráfica de las pantallas como un mockup, así como sus condiciones técnicas específicas, como p.e. rendimiento o compatibilidad.
También es un “contrato” básico con el cliente para explicitar las expectativas de los usuarios, lo cual en ningún caso debería significar que se evite la flexibilidad durante la implementación o que se rechacen cambios, pero permite encontrar un término medio de estabilidad durante la implementación.
A partir del Criterio de Aceptación se suele definir de manera más detallada la documentación del comportamiento esperado de la funcionalidad y de sus pruebas funcionales y técnicas. Se pueden utilizar varios enfoques para plasmar estas pruebas, como el Behaviour-Driven Development o las “Pruebas (funcionales) de Aceptación”.
Estas últimas son diferentes del Criterio de Aceptación porque tienen como objetivo detallar las funcionalidades para verificar su implementación, aunque la similitud del nombre puede hacer que se confundan con el criterio de aceptación.
Finalmente, la figura siguiente muestra como durante el desarrollo pueden surgir dudas o nuevas ideas que modifiquen el criterio de aceptación. Si esto ocurre, debería consensuarse con el Product Owner y los Stakeholders. Una vez que se concluye la implementación suele verificarse de nuevo la Definition of Done, que no cambia durante el Sprint, sino durante las retrospectivas si se considera necesario o se está en condiciones de mejorar la calidad.
El Criterio de Aceptación, la Definition of Done y la verificación de la implementación (mediante pruebas de aceptación o Behaviour-Driven Development) suelen trabajarse conjuntamente durante el Sprint. Una buena práctica como la Integración Continua recomienda hacerlo a diario, y no dar por entregada una funcionalidad hasta que se cumplen todas ellas.
Los criterios de aceptación…
- Deben describir el resultado que el cliente espera y no la especificación detallada del requerimiento.
- No deben ser escritos como objetivos.
- No deben ser escritos como tareas que debe realizar el Scrum Team
- No deben describir especificaciones técnicas de estándar de código y arquitectura de software.
- Su ordenamiento es descendente según la prioridad basada en la visión y estrategia de valor por el PO.
- Deben describir lo que se espera que haga la solución y no la funcionalidad.
- Deben ser redactados de la siguiente manera: [ Tiene que o Debe de ] + Verbo en infinitivo + Descripción del criterio.
- Pueden llevar reglas de manera muy abstracta solo para dar contexto a la persona que lo lee o
- Pueden referir a un documento donde especifique las reglas de negocio de forma precisa, dichas reglas deberán ser aplicadas para alcanzar el resultado esperado por el cliente.
Gracias a Adrián Fuentes por pasarme esta lista en Linkedin. 👏
¿Quieres recibir más información y recursos de calidad?
¡Suscríbete a nuestra newsletter mensual!
Cada mes enviamos una newsletter a más de 1.200 personas con contenidos, recursos y ofertas especiales de nuestros cursos. Queremos ofrecer contenido de calidad y sin spam.