Definición de «hecho»
La definición de «terminado» consiste en una lista de comprobación para todo el equipo que cada historia debe superar antes de su entrega. Un ejemplo de «definición de terminado», quién es el responsable de la misma y en qué se diferencia de los criterios de aceptación.
La definición de «terminado» consiste en una lista de comprobación única para todo el equipo: el estándar que cada historia debe cumplir antes de que se considere completada. Los criterios de aceptación son específicos de cada historia; la definición de «terminado» es global. Al confundir ambos conceptos, «terminado» acaba significando, sin que nos demos cuenta, «funciona en mi equipo».
Todos los equipos han experimentado la diferencia entre «el desarrollador dice que está terminado» y «realmente está listo para su lanzamiento». La definición de «terminado» acorta esa distancia. Se acuerda una vez y se aplica en cada sprint, independientemente de lo que implique cada historia en concreto. Sin ella, «terminado» es una opinión subjetiva de cada persona, y la diferencia sale a la luz en la demostración o, lo que es peor, en producción.
Lista de comprobación de la «definición de finalización» (ejemplo)
Un punto de partida viable para un equipo encargado del lanzamiento de una aplicación web:
- Se han cumplido y verificado los criterios de aceptación.
- Se ha revisado el código y se ha fusionado con la rama principal.
- Se han escrito pruebas automatizadas que se han superado; no hay nuevas pruebas inestables.
- No se conocen regresiones ni errores críticos pendientes relacionados con esta historia.
- Se han actualizado la documentación y el registro de cambios en los casos en que el cambio afecta a los usuarios.
- Se ha implementado en el entorno de prueba y se han realizado pruebas de aceptación.
- El responsable del producto lo ha aceptado.
Adopte esta definición y, a continuación, adáptela a lo que su equipo vaya a aplicar realmente. Una definición de «terminado» con un criterio que nadie comprueba es peor que una breve. Esto hace que el equipo acabe considerando toda la lista como algo meramente decorativo. Asegúrese de que quepa en una sola pantalla y de que cada punto sea verificable.
Definición de «terminado» frente a criterios de aceptación
Esta es la distinción con la que los equipos suelen tropezar con mayor frecuencia. Los criterios de aceptación para una historia de inicio de sesión son específicos de dicho proceso: unas credenciales correctas le llevan al panel de control, mientras que tres intentos fallidos bloquean la cuenta. La definición de «terminado» (revisado, probado, implementado) es idéntica para la historia de inicio de sesión, la historia de búsqueda y la historia de facturación. Los criterios son locales y responden a la pregunta «¿hemos creado lo correcto?». La definición de «terminado» es global y responde a la pregunta «¿alguna parte de nuestro trabajo está lista para su entrega?». Una historia no se considera terminada hasta que supera ambas etapas.
Definición de «listo» frente a definición de «terminado»
Son como dos soportes para libros, no gemelos simétricos. La definición de «listo» permite que una historia entre en el sprint: lo suficientemente pequeña, lo suficientemente clara y con una estimación. La definición de «hecho» permite que el trabajo terminado salga del sprint. «Listo» se refiere a la historia; «hecho», al trabajo. Los equipos que solo cuentan con una de ellas suelen centrarse en «listo» (porque las historias que no están listas llaman mucho la atención) y dejan que «terminado» pase desapercibido, lo que provoca que se acumulen las historias pendientes y las que están «al 90 % completas».
Las tres listas de comprobación dejan de confundirse entre sí en cuanto se comprenda qué es lo que controla cada una de ellas:
| Definición de «listo» | Criterios de aceptación | Definición de «hecho» | |
|---|---|---|---|
| Ámbito de aplicación | A nivel mundial, cada historia | Noticia local | A nivel mundial, cada historia |
| Gates | Inicio del sprint | El desenlace de la propia historia | Salir del sprint |
| Respuestas | «¿Podemos empezar ya?» | «¿Hemos creado lo adecuado?» | «¿Se puede enviar?» |
| Propiedad de | El equipo, junto con el responsable del producto | Responsable de producto, junto con el equipo | El equipo |
¿Quién es el responsable de establecer la definición de «terminado»?
El equipo lo redacta; el equipo se encarga de su cumplimiento. El scrum master actúa como facilitador, y el product owner aporta su opinión sobre el umbral de aceptación, pero son los ingenieros quienes deciden qué implica técnicamente que algo esté «terminado», ya que un concepto de «terminado» mal definido supone una deuda que ellos deben saldar, no la dirección. Vuelva a analizarlo en una retrospectiva cuando la misma deficiencia siga apareciendo; esa es la señal de que falta algún requisito.
¿Qué es lo que falla?
La definición de «terminado» se convierte en un cartel. Se cuelga en la wiki del equipo, se recita durante la incorporación de nuevos miembros y se ignora ante la presión de los plazos: «Escribiremos las pruebas en el próximo sprint». Dos sprints más tarde, la deuda de pruebas es estructural y la definición se ha convertido en una ficción. Cuando el concepto de «terminado» es impreciso, la velocidad se infla: el equipo acumula puntos por trabajo que en realidad no está listo para su entrega, y la previsión deja de tener sentido sin que nadie se dé cuenta.
La solución no es una lista más larga, sino una más corta en la que el equipo se mantendrá firme. Una definición de «terminado» solo es real en la medida en que haya una tarea que esté dispuesto a no marcar como terminada porque no cumple con uno de los criterios.
Los criterios de aceptación determinan el avance de la historia. La definición de «terminado» determina el avance del equipo. Redáctelos de forma lo suficientemente concisa como para que realmente pueda hacerlos cumplir. Un criterio que no se hace cumplir no es más que papeleo.
Preguntas frecuentes
¿Cuál es la definición de «terminado» en el método ágil?
La definición de «terminado» consiste en una única lista de comprobación que cada historia debe cumplir antes de que se considere completa: por lo general, debe haberse sometido a pruebas, haber pasado una revisión de código, haberse fusionado, haberse documentado y haberse implementado en el entorno de pruebas. Se trata de una norma común para todo el equipo, no de una lista específica para cada historia, y su finalidad es garantizar que «terminado» signifique lo mismo cada vez que alguien lo mencione.
¿Cuál es la diferencia entre la definición de «terminado» y los criterios de aceptación?
La definición de «terminado» es global; se aplica el mismo criterio a todas las historias. Los criterios de aceptación son locales, específicos de una historia concreta. Los criterios de aceptación indican lo que debe hacer esta funcionalidad; la definición de «terminado» indica qué significa «listo para su entrega» en relación con cualquier trabajo que el equipo produzca. Una historia debe cumplir ambos requisitos.
¿En qué consiste una lista de verificación de «definición de «hecho»»?
Una lista breve y clara de los requisitos que deben cumplirse en cada historia: código revisado e integrado, pruebas escritas y superadas, ausencia de regresiones conocidas, documentación actualizada, implementación en un entorno de prueba y aceptación por parte del responsable de producto. Los elementos concretos pueden variar según el equipo, pero la lista debe caber en una sola pantalla y cada línea debe poder verificarse.
¿Cuál es la diferencia entre la definición de «listo» y la de «terminado»?
Las etapas de «listo» marcan el inicio del sprint; son los criterios que debe cumplir una historia antes de que el equipo se comprometa con ella. Las etapas de «terminado» marcan el final del sprint; son los criterios que debe cumplir el trabajo finalizado antes de su entrega. «Listo» se refiere a que la historia esté bien definida; «terminado» se refiere a que el trabajo esté listo para su entrega.
¿Quién establece la definición de «terminado»?
El equipo de desarrollo es el responsable, normalmente con la ayuda del scrum master. El propietario del producto aporta su opinión sobre el umbral de aceptación, pero son las personas que realizan el trabajo quienes deciden qué implica técnicamente que algo esté «terminado», ya que son ellas las que pagan las consecuencias cuando dicho concepto se define de forma imprecisa.
Lecturas relacionadas
- Estimación ágil: la guía completa: aquí encontrará toda la información al respecto.
- Criterios de aceptación: la prueba por cada historia con la que a menudo se confunde la definición de «terminado».
- Definición de «ready»: la línea de meta situada al otro extremo del sprint.
- Errores en el Planning Poker: cómo un «hecho» poco firme inflama la velocidad.