Estrategias para descomponer y hacer pequeñas historias de usuario

Un clásico, cuando alguien empieza a usar Historias de Usuario, sobre todo si viene de usar grandes requisitos, o si ni siquiera usaba requisitos, enfrentarse a que la Historia de Usuario debe ser lo más pequeña posible y aportar valor al usuario. Llegado ese momento a mucha gente le cuesta dividir, piensa que es imposible, que «es que nuestro caso es especial, somos diferentes».
Si estás en una de esas, por si te vale y ayuda, te voy a dejar algunos patrones, estrategias, para dividir al máximo Historias de Usuario. Entiendo que ya sabes lo que es una Historia de Usuario, su verdadera esencia, y por eso ahí no voy a entrar, sino es así hay muchos post en el blog, de entre los cuales te recomiendo este: Evolución de formato (e idea), del  viejo “requisito” hasta la actual hipótesis
Las siguientes las obtuve en su día, cuando hace un tiempo andaba buscando estrategias de descomposición por la Web. Al final del post de dejo las referencias que me parecen más interesantes y de las que saqué mucho de lo que te cuento a continuación…

Estrategia 1: Descomposición por flujo de trabajo

Si las historias de usuario conllevan un flujo de trabajo una estrategia es detectar los pasos individuales y que cada paso (que aporte valor al usuario) sea una historia. Por ejemplo, lo siguiente, que perfectamente puede ser una «epic»:

Como X (el rol que sea) quiero comprar M (lo que sea), con el objetivo de Y (lo que sea)

Dado lo anterior, podríamos identificar los siguientes pasos:

Como X quiero logearme, con el objetivo de que el sistema recuerde mis datos y compras previas

Como X quiero ver la lista de productos en oferta, con el objetivo de…

Como X quiero seleccionar X, con el objetivo de…

Súper importante, en todo, pero especialmente en esta primera estrategia usar Mapas de Historias de Usuario (Nunca empieces un desarrollo ágil sin hacer antes un mapa de historias de usuario (o similar)).

Estrategia 2: Descomponer por reglas de negocio

Una historia de usuario muy grande, mejor dicho, una epic, normalmente, puede conllevar una serie de reglas de negocio. Así, la anterior podría descomponerse en:

Como responsable del servicio quiero rechazar pedidos por debajo de 10 euros, porque no son rentables

Como responsable del servicio quiero rechazar pedidos desde fuera de España, porque los gastos de envío hacen que no sean rentables

Estrategia 3: Descomponer por medio del flujo feliz / infeliz

Esto que suena así un poco raro, habla de hacer historias de usuario con funcionalidad cuando todo va bien e historias de usuario cuando las cosas van mal. Si pensamos en flujos felices e infelices podría salir:

Como X quiero iniciar sesión, para… (feliz)

Como X, quiero restablecer mi contraseña, para… (infeliz)

Hasta cierto punto esta estrategia (bueno, y todas) es complementaria, conviene recordar, complementar, etc., a la especificación con ejemplos, te dejo aquí por si quieres ampliar el Regalo de Navidad: Gherkin… Una guía de supervivencia ágil (sí, gratis) y Entendiendo qué es BDD (Behavior-Driven Development) (I)

Estrategia 4: Desglose por plataformas

En este caso hablamos de descomposición por plataformas, como tablets, teléfonos móviles, web, etc. Por ejemplo…
Como miembro del equipo quiero ver la Junta de Scrum, así que sé cómo estamos haciendo en equipo
Podemos identificar las siguientes plataformas:

Como X quiero ver Y vía Web, para…
Como X quiero ver Y en un App, para…

Estrategia 5: Desglose por parámetros de entrada

En este caso la división se basa en tipos de datos o en parámetros que se supone que deben manejar. Tomemos, por ejemplo, una función de búsqueda para una tienda en línea:

Como X quiero buscar productos, para…

Pensando en parámetros de entrada…

Como X quiero buscar un producto por su referencia, para…
Como X quiero buscar productos por precios, para…

También aquí puedes usar como referencia «métodos para optimizar el uso e la funcionalidad», «buscar por voz», «buscar por teclado», etc.

Estrategia 6: Desglose por operaciones

Las historias de usuario suelen implicar las típicas Alta – Baja – Modificación y Consulta (el CRUD). Y esto también sirve como estrategia de divicsión…

Como X quiero dar de alta productos por su referencia, para…
Como X quiero eliminar productos, para…

Estrategia 7: Desglose por escenarios de prueba

Esta estrategia es útil cuando es difícil desglosar grandes historias de usuarios basadas únicamente en funcionalidad. En ese caso, ayuda a preguntar cómo se va a probar una pieza de funcionalidad. ¿Qué escenarios hay que comprobar para saber si funciona? Lleve un sistema de planificación de tareas:

Como X quiero comprar productos, para que…

Si consideramos esta funcionalidad en función de posibles escenarios, podemos dividir el elemento en:
Como X quiero que si un producto ya está comprado no se pueda volver a vender, para…
Como X quiero que si un producto no está en almacén no se pueda vender, para…
De nuevo, resalto en esta estrategia leer y usar la especificación con ejemplos, te dejo aquí por si quieres ampliar el Regalo de Navidad: Gherkin… Una guía de supervivencia ágil (sí, gratis) y Entendiendo qué es BDD (Behavior-Driven Development) (I)

Estrategia 8: Desglose por roles

Aquí la idea es recordar que muchas veces «usuario» es demasiado genérico, y que ayudará mucho especificar, si existen, tipos de usuarios. Algo importante que te puede ayudar aquí y que te deberías leer es la técnica Personas para mejorar historias de usuario. Así que en esa «Como X quiero…» detalla qué diferentes X puede haber.

Terminando y para seguir…

Te dejo alguna referencia interesante por si quieres ampliar

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

Latest posts by jgarzas (see all)

1 comentario en “Estrategias para descomponer y hacer pequeñas historias de usuario”

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *