Como você lida com histórias dependentes no scrum?

9

Na empresa em que trabalho atualmente, percebemos que, às vezes, algumas histórias estão ligadas entre si (como também em conjunto). Pode ser que eles pertençam ao mesmo recurso geral ou que sejam recursos diferentes, mas há alguns que precisam ser finalizados primeiro para continuar com os próximos etc.

Como você lida com esses casos, sem interromper o fluxo de trabalho da iteração? Estamos fazendo algo errado?

Edgar Gonzalez
fonte

Respostas:

7

Esta é uma grande pergunta. A teoria diz que as histórias de usuários devem ser independentes, mas eu nunca fui capaz de alcançá-lo completamente.

Na minha opinião, o mais importante é comunicar a dependência para que a equipe e o proprietário do produto estejam cientes disso. Isso forçará o proprietário do produto a redefinir as histórias do usuário para que a dependência seja removida (por exemplo, mesclando as histórias do usuário) ou a definir a prioridade do negócio de acordo, para que a história principal do usuário seja implementada primeiro.

Com base na prioridade e na decisão do pedido, você implementará os dois no mesmo sprint ou o dependente será implementado posteriormente sem nenhum problema, porque o principal já estará pronto.

O pior caso é se A é dependente de B e B é dependente de A. Nesse caso, as histórias do usuário provavelmente são definidas incorretamente e provavelmente devem ser reescritas para A e B (principalmente independentes ou com dependência unidirecional) e C dependente de A e B.

Ladislav Mrnka
fonte
2

Planeje-os de acordo.

Coloque-os no mesmo sprint e, como as histórias de usuários também são priorizadas em um backlog do sprint, você não terá nenhum problema.

Como sua equipe participa disso, eles estão cientes das dependências; portanto, não há nada que você deva ter medo. Eles são adultos e se você os explicar sobre dependências (geralmente eles explicarão isso para você), as coisas correrão bem.

No Agile, como no Waterfall, você pode fazer apenas uma coisa de cada vez. E você costuma fazer A antes de B se B precisar de A. Isso é senso comum.


fonte
1

Dependências pode parecer que você está cortando suas histórias horizontalmente em vez de verticalmente através do sistema. O desenvolvimento de um recurso específico deve envolver tudo, desde a modificação do design do banco de dados até a interface do usuário. Se você acha que está gastando todo o seu esforço em uma história de usuário em algum nível inferior da estrutura do sistema, como, digamos, escrevendo rotinas de manipulador para pesquisas em bancos de dados, é mais provável que você crie dependências entre as histórias. E, provavelmente, você está escrevendo suas histórias de usuário incorretamente.

Dave
fonte
11
Então, como você lidaria com a divisão de histórias em uma loja online. Os usuários devem poder visualizar uma lista de produtos. Eles devem poder pesquisar, filtrar e classificar os produtos. Na minha opinião, cada uma dessas ações é grande o suficiente para justificar sua própria história. Mas você pode implementar o tipo de produto antes de ter a lista de produtos do lugar ....
NSjonas
0

Sua melhor aposta é dividir suas histórias de usuários independentes em pedaços menores, que podem se tornar o mais independentes possível. Você deve abordar primeiro as histórias das quais mais depende (como você disse: as que precisam terminar primeiro para continuar as outras). Crie algo como um índice de dependência: se a história 3 tiver mais impedimentos que a história 1, você deve abordar a história3 primeiro.

Se suas dependências estão causando muitas interrupções, pode ser uma boa ideia parar o trabalho completamente (sim, bem no meio do seu sprint atual) e reavaliar suas histórias de usuários prioritárias e resolvê-las primeiro

DPD
fonte