Completando tus tareas (parte 1)
No usarás el “ya está” en vano.

Al realizar una actividad, cualquiera que está sea, seguimos un flujo de actividades que podemos resumir como: inicio, desarrollo y fin.
Cada tarea dentro de nuestro backlog tiene un propósito a cumplir, una vez definido este propósito se procede a la ejecución de las actividades necesarias para lograr que el mismo se cumpla, al llegar al fin de la actividad de entiende que todo lo que se necesitaba hacer ha sido terminado. Pero ¿qué significa que algo está terminando?
Usando el desarrollo Ágil tenemos dos conceptos muy interesantes, el famoso DoD (Definition of Done) y el Criterio de aceptación (Acceptance criteria). Ambos son cosas diferentes pero al mismo tiempo complementarios, esto implica que para que nuestra actividad esté completa debe cumplir ambos escenarios.
Como diría Jack el destripador vámonos por partes.
¿Qué es una definición de terminado?
De modo simple las DoD son listas validación para auditar qué el esfuerzo realizado para generar el código es correspondiente al trabajo ejecutado. Esto conduce a tener Calidad en el código, aprovechando los recursos para completar una serie de actividades, ya que cada tareas puede decirse que está completada si cumple esta lista de elementos de forma comprobable.
En SCRUM se dice que al término de cada Sprint se tendrá un “producto potencialmente entregable”, esta potencialidad de entrega es el equivalente a la lista de requisitos de una DoD.
Deben tenerse en cuenta al realiza una DoD los siguientes elementos:
- El Equipo de Desarrollo es el único responsable de la DoD.
- Las DoD cambian con el tiempo (y es sano que cambien ya que eso implica madurez del equipo en el reconocimiento y desarrollo de capacidades así como el aprovechamiento de recursos).
- Se puede tener una DoD diferente por cada User Story.
¡Bien! Ya sabemos que es una DoD, todo suena genial, ¿cierto?, pues sí, pero no, en el paraíso también hay problemas…
El problema
Un problema general tiene que ver con el dimensionamiento de las DoD, para esto solucionar esto, preguntémonos lo siguiente al momento de desarrollar la DoD:
- ¿Nuestra DoD es para una característica? (elemento del balcklog)
- ¿La DoD es para el Sprint? (el conjunto de tareas o características a desarrollar)
- ¿Cuales elementos de la DoD son para la liberación?
Un ejemplo de los elementos que cubre una DoD podría ser el siguiente:
- Todo el código de negocio fue escrito
- Todo el código de presentación fue escrito
- El código está comentado
- Se siguen los estándares institucionales y de buenas prácticas generalmente aceptadas de desarrollo
- Las pruebas funcionales fueron escritas
- Las pruebas funcionales pasaron
- Se reviso el código por un peer (cuando programas en pareja)
- Las pruebas de calidad pasaron por Desarrollo
- Las pruebas de seguridad pasaron por Desarrollo
- El código está versionado
- Se documentaron los cambios y necesidades de infraestructura necesarios para que el código desarrollado funcione correctamente.
En conclusión
Cómo podemos ver las DoD son un trabajo de seguir buenas prácticas y entendimiento de la aplicación y de las tareas que se desarrollarán así como compromiso y responsabilidad, tanto individual como del equipo para generar código de calidad.
Cuando terminamos una tarea, característica o Sprint y se cumplen los elementos de la DoD, decimos que se ha terminado el trabajo, pero eso no significa que éste sea aceptado. Para eso se deben cubrir los Criterios de Aceptación y entonces, podremos decir que Terminamos. Pero eso lo mencionaré en la siguiente entrega.
Recuerda que la Definición de Terminado (DoD) evoluciona con el tiempo y eso demuestra la madurez del equipo de trabajo.
