Mi equipo utilizará Visual Studio Team Services para un próximo proyecto. Las herramientas ágiles me permiten organizar las historias y tareas de los usuarios jerárquicamente de esta manera:
Epic> Feature> User Story> Task / Bug
Digamos que estoy diseñando un sistema de gestión de organización de estudiantes (club) para estudiantes de secundaria y asesores. Los estudiantes y asesores pueden unirse a clubes, ser oficiales, organizar eventos, enviar anuncios, etc.
Tomemos la función de Anuncios como ejemplo:
Historias del usuario:
- Como estudiante, quiero leer los anuncios de los clubes de los que formo parte para estar al tanto de los cambios de horario.
- Como asesor, quiero leer los anuncios de los clubes de los que formo parte para conocer los cambios de horario.
- Como asesor, quiero enviar anuncios de los clubes de los que formo parte para que mis alumnos estén al tanto de los cambios de horario.
- Como administrador, quiero enviar anuncios a TODOS los clubes escolares para que pueda estar al tanto de los conflictos de programación.
- etc.
Si asumimos que estas son Historias de usuarios bien escritas (que podrían no serlo), me confundo cuando mi equipo de desarrollo y yo nos sentamos para dividir estos elementos en Tareas de desarrollo. Podemos cubrir partes de varias historias de usuario con tareas de desarrollo únicas. Por ejemplo, tenemos una herramienta que genera acciones CRUD para todas las capas desde la interfaz de usuario hasta la base de datos simplemente definiendo las propiedades de un anuncio. Por lo tanto, las partes de varias historias de usuario "enviar" y "leer" se completan en un solo paso de desarrollo.
Por lo que he leído, cada historia de usuario debe ser independiente de las demás y eso tiene sentido. Pero cada una de nuestras historias de usuario comparte la tarea "Generar interfaz de usuario y base de datos" porque así es como creamos nuestra interfaz de usuario de nivel base (antes de personalizarla). No debería escribir una tarea "Generar UI y DB" para cada historia de usuario. Eso es demasiada redundancia. Pero no sé cómo escribir una tarea "Generar interfaz de usuario y base de datos" que debe completarse antes de que cualquiera de las Historias de usuario pueda iniciarse.
Tengo una confusión similar con nuestro sistema de permisos. Tenemos diferentes tipos de cuenta como Estudiante, Asesor y Administrador que tienen acceso a la página de Anuncios, pero tienen una funcionalidad diferente dentro de la página (capturé esta idea con las Historias de usuarios anteriores). Podemos escribir el sistema de permisos para que sea modular, de modo que pueda usarse para otras características, pero no sé dónde escribir la tarea para crear un "sistema de permisos modular".
Supongo que toda esta historia de usuario me ha confundido. Sí, es excelente para capturar la funcionalidad de un sistema, pero cuando se trata de pensar en las tareas de desarrollo, parece que no puedo entenderlo. Cualquier consejo sería genial.
TL; DR: Parte de la programación que hago para una historia de usuario se puede usar en otro lugar de nuestro proyecto para otras historias de usuario (sistema de permisos, etc.). ¿Cómo escribo / organizo Tareas para Historias de usuarios para ilustrar esta posibilidad?