Muitas das novas equipes ágeis têm dificuldades em dividir suas user stories ('histórias de usuários') para obter um tamanho pequeno o suficiente de forma a trabalhar bem com técnicas de Agile. Em vários artigos, membros da comunidade Agile fornecem orientações sobre como dividir histórias de forma eficaz.
Há diretrizes gerais que podemos seguir na tentativa de dividir histórias muito longas em histórias menores? Rachel Davies recomenda quebrar cada história de modo a criar um produto que:
- Funciona
- Agrega valor
- Potencialmente gera feedback dos usuários
Richard Lawrence sugere as seguintes técnicas que considera úteis no processo de divisão de histórias longas:
- Dividir uma história de acordo com as etapas do fluxo de trabalho envolvido, talvez colocando um caso simples resumindo o fluxo como uma história, e criar histórias independentes para outras etapas do fluxo de trabalho;
- Dividir uma história de modo que cada variação das regras de negócio seja a sua própria história;
- Dividir uma história em "implementar o primeiro [X]" e "implementar o resto dos [X]s". Isto pode ser aplicado quando o esforço envolvido na execução do primeiro [X] será muito maior do que o de implementação de qualquer um dos [X]s subsequentes;
- Quando se deparar com uma história complexa, separar a versão mais simples da história como uma história independente;
- Dividir uma história baseando-se nos tipos de dados que manipula;
- Dividir uma história pela diferenciação entre um método simples de entrada de dados e um mais complexo;
- Mover as considerações sobre desempenho da história atual para uma ou mais novas histórias;
- Dividir uma história de acordo com criação, leitura, atualização e exclusão (CRUD), uma ou mais para cada uma dessas ações;
- Em última instância, criar uma história para descobrir como implementar uma funcionalidade do sistema.
Rachel Davies oferece outros detalhes sobre como dividir as histórias com relação aos dados de entrada e saída, indicando que se pode criar histórias para cada tela de entrada de informações, ou para cada elemento habilitado na interfa gráfica do sistema.
Além disso, Bob Hartman oferece as seguintes técnicas para divisão de histórias:
- Em uma história que envolve múltiplas personas, dividi-la por persona;
- Dividir uma história de forma que as partes de alto risco fiquem separadas das partes de baixo risco;
- Dividir histórias de forma a maximizar o número de desenvolvedores que podem trabalhar em cada história;
- Dividir histórias de forma a facilitar os testes;
Quais caminhos para divisão de histórias de usuários você considerou mais úteis?