Go Home - Autentia

Blog

SPIDR – Una técnica para dividir tus historias de usuario

​Introducción

Según Bil Wake (inventor del acrónimo INVEST) un requisito para que una Historia de Usuario sea correcta, es que teniendo en cuenta la velocidad del equipo que la desarrolla, esta pueda ser realizada en una iteración de trabajo (o un Sprint si hablamos de Scrum).

Bajo esta premisa y después de terminar el curso ‘Mejores Historias de Usuario’ (dictado por Mike Cohn, Cofundador de la Scrum Alliance y escritor del libro User Stories Applied: For Agile Software Development), me quedé con las ganas de compartir un método muy ingenioso que nos permite enfocar la división que podemos hacer de nuestras historias de usuario para que podamos abordarlas en una iteración.

Dicho método, conocido como SPIDR, describe cinco técnicas que se definen por el propio acrónimo. Basadas en una estrategia iterativa e incremental.

A continuación, les describo brevemente cada una las técnicas:

SPIDR

1. Spikes  (Pruebas de Concepto)

Los Spikes son un término comúnmente usado en el desarrollo de software y hacen referencia a pequeñas pruebas de concepto o prototipos que nos permiten  evaluar la viabilidad de una historia usuario.

Está técnica promueve que realicemos pruebas de concepto para desarrollar el conocimiento necesario para entender mejor el alcance de una solución y así reducir la incertidumbre respecto a una historia de usuario. Dadas las conclusiones obtenidas tras la realización de un spike, se podrán tomar las decisiones adecuadas para refinar o definir el alcance de una historia con bases más sólidas.

2. Path (Ruta)

Es habitual que al momento de enfocar una Historia de Usuario nos topemos con varias alternativas o caminos que debamos tener en cuenta como posibles soluciones para alcanzar nuestros objetivos. Estos caminos pueden agregar complejidad a nuestras historias y las hacen más grandes que si tuviésemos una solución única.

Bajo tal escenario, una posible alternativa para hacer nuestras historias más pequeñas es utilizar estos mismos caminos como estrategia para su división.

Un ejemplo que nos puede ayudar a entender esta técnica puede estar representado por una tienda en línea donde los usuarios pueden pagar sus compras con tarjeta de crédito o con Paypal. Una posible alternativa para esta división es utilizar estos medios de pago como coyuntura, en dos pasos más pequeños en los que se refleje cada uno de estos medios.

3. Interfaces

Pensando en interfaces como los distintos medios por los cuales un usuario puede interactuar con un sistema, es posible establecer una estrategia que nos permita dividir nuestras historias en términos de la diversidad que aporta cada una de estas interfaces.

Por ejemplo, podríamos plantearnos un conjunto de historias de usuario que definen una aplicación y las mismas, pueden variar según el dispositivo desde el que se pueda acceder a nuestra aplicación (Android , iOS o algún navegador Web).

Esta diversificación puede ser tan extensa como sea necesaria y podríamos llegar a ser tan específicos como simplicidad  nos aporte en la implementación. Por ejemplo, dividiendo el detalle según tipo de navegador web (Chrome, Firefox, Edge, etc).

4. Data (Datos)

Otra de las técnicas utilizadas para la división de Historias de Usuario en elementos más pequeños viene dada por la gestión de la complejidad según los datos que en estas se utilizan.

Con la gestión de la complejidad de los datos, lo que se plantea es que la división que hagamos nos facilite ir incorporando dicha complejidad de manera incremental.

En tal sentido, un ejemplo de este tipo de escenario puede ser un sitio web dedicado a la gestión de reservas de restaurantes. Con esta aplicación podríamos tener tantas historias como criterios para buscar un restaurante en nuestra base de datos.

5. Rules (Reglas)

Finalmente, existe una técnica para la división que utiliza ciertas condiciones empresariales como factor diferenciador. Esta técnica lo que propone es que aunque  existan ciertas condiciones especiales que deben cumplirse para satisfacer las necesidades del negocio, las mismas sean incorporadas paulatinamente como ampliaciones incrementales del alcance inicial.

Como ejemplo para este tipo de escenarios podríamos utilizar una aplicación para la venta de tiques, como un límite de compra en línea de un máximo de cinco entradas por dirección de correo electrónico.

Con esta historia, sería posible que el equipo de desarrollo no tuviese en cuenta  esta restricción, permitiendo que cada visitante compre tantas entradas como lo desee. Dicha restricción podría incorporarse en una segunda historia a ejecutar en otra iteración. La entrega incremental como esta significa que las historias iniciales no se implementan de inmediato por completo, sino que se entregan en varios pasos más pequeños. A veces, tiene sentido descuidar las especificaciones técnicas o las reglas comerciales, si al hacerlo puede lograr más rápidamente un resultado presentable que satisfaga al usuario o al cliente. Las historias omitidas se pueden recuperar en una fecha posterior.

Este tipo de división puede aplicar a reglas de negocio, estándares de la industria, regulaciones legales y cualquier tipo de restricciones complejas que podamos incorporar incrementalmente.

Conclusiones

Asumiendo que nuestras aplicaciones deberían evolucionar de manera incremental y en pequeños pasos abordables a corto plazo, les puedo asegurar que dicha división de un proyecto en historias de usuario abordables no siempre es fácil. Muchos principiantes tienden a dejar sus historias demasiado extensas y no es hasta que el equipo de desarrollo comienza a desarrollarlas que nos damos cuenta que debieron ser mucho más pequeñas.

Bajo este escenario, estas técnicas nos vienen muy bien como un guión que nos permita validar si es posible dividir una historia grande en algunas otras más pequeñas. Pero más allá de la técnica, creo que en el arte de escribir historias de usuario, es la práctica la que hace al maestro.

En Autentia proporcionamos soporte a la implantación corporativa de metodologías ágiles ayudando a la transformación digital de grandes organizaciones. Te invito a que te informes sobre los servicios profesionales de Autentia y el soporte que podemos proporcionar a tu empresa.

Referencias

¿Buscas formación en metodologías ágiles?

VER CURSOS
Por Jose Mangialomini 23 Jul 2018

¿Cómo podemos ayudarte?

HABLEMOS