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"?
project-management
agile
scrum
ProfK
fuente
fuente
Respuestas:
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 .
fuente
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.
fuente
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:
Pero también puede incluir cosas visibles para el usuario:
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.
fuente