¿Qué son las historias de usuario? (I)
En nuestro proyecto estamos usando metodología ágil para su desarrollo. Una de las piezas claves en la metodología ágil es definir las funciones que deberá tener la aplicación a través de las historias de usuario. Vamos a explicar en este post algunos aspectos sobre este tema.
Diferencia entre historias de usuario y casos de uso
En el blog de David Bonilla encontramos una buena comparación entre casos de uso y historias de usuario que podeis ver en la imagen que acompaña el post.
Las historias de usuario se escriben generalmente en una tarjeta, con una determinada estructura y son un acuerdo flexible entre el dueño del producto, y el equipo de desarrollo.
¿Cómo debe ser una buena historia de usuario?
Como explica en el siguiente documento: Effective User Stories for Agile Requirement, una buena historia de usuario debe de cumplir la regla INVEST (invertir):
Independiente: Las dependencias llevan a problemas de estimación y priorización. La independencia hace que se pueda idealmente repartir mejor el trabajo.
Negociable: Las historias no son contratos. Son flexibles.
Valorable: El valor lo ponen los usuarios o compradores del software, nunca los desarrolladores.
Estimable: Se debería poder estimar bien el tiempo de producción.
Size appropriately (de tamaño apropiado): No pueden ser complejas, ni largas, ni pueden ser a su vez una composición de historias de usuario.
Testeable: Las historias se deben poder probar.
Ejemplo de una historia de usuario
Un ejemplo de tarjeta con una historia de usuario que actualmente estamos desarrollando es la siguiente:
ID:20
Visualiza Lecciones
COMO usuario QUIERO ver la lista de lecciones desbloqueadas por el tratamiento, con el nombre de la lección, ordenadas por la fecha en la que ido apareciendo, y si esa lección es nueva que aparezca destacada PARA poder acceder a ellas.
ESTIMACIÓN: 5
PRIORIDAD: 100
MÓDULO: Lecciones
En nuestra aplicación habrá definido una seria de lecciones sobre el manejo del dolor infantil, y hay una historia de usuario para definir la funcionalidad de listarlas. En la parte de detrás de la tarjeta aparece la descomposición en tareas necesarias para realizar dicho listado:
Definir la lista de lecciones en un fichero JSO.
Desarrollar un modelo para las lecciones.
Desarrollar un proxy para leer las lecciones del fichero JSON.
Desarrollar la vista que cargue la lista de lecciones.
Desarrollar un controlador que maneje las acciones de la vista: seleccionar elemento y cargar datos.
Links de interés
En el siguiente post veremos los puntos importantes para definir historias de usuario, y algunas herramientas para trabajar con ellas en función de la metodología ágil que escojamos. Os dejo un par de links interesantes que hablan sobre el tema:
An introduction to User Stories
Scrum y XP desde las trincheras. Cómo hacemos Scrum
ALGOS. Recerca en Dolor
Universitat Rovira i Virgili, Tarragona