Las historias de usuario son porciones del comportamiento deseado de un sistema de software. Son muy utilizadas dentro del marco de desarrollo Ágil, y sirven para dividir una gran cantidad de funcionalidad en partes más pequeñas para facilitar la planificación. Este concepto también se lo puede llamar "característica", pero el término "historia" o "historia de usuario" se volvió muy popular dentro del marco Ágil.

Kent Beck fue quien introdujo este término como parte de Extreme Programming para fomentar una manera informal y conversacional para la toma de requerimientos (en lugar de especificaciones largas escritas). La esencia de una historia puede escribirse en una única tarjeta (Kent y Martin Fowler las prefieren de un tamaño de 3x5 pulgadas). De forma deliberada las historias no son detalladas hasta que están lista para ser desarrolladas; sólo se necesita el detalle necesario para permitir la priorización con otras historias.

Bil Wake inventó el acrónimo INVEST para describir las características de una buena historia:

  • Independiente: las historias pueden completarse en cualquier orden.
  • Negociable: los detalles de la historia son co-creados por los programadores y los clientes durante el desarrollo.
  • Valiosa: la funcionalidad es valiosa para los clientes o los usuarios del software.
  • Estimable: los pgoramadores pueden encontrar una estimación razonable para construir la historia.
  • Pequeña: las historias deberían construirse en poco tiempo, generalmente alrededor de "días/persona". Se tienen que poder construir muchas historias en una iteración.
  • Testeable: se debe poder escribir pruebas que verifiquen que el software de la historia funcione adecuadamente.

Una forma habitual de escribir las historias es "Como <rol>.... Quiero <característica>... Para <valor>". La parte del "Como..." se refiere a la persona que quiere la historia. La parte "Quiero..." describe la funcionalidad de la historia, y la parte "Para..." describe el motivo por el cual se pide esa funcionalidad.

Mike Cohn escribió el libro User Stories Applied: For Agile Software Development que contiene lo que hoy es un estándar para escribir historias de usuario.

Traducido de User Stories, por Martin Fowler.

 

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw