¿Cómo manejas las historias dependientes en scrum?

9

En la compañía en la que trabajo actualmente, hemos notado que a veces, algunas historias están unidas entre sí (como si estuvieran demasiado acopladas). Esto puede deberse a que pertenecen a la misma característica general, o que son características diferentes, pero hay algunas de ellas que deben terminarse primero para continuar con las siguientes, etc.

¿Cómo maneja estos casos, sin detener el flujo de trabajo de la iteración? ¿Estamos haciendo algo mal?

Edgar Gonzalez
fuente

Respuestas:

7

Esta es una gran pregunta. La teoría dice que las historias de los usuarios deberían ser independientes, pero nunca pude lograrlo por completo.

En mi opinión, lo más importante es comunicar la dependencia para que tanto el equipo como el propietario del producto lo sepan. Esto obligará al propietario del producto a redefinir las historias de los usuarios para que se elimine la dependencia (por ejemplo, fusionando las historias de los usuarios) o para definir la prioridad comercial en consecuencia para que la historia del usuario principal se implemente primero.

Según la prioridad y la decisión de la orden de compra, implementará ambos en el mismo sprint o el dependiente se implementará más tarde sin ningún problema porque el director ya estará listo.

El peor de los casos es si A depende de B y B depende de A. En tal caso, las historias de los usuarios están probablemente definidas incorrectamente y probablemente deberían reescribirse en A y B (en su mayoría independientes o con dependencia de una sola vía) y C depende de A y B.

Ladislav Mrnka
fuente
2

Planee en consecuencia.

Póngalos en el mismo sprint, y dado que las historias de usuarios también se priorizan en un backlog de sprint, no tendrá ningún problema.

Dado que su equipo participa en esto, son conscientes de las dependencias, por lo que no hay nada que deba temer. Son adultos y si les explicas sobre las dependencias (generalmente te lo explicarán), las cosas saldrán bien.

En Agile, como en Waterfall, solo puedes hacer una cosa a la vez. Y usualmente haces A antes que B si B necesita A. Eso es sentido común.


fuente
1

Las dependencias pueden ser un olor que está cortando sus historias horizontalmente en lugar de verticalmente a través del sistema. El desarrollo de una característica particular debe incluir todo, desde modificar el diseño de la base de datos hasta la interfaz de usuario. Si descubre que está gastando todo su esfuerzo en una historia de usuario en algún nivel inferior de la estructura del sistema, como, por ejemplo, escribir rutinas de controlador para búsquedas de bases de datos, entonces es más probable que cree dependencias entre historias. Y, probablemente estés escribiendo mal tus historias de usuario.

Dave
fuente
1
Entonces, ¿cómo manejaría dividir historias en una tienda en línea? Los usuarios deberían poder ver una lista de productos. Deben poder buscar, filtrar y clasificar los productos. En mi opinión, cada una de estas acciones es lo suficientemente grande como para justificar su propia historia. Pero puede implementar el tipo de producto antes de tener la Lista de productos en su lugar ....
NSjonas
0

Su mejor opción es dividir sus historias de usuario dependientes en bits más pequeños que pueden volverse lo más independientes posible. Deben abordar las historias de las que más se depende primero (como usted dijo: las que deben terminarse primero para continuar con las otras). Cree algo así como un índice de dependencia: si la historia 3 tiene más dependientes que la historia 1, primero debe considerar la historia3.

Si sus dependencias están causando demasiadas paradas, puede ser una buena idea dejar de trabajar por completo (sí, justo en el medio de su sprint actual) y volver a evaluar sus historias de usuario prioritarias y abordarlas primero

DPD
fuente