Tengo una historia de usuario que contiene un montón de tareas, similar a esta:
Historia de usuario: repare cualquier JavaScript roto en CMS
Así que tengo un montón de tareas para revisar algunos códigos y archivos y arreglar algunos JavaScript. Digamos que no puedo completar todas las tareas anteriores en un sprint de 2 semanas.
¿Cómo divido esto en varias historias? Las tareas se pueden completar en cualquier orden y no dependen unas de otras en absoluto. Por lo tanto, no hay una forma lógica de subagruparlos. ¿Simplemente haría:
Historia de usuario: Corrija cualquier JavaScript roto en CMS (parte 1)
y
Historia de usuario: Corrija cualquier JavaScript roto en CMS (parte 2)
Eso parece una mala manera de manejar esto. ¿Cuál es un mejor enfoque para este tipo de problema en el que las tareas no se pueden agrupar mejor pero aún necesita dividir la historia?
Está luchando por descomponer su trabajo porque sus historias no siguen la regla nemotécnica INVEST . En particular, las tareas que ha enumerado no se pueden probar. ¿Cómo podría saber si completó con éxito "[f]encuentra y corrige JavaScript roto en archivos de catálogo" o estima la cantidad de trabajo involucrada?
Al igual que el desarrollo basado en pruebas en general, las mejores historias de usuario deben describir el comportamiento . Por ejemplo:
Como usuario,
espero que el JavaScript en la página del catálogo me respalde
para que me moleste y sea menos productivo.
Ahora está claro en qué necesita trabajar el desarrollador y (lo que es más importante) cómo validar ese trabajo. Ha descrito el comportamiento comprobable en lugar de agitar a mano el alcance, el comportamiento esperado y los criterios de éxito comprobables.
Las historias deben ser granulares, pero no ridículamente. Si tiene muchas correcciones relacionadas, puede agruparlas . Por ejemplo:
Como desarrollador web,
quiero corregir la lógica de rickroll.js en las 27 vistas
para poder irritar a todos los clientes independientemente de la página de entrada.
Nuevamente, esto define un comportamiento comprobable, tiene un alcance claro y medible y proporciona suficiente contexto para permitir que el equipo calcule el trabajo involucrado. Si debe tener historias individuales o agruparlas, variará según la capacidad del equipo y el tamaño de la historia, ¡pero al menos ahora tiene opciones!
En lugar de 'cualquiera', usaría un número exacto, o lo mejor sería hacer una investigación en el sprint 1, crear problemas para cada problema que haya encontrado y resolver los problemas específicos en los próximos sprints.
Mi problema con la configuración actual es que no es específica en absoluto. Probablemente significarán cosas diferentes para dos personas diferentes en su organización.
Personalmente, mi enfoque sería hacer frente a la deuda técnica en función de la funcionalidad de la aplicación.
Por ejemplo, corrija JavaScript roto (todas las categorías) en las páginas de registro. Luego pruébelo (incluidas las pruebas de regresión) y luego pase a la siguiente área funcional.
Probablemente encontrará que las primeras áreas funcionales involucran la mayor parte del trabajo y luego, a medida que avanza en gran parte del JavaScript subyacente, habrá sido corregido por historias anteriores.
Todd A. Jacobs
GH
usuario253751
jake wilson