Histórias de usuário: Fatiar ou Quebrar?

Histórias de usuário: Fatiar ou Quebrar?

Você sabe a diferença entre quebrar e fatiar uma história de usuário?

Em geral, a gente fala que histórias de usuário menores são melhores que histórias de usuário grandes. Daqui a pouco eu chego no porquê disso.

FATIANDO O BOLO

Quando a gente fala em ter histórias de usuário menores a gente está querendo FATIAR uma história de usuário.

Então, fatiar é sair de uma história de usuário grande e chegar em duas ou mais histórias pequenas.

Pense em alguém cortando uma fatia de um bolo. Depois de cortada, a fatia ainda tem todas as camadas (da base até a cobertura). Da mesma forma, as histórias fatiadas continuam sendo histórias de usuário. Ou seja, elas mantêm as características de boas histórias de usuário.

Quando o desenvolvedor terminar a implementação dessa história, ele ainda consegue demonstrar para o seu cliente a história de fim a fim. Todas as camadas estão lá. Do backend até interface. Funcionando e podendo ser usado. Pode até ser que não vá para a produção. Mas é possível usar.

Ele também consegue desenvolver a história de forma independente de outras histórias do backlog. Conseguir demonstrar e conseguir implementar uma história de forma independente de outras são duas características de boas de histórias de usuário. A história FATIADA deve continuar guardando estas características também. Mas essas característica é um assunto pra outro dia…

E o melhor de tudo: cada história agora é menor do que a história antiga.

QUEBRANDO O PROBLEMA

Por outro lado, antes de começar a desenvolver, o time pode QUEBRAR as histórias em partes menores. Eu falo PODE, porque isso é realmente uma opção para o time. E não tem outro jeito de descobrir o que é melhor para o seu time: tem que EXPERIMENTAR e ficar com o que deu certo.

Mas vamos continuar…

Ao quebrar uma história de usuário, você não vai mais chegar em histórias de usuário menores. Vai chegar nas partes que precisam ser construídas para entregar aquela nova funcionalidade para o usuário. Geralmente chamamos estas partes de Tarefas. Essas divisão em tarefas vai permitir dois ou mais desenvolvedores trabalharem na mesma história ao mesmo tempo.

Então, a História de Usuário entrega uma funcionalidade completa e quebramos ela em tarefas para facilitar o desenvolvimento. Alguns exemplos de tarefas em sistemas web vão ser: 1) Implementar a interface de usuário; 2) implementar o backend; 3) criar o banco de dados; 4) implementar a segurança. Depois de finalizar todas as tarefas temos a história de usuário pronta para ser demonstrada.

O PORQUÊ

Agora nós chegamos no PORQUÊ você quer fatiar ou quebrar uma história de usuário

Quando você fatia uma história de usuário, você consegue demonstrar mais frequentemente para o seu cliente. Os feedbacks dos clientes e dos usuários aumentam as chances de você corrigir o curso do desenvolvimento e de estar sempre o mais próximo possível do caminho certo.

Quanto menor o tempo entre a criação da ideia e a sua validação, mais chances você tem de estar indo no caminho certo. Você está aumentando o feedback sobre o produto desenvolvido.

É a mesma ideia do MVP… do Fail Fast… Validar rapidamente uma ideia e corrigir a direção tomada o mais rápido possível.

E porque quebrar uma história de usuário?

Quando você quebra uma história de usuário, está dando a chance de mais de um desenvolvedor trabalhar na mesma história ao mesmo tempo. E está facilitando a coordenação entre os diversos integrantes do time.

E, se mais de um desenvolvedor trabalha na mesma história ao mesmo tempo, é provável que essa história leve menos tempo para ser desenvolvida. E, de novo, é mais chance de feedback mais rápido para o time de desenvolvimento.

VEJA TAMBÉM

Por último, eu quero deixar alguns links para você…

 

PS: Pra mim, esses nomes Fatiar e Quebrar não são importantes. Eu mesmo muitas vezes falo em quebrar quando quero dizer fatiar. O mais importante são os conceitos que os termos carregam e usar histórias de usuário e tarefas no momento certo. 

%d blogueiros gostam disto: