¿Cómo trato los aspectos de la aplicación con respecto a las características y las historias de usuario?

8

Al elaborar una cartera de pedidos, tengo varios requisitos que se aplican a una gran cantidad de historias de usuarios, es decir, aspectos de la aplicación como el manejo de errores y comentarios. ¿Cómo incluyo estos (sin usar una directiva #include en cada historia de usuario)? ¿Debería tratar la presentación de errores como una característica, luego tener historias de usuario para esta característica como "el sistema detecta una excepción y muestra información al usuario"?

ProfK
fuente
¿Se aplican a TODAS las historias de usuarios o solo a unas pocas seleccionadas (pero aún muchas)? Y "el sistema detecta una excepción y muestra información al usuario" es demasiado específico para ser parte de la historia del usuario.
Eufórico
@Euphoric Se aplicarían a la gran mayoría de las historias; todas las historias que involucran a la interfaz de usuario y el almacén de datos, por ejemplo
ProfK

Respuestas:

3

Tratar los comentarios de los usuarios es fundamental para la experiencia del usuario, pero también se aplica a diferentes partes de la aplicación de diferentes maneras.

Tome los siguientes dos ejemplos:

Una historia podría centrarse en una interacción directa del usuario en la que se produce un error fatal. Se utiliza un cuadro de diálogo modal para informar al usuario del error y notificar que la recuperación es imposible. La historia para esto sería: "Como usuario, quiero que me informen acerca de una entrada no válida de algún formulario de datos para poder regresar y corregir este error de inmediato" . Esta historia de usuario implica que se trata de un error de bloqueo fatal que el usuario debe corregir de inmediato.

En una segunda historia, el usuario olvida ingresar datos obligatorios en un formulario. La historia sería: "Como usuario, quiero resaltar los campos faltantes en una entrada para que sepa cuáles son los campos obligatorios".

Esta notificación sutil es muy diferente y no se puede combinar con la primera historia en una historia general de manejo de errores. Sin embargo, ambos pueden surgir de excepciones internas.

Recuerde que es importante transmitir el "qué" de una historia, por ejemplo, el escenario de error que debe abordarse en una situación específica. El cómo del error (es decir, se está lanzando una excepción en algún lugar) es casi irrelevante para el propietario del producto, ya que no tiene valor comercial. Desde un punto de vista técnico, tener una arquitectura de sonido es algo que esperaría de mi producto de cualquier manera.

Al final, obtendrá flexibilidad y extensibilidad al enfocarse en el valor comercial y contar con historias de usuarios bien separadas y pequeñas .

malta
fuente
2

Creo que la solución es una buena separación de preocupaciones. Cosas como el manejo de errores, el registro, la retroalimentación y demás deben manejarse globalmente con una sola pieza de código. Solo los requisitos, que son diferentes de este comportamiento global, deben anotarse como parte de las historias de los usuarios o en la discusión sobre la implementación de dicha historia de usuario.

Entonces, desde el lado de la gestión de proyectos, debería haber una historia de usuario que diga "Como usuario, quiero ver el error de tal manera, que me permita informarlo al administrador". o algo así. Y esta historia de usuario debería aplicarse como una regla global a todos los casos de uso.

Eufórico
fuente
Me gusta esto, incluso si no se resuelve en solo uno, tal vez podría usarlo. "como usuario, me gustaría ver estos errores como este", "me gustaría recibir un correo electrónico sobre esos errores", etc. Pero estoy usando una herramienta que requiere que los EE. UU. estén bajo una función. ¿Entonces tendría una hazaña por las pocas historias de usuarios de error?
ProfK
1

Una idea (tomada de SCRUM): las cosas que deben verificarse para cada historia de usuario se incluyen en la llamada "definición de hecho" .

Por lo general, la "definición de hecho" incluye cosas técnicas, como:

  • todas las pruebas son verdes
  • el código está razonablemente limpio
  • el código no causa regresiones

Pero también puede incluir cosas visibles para el usuario:

  • ninguna operación del usuario lleva más de un segundo, o
  • Todos los controles GUI se pueden usar solo con el teclado

El equipo debe verificar la "definición de hecho" para cada historia de usuario antes de declararlo hecho.

Una opción sería incluir el manejo apropiado de errores en esta "definición de hecho". Sin embargo, como señalan las otras respuestas, los ejemplos que cita (manejo de errores y comentarios) probablemente no sean realmente buenos ejemplos de requisitos que se aplican "en todas partes":

El manejo y la retroalimentación de errores adecuados generalmente dependen del contexto, por lo que debe definirse por separado para los lugares donde se necesita. Entonces, en este caso, puede ser mejor formular el manejo de errores como historias de usuario separadas, como se explica en la respuesta de malte.

sleske
fuente