|
Los cambios en la documentación de apoyo vendrán acompañados de un registro de las modificaciones. De este modo se podrá realizar un seguimiento y consultar su evolución.
|
Introducción
En este documento se analiza cómo trabajar con los requisitos del producto en un entorno ágil. Se describen las principales herramientas que se usan en la STIC para este fin: mejoras, historias de usuario y spikes, así como buenas y malas prácticas en la elaboración de las historias de usuario.
El Product Backlog (o Backlog del Producto) es una lista ordenada de todo lo que se sabe que se necesita en el producto (requisitos). Es la única fuente de requisitos para cualquier cambio que se realice en el producto. El Product Owner es responsable del Backlog del Producto, incluido su contenido, disponibilidad y priorización.
El refinamiento del Product Backlog es un proceso continuo en el que el Product Owner y los desarrollares agregan detalles y estimaciones de los elementos que vayan a ser implementados en el corto plazo (más info en Sprint Refinement).
Un correcto mantenimiento del Product Backlog implica:
Una Épica es una gran cantidad de trabajo que no puede entregarse en una sola iteración y que por tanto puede dividirse en elementos de menor tamaño (Historias de Usuario). En el marco de trabajo ágil de la STIC las épicas toman el nombre de "Mejoras", en alusión a la entidad que las representa en JIRA.*
La definición de una Épica (o Mejora) se compone de cuatro elementos:
Ejemplo de descripción de épicas:
Épica | Beneficio esperado | Criterio de Aceptación | Estimación |
---|---|---|---|
Añadir métricas de uso | Conocer las costumbres de nuestros usuarios para mejorar la aplicación en consecuencia. | Todas las mediciones relevantes de cada sesión se almacenan de forma persistente. | L |
... | ... | ... | ... |
*Nota: Una épica puede incluso ser un concepto de mayor nivel que la Mejora. Sería el ejemplo de una nueva funcionalidad de un aplicativo de varios módulos, cuyo impacto se extiende a todos los módulos de dicho aplicativo.
Las Historias de Usuario son descripciones de una pequeña pieza de funcionalidad deseada, escritas en el lenguaje del usuario que pueden ser implementadas (desarrolladas y testeadas) en un sólo Sprint.
Son el artefacto principal utilizado para definir el comportamiento del sistema en metodologías ágiles. Son descripciones sencillas, cortas, de una funcionalidad normalmente narradas desde el punto de vista del usuario y escritas en su lenguaje. Con cada Historia de Usuario se pretende facilitar la implementación de una pequeña rebanada vertical del comportamiento del sistema.
Confirmation (confirmación): La “confirmación” final entre los interesados en torno a los que giraba la conversación, finalmente, cuanto más formal mejor, de que se han alcanzado los objetivos.
El formato en el que se redactará seguirá el siguiente patrón:
Como <usuario: ¿Para quién vamos a construir esto?>
Lo más específico posible.
Los desarrolladores NO son un usuario.
Quiero <acción: ¿Qué vamos a construir?>
Voz activa, no pasiva.
El "sistema" o pre-requisitos de partida están implícitos y, por tanto, no se describen en detalle en la HU.
Para <valor de negocio: ¿Por qué vamos a construirlo?>
Las historias de usuario registradas en JIRA incluirán sus criterios de aceptación en la propia historia de usuario de JIRA. Estos son fundamentales para validar que la historia de usuario cumple con las necesidades de negocio, además de ayudar a los desarrolladores a entender el funcionamiento del producto y servir como guía durante la implementación de la funcionalidad.
Para el caso de historias funcionales, los criterios de aceptación se redactarán, además de en lenguaje natural si así lo hace el Product Owner, utilizando Gherkin, lenguaje que define la estructura y una sintaxis básica para la descripción de las pruebas.
Nº (de escenario) | Título (del CA) | Contexto | Evento | Resultado/Comportamiento |
---|---|---|---|---|
1 | Título | Dado... | Cuando... | Entonces... |
1) La HU es demasiado grande.
2) Falta de conocimiento del dominio; lo cual puede resolverse con una estrecha colaboración entre Product Owner y el equipo.
3) Falta de conocimiento técnico; lo cual puede resolverse mediante un Spike (ver más abajo).
Problema | Evidencia | Solución |
---|---|---|
HUs excesivamente pequeñas |
|
|
HUs excesivamente grandes |
|
|
Dependencias entre HUs |
|
|
Dificultad de priorización de HUs |
|
|
"Gold Platting" o Bañado en Oro |
|
|
Pretensiones de alcance muy definido y controlado |
|
|
Detalles de interfaz de usuario en los comicios |
|
|
HUs con todos los detalles ya cerrados e innegociables antes de refinamiento |
|
|
Los Spikes, provenientes del marco Extreme Programming (XP), son un tipo especial de historia de usuario que se utiliza para obtener el conocimiento necesario para reducir el riesgo de una solución técnica, comprender mejor un requisito o aumentar la confiabilidad de una estimación de la historia. Un Spike es una excelente manera de mitigar los riesgos de manera temprana y permite al equipo obtener feedback de un elemento del backlog que se avecina.