Describiremos ahora, cada uno de los artefactos, su definición e importancia para Scrum.
En él, el Dueño de Producto, mantiene una lista actualizada de requerimientos funcionales para el software. Esta lista, representa "qué es lo que se pretende" pero sin mencionar "cómo hacerlo", ya que esta última, como vimos en el capítulo anterior, será tarea del Scrum Team.
El Backlog de Producto, es creado y modificado únicamente por el Dueño de Producto. Durante la ceremonia de planificación, el Scrum Team obtendrá los items del producto, que deberá desarrollar durante el Sprint.
Formato del Backlog de Producto
El Backlog de producto, es una lista de items que representan los requerimientos funcionales esperados para el software.
Para cada uno de estos ítem, será necesario especificar:
Estas estimaciones, no se efectúan sobre items poco prioritarios ni tampoco sobre aquellos donde exista un alto grado de incertidumbre.
De esta manera, se evita la pérdida de tiempo en estimaciones irrelevantes, postergándolas para el momento en el cual realmente sea necesario comenzar a desarrollarlas.
Granulidad de los ítems
Los items del Backlog de Producto no necesariamente deben tener una granulidad pareja. Es posible encontrar ítems tales como "es necesario contar con un módulo de control de stock y logística" o uno tan pequeño como "Modificar el color de fondo de los mensajes de error del sistema, de negro a rojo".
Ítems de tan baja granulidad, suelen agruparse en un formato denominado "Historias de Usuario" mientras que los de alta granulidad, son los denominados Temas o Epics.
Una historia de usuario es aquella que puede escribirse con la siguiente frase:
Como [un usuario], puedo [una funcionalidad] para [un beneficio]
Como usuario registrado, puedo cargar un voucher para calcular mi descuento en la compra.
Criterios de Aceptación
Cada ítem del Backlog de Producto, es necesario que especifique cuales son los criterios de aceptación (o test de aceptación que debe superar), para considerar cumplido el requisito.
Ejemplo:
Esta recopilación, que durante la planificación ha sido propuesta por el Dueño de Producto y ya negociada, es aquella que el Scrum Team se compromete a construir durante el Sprint en curso.
El Backlog de Sprint, generalmente (y muy recomendado), se visualiza mediante tableros físicos – también llamados Scrum Taskboard - que hacen visible el proceso de construcción, a toda persona que ingrese al área de desarrollo.
Para armar el Backlog de Sprint, el Scrum Team, divide los items en tareas – tasks – de que no demanden una labor superar a una jornada de trabajo. Es decir, que una tarea, no debería superar las 8 horas de trabajo.
Estas tareas, serán divididas en pendientes, en curso y terminadas y cada una de ellas, debe permitir visualizar, como mínimo, el esfuerzo que demanda su construcción y el nombre del miembro del equipo que se ha asignado dicha tarea.
Es muy frecuente, a la vez de ser una práctica recomendada, que cada tarea sea a la vez, "etiquetada", diferenciando, por ejemplo, cuando representa un bug, una tarea de diseño, un test, etc.
Dividiendo un ítem del Backlog de producto en tareas
La estrategia consiste en desmembrar el item a la mínima expresión posible, encuadrada en un mismo tipo de actividad. El desmembramiento debe hacerse "de lo general a lo particular, y de lo particular al detalle".
Retomando el ejemplo anterior, intentaremos desmembrar, el primer ítem del Backlog de Producto:
Como administrador quiero poder administrar las secciones del sistema para poder establecer el orden de visualización de las mismas
Yendo de lo general (un ABM de secciones) a lo particular (hacer los modelos, vistas - lógica y layot - y controladores; testearlo, integrarlo y documentarlo), obtenemos una lista de tareas tentativa:
Otro detalle a considerar, es el tiempo que demanda cada tarea. Por ejemplo, correr un ORM lleva solo algunos minutos, pues no puede ser considerado una única tarea. Entonces, puede "sumarse como detalle" a la tarea "crear modelos". De manera contraria, documentar en el manual del usuario, llevará todo un día de trabajo. Por lo cual, debe asignarse a una única tarea.
Tableros de Scrum
Con la lista de tareas ya armada, estamos en condiciones de crear el tablero.
Un Scrum Taskboard, básicamente se divide en 3 columnas: pendientes, en curso y terminadas y se complementa la información con un Diagrama de Burndown que mostrará el esfuerzo restante para concluir el Sprint.
Existen decenas de tableros que pueden implementarse. Recomiendo para ello, visitar http://www.xqa.com.ar/visualmanagement/