Portanto, um scrum sprint é um período de tempo fixo durante o qual um conjunto específico de recursos deve ser implementado. E uma equipe de scrum consiste em todas as pessoas comprometidas com o fornecimento desses recursos, a maioria delas geralmente como desenvolvedores e testadores.
Depois de estabelecer essas regras, pode-se perguntar como manter todas essas pessoas ocupadas durante todo o sprint. No início do sprint, ainda não há nada a ser testado e, no final do sprint, normalmente não resta nada ou muito pouco para desenvolver / corrigir.
Eu já vi duas abordagens para lidar com isso, mas nenhuma delas parece resolver adequadamente o problema.
1) Deixe os membros da equipe decidirem o que fazer sempre que ficarem sem tarefas.
Contras:
- Se o que eles fizerem não for totalmente planejado (ou seja, refatoração importante, mudança para uma nova estrutura de teste), o trabalho deles poderá ser inútil ou ficar parado no meio do caminho
- Por outro lado, planejar esse trabalho pode levar bastante tempo, e o cliente pode ficar desapontado ao ver a equipe perder tempo com algo que não traz valor imediato
- Essas tarefas geralmente não podem ser estimadas completamente, por isso é muito fácil para trabalhadores sem princípios passarem seu tempo assistindo a gatos do YouTube sem que isso se refletisse no quadro de scrum ou em qualquer outro lugar
2) Abra espaço no sprint apenas para desenvolvimento e inicie os testes após o término do sprint (quando os desenvolvedores começarem a trabalhar nos recursos do próximo sprint)
Contras:
- Ao desenvolver recursos para o sprint atual, os desenvolvedores se distraem corrigindo bugs do anterior e podem falhar na execução da quantidade de trabalho estimada para ser realizada durante o sprint atual
- São necessárias duas placas de scrum: uma para os recursos atuais do sprint e outra para os erros anteriores do sprint
Portanto, minha pergunta é: como distribuir adequadamente o trabalho durante o sprint entre desenvolvedores e testadores, para que ninguém fique sobrecarregado com o trabalho ou acabe sem tarefas a qualquer momento? Existem maneiras de melhorar as abordagens descritas acima? Ou existem abordagens melhores?