Scrum con Jira – Relación entre Épicas, Historias y Tareas Técnicas.

Como se comentó en un post anterior, Jira permite trabajar con Épicas, Historias y Tareas en el backlog. En este post se explicará la relación entre las mismas. Para entenderlo mejor, he elaborado el siguiente gráfico.

scrum-épicas-historias-tareas-tecnicas

Épicas, Historias y Tareas Técnicas

Como puede verse, una Épica puede ser descompuesta en múltiples Historias de usuario y a su vez, estas historias de usuario se descomponen en tareas técnicas.

Épica

Una Épica puede ser vista como una historia de usuario de alta complejidad (petición de negocio de alto nivel y complejidad, no clara). Para elaborarla se puede requerir un esfuerzo muy grande y no puede ser cubierta en un Sprint. Una épica debido a su gran tamaño es difícil de estimar y de acometer, así que podemos aplicar aquí el principio “divide y vencerás” y descomponerla en historias. Implementar una épica suele llevar dos o más sprints.

Ejemplos de Épicas.

  • Como usuario quiero poder registrarme y tener una cuenta de usuario para poder acceder a mi información de usuario y de los servicios que uso.
  • Como usuario quiero un servicio de “lista de deseos” para poder guardar los artículos que me gustan.

Historia de Usuario

Una historia de usuario representa una necesidad de negocio que puede ser implementada en un sprint y aporta valor al producto. Al final del Sprint la historia añade una nueva funcionalidad o característica al producto y puede ser candidata para pasar a producción.

En el backlog pueden haber historias de usuario sueltas o historias de usuario asociadas a épicas, ambas deben poderse terminar en un sprint, si no pueden terminarse en un sprint, deben ser descompuestas en historias de usuario más pequeñas.

Un patrón típico de definición de historias de usuario es el siguiente (1).

“Como [un] [tipo de usuario] [quiero, puedo, necesito, etc] para  [alguna razón].”

La redacción de la historia en esta forma permite identificar rápidamente para “quien” es esa funcionalidad y cual es el objetivo que se persigue o que gana ese usuario. Es un formato que facilita la comunicación del equipo entero y es fácil de entender por negocio.

Ejemplos

  • Como [Usuario Anónimo] quiero [poder registrarme en el portal] para [crear una cuenta.]
  • Como [Usuario Registrado] quiero [poder iniciar sesión en el portal] para [poder acceder a la información de mis servicios contratados]

No hay una barita mágica ni para redactar historias de usuario, ni para partir épicas en historias de usuario, ni para identificar épicas. Con el tiempo se va ganando destreza identificando épicas, dividiendo épicas en historias y redactando las historias.

Tareas Técnicas

Las tareas técnicas son la  descomposición de una historia de usuarios en tareas más manejables que  deben ser implementadas para poder implementar la historia durante el sprint. Lo normal es que durante la reunión de sprint planning se hayan identificado estas tareas técnicas. Las tareas técnicas deben ser generadas por el equipo de desarrollo.

Partir una historia en tareas técnicas ayuda a dimensionar mejor el esfuerzo de la historia en puntos.

Aunque no es obligatorio dividir una historia de usuario en tareas técnicas en Jira, puede ser una buena práctica si se quiere llevar un mejor control del desarrollo de la historia o si para implementar una historia se requiere la intervención de varios miembros del equipo.

Ejemplo, en la historia

Como [Usuario Anónimo] quiero [poder registrarme en el portal] para [crear una cuenta.]

Podemos identificar las siguientes tareas técnicas.

  • Implementar formulario básico para capturar los datos.
  • Implementar backend para recibir los datos e implementar la lógica de funcionamiento.
  • Maquetar formulario según diseño previsto.
  • Diseñar  plan de pruebas
  • Ejecutar plan de pruebas.

Las tareas técnicas no se redactan como historias al estar orientadas a ejecutar acciones y al igual que en las historias o épicas no hay una fórmula para crearlas y dependerá del equipo, del grado de madurez del mismo, de la historia, y de los participantes.

Una guía que suelo usar es que dependiendo del tamaño de la historia  se debe descomponer en tareas técnicas, esto ayuda no sólo al desarrollador, sino al líder de IT, al Scrum Master y al PO a ver los avances. Otro elemento que nos puede ayudar a detectar las tareas técnicas son los criterios de aceptación.

Cómo se ven las tareas técnicas en Jira?

Las relación entre tareas técnicas y épicas se ve claramente en la vista del sprint activo dentro de una pizarra de Scrum.

Historias y tareas técnicas en Jira

Historias y Tareas Técnicas

Las tareas técnicas se muestran debajo de la historia y se pueden mover a la columna correspondiente dependiendo del estado. Una vez las tareas técnicas están terminadas, Jira sugiere cerrar la historia.

Esta vista puede verse como la representación virtual de la pizarra de scrum física muy utilizada en diferentes equipos y es muy útil para ver el estado del Sprint.

 

Scrum con Jira, De Épicas, Historias y Tareas

Una de las principales labores a realizar cuando gestionamos desarrollos usando Scrum es la gestión del backlog. En este post veremos cómo se usa Jira para este propósito.

Que es un Backlog

Según la definición de scrum.org

Product Backlog is an ordered list of everything that might be needed in the product and is the single source of requirements for any changes to be made to the product (Product Backlog – scrum.org)

Es una lista ordenada de todas las cosas que podría necesitarse en el producto y la única fuente de requerimientos para cualquier cambio a ser realizado al producto

En la práctica un Backlog contiene todo lo que puede o podría ser necesario para desarrollar un producto y además tareas que de una manera u otra impacta al equipo de desarrollo. Aunque el backlog debe ser mantenido y priorizado por el Product Owner (PO), no necesariamente es el único involucrado en la entrada de items, el equipo de desarrollo puede realizar entradas para reflejar necesidades detectadas, incidencias a resolver en otros sprints, etc. El ordenamiento y priorización de los Items es realizado de manera constante por el PO y los elementos superiores del mismo son los candidatos a incluir en el siguiente sprint y deben estar más refinados que el resto.

En el backlog podemos encontrar:

  • Épicas: Peticiones sobre el producto de alta complejidad que suelen ser descompuestas en Historias de usuario. Por ejemplo, el desarrollo de un módulo X con más de una funcionalidad.
  • Historias de Usuario: Petición sobre el producto cuyo desarrollo puede encajarse en un sprint. Si no puede hacerse en un sprint debe descomponerse.
  • Tareas: Tareas asociadas al producto que no necesariamente son historias de usuario, pero que requieren ser realizadas dentro del marco del desarrollo del producto. Por ejemplo, instalación de un software, documentación, despliegues, nuevas instalaciones, etc.
  • Incidencias: Incidencias detectadas en el producto que deben ser priorizadas para su resolución dentro de un ciclo de vida de producto.

TIP: Es importante hacer mantenimiento al backlog cada cierto tiempo debido a que pueden generarse items duplicados, obsoletos por tiempo o por descarte de negocio, tareas no priorizadas adecuadamente, etc.

Vista de Backlog y  Épicas en Jira.

La siguiente imagen muestra un ejemplo de backlog en Jira donde se hace uso de Epicas, historias, tareas e incidencias.

Backlog - Jira, Epicas e historias

Vista de Backlog en Jira

Al entrar en el modo de visualización  “Trabajo Pendiente” se puede ver el sprint activo y el backlog. Seleccionando la opción “Épicas”, podemos desplegar la lista de las mismas, editarlas o ver el resumen de la épica desglosada como se muestra en la figura. Una épica como cualquier tarea en Jira tiene asignado un número.

El modo de visualización de épicas es de gran ayuda a la hora de gestionar el backlog dado que permite crear y editar las historias de las mismas. Al asociar una historia a una épica, se añade una “etiqueta” con el nombre de la épica como puede verse con la historia “unificar librería” y las tareas 5 y 10. En esta vista también podemos asignar versiones a las historias o tareas como puede verse en la tarea “111” que está asignada a la versión 3.4.8.

Se puede observar también tres tipos de items (ver números en la figura)

  1. Historia de usuario.
  2. Tarea
  3. Incidencia

En Jira, se pueden asignar puntos de historia a las Historias de Usuario y a las Tareas.

TIP: Para una mejor organización y visualización de las historias es aconsejable asignar diferentes colores a las épicas

Edición de una épica

Para editar la épica, haga click en el color de la misma, como muestra la siguiente figura. Puede cambiar el nombre (El que se muestra en la columna de épicas), ver la tarea en Jira para documentarla o ver estado de la misma o cerrarla con la opción “Marcar como Listo”

cambiar de nombre a una épica

Opciones de épica

Las épicas deben ser cerradas tan pronto sean implementadas las historias de usuarios o tareas asociadas. Es aconsejable disminuir el número de épicas abiertas y procurar cerrar las que llevan mucho tiempo.

TIP:  Hay que hacer revisión del estado de las épicas y cerrarlas cuando estén completadas.

En mi caso, si  el equipo de desarrollo además lleva incidencias, problemas y evolutivos  he optado por tener dos épicas activas. Aunque no son épicas en si misma, nos ayudan a filtrar de una manera más rápida las tareas en la pizarra de Scrum que si usáramos

  • Mejora Continua: Para tareas, historias o épicas técnicas (no solicitadas por el product owner) que pueden mejorar el producto en si mismo
  • O&M (Operación & Mantenimiento): Para tareas que pueden estar asociadas a problemas, peticiones de servicio y demás.

Cómo clasificar un Item como Épica, Historia y Tarea

Este punto puede ser controversial, yo voy a dar mi opinión de como clasificarlas y en que situaciones. El criterio final dependerá del Scrum Master, el equipo y la forma como se gestione el ciclo de vida producto.

Épica

  • Petición de negocio de alta complejidad que no puede desarrollarse en un sprint del equipo y debe ser descompuesta en historias. (Ejm, un módulo para gestión de usuarios)
  • Petición de servicio de alta complejidad que no puede encajarse en un sprint del equipo y debe ser descompuesta en historias. (Ejm, Instalar, configurar y desplegar un nuevo site con nuestro producto)
  • Necesidad de IT compleja que no puede ser resuelta en un sprint (Ejm. Módulo de monitorización de servicios del producto, Refactorización por cambio de arquitectura).

Historias.

  • Una petición del PO y añade valor al producto.
  • Una necesidad de IT que ha sido “negociada” con el PO y añade valor al producto desde el punto de vista de IT. (Ejm, optimización).
  • Una petición de servicio estandar de mediana complejidad que tiene que ser descompuesta en tareas para su gestión.

Tareas

  • Si es una petición de negocio, que no añade valor al producto y que debe hacer alguien del equipo, pero se debe hacer para otro propósito (Ejm, sacar un informe, analizar comportamientos)
  • Si es una tarea pura de IT que involucra a miembros del equipo y que no añade valor al producto de manera directa. (Ejm. Generar, probar y desplegar una release, generar documentación)
  • Si es una petición de negocio de un tamaño tan pequeño que no puede descomponerse en subtareas o no merece la pena. (Ejm, Cambiar un enlace de un menú).
  • Si es una petición de servicio estandar de corta duración que atiende el equipo. (Ejm, Cambiar la maquetación de unos mails)

Como regla general,  principalmente en las “Historias de Usuario” cuidamos el formato de escritura usando la estructura “Como <cliente> quiero/necesito <algo> para <lograr algo>”, con su respectiva descripción y criterios de aceptación.

Conclusión.

Jira da soporte a la gestión de Épicas, Historias y Tareas en el backlog y en los sprint backlog, de su uso adecuado depende en gran medida la eficacia en la gestión y la organización del equipo.  En un post futuro hablaré sobre la gestión del sprint backlog en Jira.

Scrum con Jira – Primeros pasos

Actualizado, 19/11/2017

Scrum es un framework muy usado actualmente por equipos de desarrollo de software que cae dentro de las prácticas Agiles. Scrum introduce varios conceptos que ayudan a organizar la forma de trabajo, roles, artefactos, eventos y reglas.

Scrum define los lineamientos para trabajar pero no define el cómo implantarlo y es en este punto donde comienzan a surgir dudas a la hora de organizar la información. ¿Cómo hacemos  y gestionamos el backlog?, ¿Cómo gestionamos los sprint con nuestra herramienta de gestión de proyectos?, usamos un excel, etc.
En este post y en otros posteriores os voy a compartir mi experiencia de uso de Jira para gestionar proyectos con Scrum, entre ellos, cómo configurar el proyecto, cómo trabajar con los sprint, cómo crear las épicas, etc. Para ello vamos asumir que nuestro proyecto ya tiene un backlog construido y que tenemos proyectados algunos sprint y vamos a iniciar el desarrollo del mismo.

Jira

Jira es una de las herramlogoientas de gestión de proyectos ágiles más usadas por equipos de desarrollo que ofrece todo el soporte para gestionar, planificar, liberar, hacer seguimiento y hacer reporting y ofrece el soporte Agile bajo dos esquemas Scrum y Kanban con su funcionalidad de “Pizarra” o Board , en el caso que nos ocupa trabajaremos con Scrum.

Objetivo del post

El  objetivo  es cubrir la siguiente necesidad.

Tengo un backlog, he hecho la sprint sprint planning y quiero arrancar mi primer sprint”

Los pasos que vamos a tratar en este post son son los siguientes.

  1. Crear una pizarra Scrum
  2. Crear las historias de usuario
  3. Crear el primer sprint.
  4. Asignar las historias de usuario al Sprint.
  5. Activar el sprint

Se asume que usted ya tiene un proyecto creado en Jira

Crear la pizarra Scrum

Para crear la pizarra simplemente vaya al proyecto que quiere gestionar con Scrum y busque la opción “Pizarra” como se muestra en la figura.

Menú Pizarra en Jira

Opción de menú “pizarra” en Jira

Haga clic en la opción “Pizarra”, Aparecerá un menú desplegable, seleccione la opción “Crear Pizarra” y nos mostrará un dialogo donde podemos elegir el tipo de pizarra que queremos. y seleccionaremos la opción “Crear una pizarra de Scrum”.

Crear pizarra Scrum en Jira

Crear pizarra Scrum en Jira

La pizarra puede ser creada de un proyecto existente o de un filtro existente de tareas. Para nuestro caso, seleccionaremos la opción “Pizarra de un proyecto existente”.

Selección de proyecto o filtro

Selección de proyecto o filtro

Posteriormente, seleccione el proyecto y escriba el nombre de la pizarra.

nombre de pizarra y proyecto

Escriba el nombre de la pizarra y seleccione el proyecto

Esto nos crea una vista de pizarra Scrum donde podemos ver en la barra lateral unos íconos de arriba a abajo desde donde apunta la flecha roja que son el backlog, la vista de sprint backlog, los informes, los componentes y las incidencias. Principalmente interactuaremos con los dos primeros.

El Backlog

Menú lateral Jira

Menú lateral Jira

La vista de backlog (Trabajo pendiente)  nos permite ver las historias de usuario del sprint activo, sprints siguientes e interactuar con las tareas del backlog. Esta vista nos permite rápidamente gestionar  la creación y edición de historias de usuario, la asignación de puntos de historia, etc.

TIP!!!:Una cosa importante de cara a gestionar las tareas con Scrum en Jira es que las tareas deben ser creadas del tipo historia de usuario y deben tener previamente asignados los puntos de historia, una vez incorporados a un sprint y activado este ya no es posible cambiar el valor de los puntos de historia.

En la vista de backlog además podemos crear los sprint, organizar las tareas del backlog y asignarlas al sprint (arrastrando las tareas) lo que hace muy sencillo priorizar las historias y armar un sprint backlog. La siguiente imagen nos muestra la vista de trabajo pendiente o backlog.

Una historia puede crearse dentro de un sprint no activo o en el backlog (Create Issue), o crearse en el backlog  para luego arrastrarla y soltarla en un sprint.

TIP: Puedes tener tantos sprint como quieras, aunque no es recomendable tener más de dos y uno de ellos activo.

Una vez tenga el sprint completo, puede activar o iniciar el sprint “Iniciar Sprint” donde podrás fijar la fecha de inicio y fin del mismo. También puede cambiar el nombre del sprint haciendo click sobre el nombre del mismo.

Backlog

Trabajos Pendientes – Backlog

En la parte superior aparecen los filtros rápidos, los cuales pueden ser configurados dentro de la configuración de la pizarra que veremos en post posteriores.

Si tenemos los Sprint activos, hacemos click en el ícono boton-sprint-pizarra-scrum-jira, esta vista nos facilita ver y gestionar las historias de usuario y las tareas técnicas asociadas a las historias de usuario.

El Sprint Activo

La siguiente figura muestra la vista de un sprint activo, en ella podemos observar las columnas que representan los estados en los que se encuentran las tareas de cada historia de usuario. Para cambiar de estado simplemente se arrastran de una columna a otra.

Sprint Activo

Sprint Activo

Esta vista “sustituye” a nivel software lo que sería la pizarra scrum donde están las historias de usuario y las tareas en los estados en los que se encuentran. Es de gran utilidad aunque he de reconocer que no es fácil acostumbrarse visualmente a ella, la vista que se muestra en la figura agrupando las tareas por historia es la que al final me ha parecido más cómoda.

Espero que este post le sirva para dar el primer para crear la pizarra, crear las tareas del backlog, los sprint, asignar las historias de usuario a los sprint y a activar el sprint. En un siguiente post vamos a ver como crear las tareas técnicas y las épicas.