Bill Wake, autor do livro “Extreme Programming Explored”, descreveu em seu blog quais seriam as características de boas User Stories. Ele formou o acrônimo INVEST (“investir”, em inglês) com a primeira letra de cada uma dessas características, afirmando que devemos “investir em boas User Stories” (Wake, 2003).
De acordo com Wake, uma User Story deve ser:
- independente: User Stories devem ser o mais independentes ou desacopladas possível umas das outras, ou seja, User Stories com grande número de dependências em outras User Stories devem ser evitadas. Essa independência visa ser viável alterar livremente a ordem que serão desenvolvidas e, ao fazê-lo, não ser necessário alterar suas estimativas.
Cabe adicionar que uma User Story se traduzirá sempre em uma funcionalidade de ponta a ponta, que representa valor para o usuário. Além disso, deve ser possível entender uma User Story sem ser necessário ler quaisquer outras; - negociável e negociada: seus detalhes serão discutidos, negociados e definidos entre as pessoas de negócios (com o Product Owner, entre elas) e o Time de Desenvolvimento. São as “Conversas”, dos três C’s;
- valiosa: devem representar valor de negócio para os clientes do projeto. Ao dividir-se uma User Story, o resultado dessa divisão deve ser User Stories menores que também representem funcionalidades de ponta a ponta, e não partes de trabalho técnico;
- estimável: o Time de Desenvolvimento deve possuir detalhes suficientes — tanto técnicos quanto de negócios — para estimar o trabalho de se transformar a User Story em parte do produto, de forma que o Product Owner possa ordená-la apropriadamente.
Assim, conversas suficientes devem ser realizadas entre as pessoas de negócios e os membros do Time de Desenvolvimento para se obter os detalhes de negócios da User Story a ser desenvolvida. Os membros do Time de Desenvolvimento devem discutir possíveis soluções e executar pequenos experimentos, caso necessário, para reduzir os riscos técnicos da User Story. É claro que o nível de detalhes necessário depende de quão próxima a User Story está de ser colocada em desenvolvimento.
Estimativas fornecem o custo de desenvolvimento de uma User Story. Mesmo caso não se utilizem estimativas, os detalhes são necessários para dividir as User Stories de forma que fiquem pequenas o suficiente para serem desenvolvidas; - pequena (“small”, em inglês) ou dimensionada apropriadamente: apenas User Stories pequenas e com um bom nível de detalhes podem ser colocadas em desenvolvimento. Quanto mais para baixo no Product Backlog a User Story estiver, maior ela será, a princípio.
User Stories pequenas próximas a seu desenvolvimento têm maior precisão em suas estimativas, permitem um melhor ordenamento do Product Backlog e representam um menor risco ao possibilitarem que mais itens façam parte de um Sprint; - testável — deve ser possível verificar e confirmar que a User Story está pronta, ou seja, que foi transformada em parte do produto e está funcionando conforme esperado. A verificação é realizada por meio dos Critérios e Testes de Aceitação. É a “Confirmação”, dos três C’s.
Perguntas frequentes
O que e o acronimo INVEST para User Stories?
O acronimo INVEST, criado por Bill Wake em 2003, define as caracteristicas de boas User Stories. Ele estabelece que uma historia deve ser independente, negociavel, valiosa, estimavel, pequena e testavel. Esse modelo orienta times de desenvolvimento e Product Owners a criarem entregas eficientes, com valor claro para o usuario e menor risco durante a execucao do projeto.
Como funciona a independencia em uma User Story?
A independencia significa que as User Stories devem ser desacopladas umas das outras. Isso permite alterar livremente a ordem em que serao desenvolvidas sem afetar suas estimativas. Alem disso, uma historia independente deve representar uma funcionalidade completa de ponta a ponta que entrega valor ao usuario, podendo ser compreendida sem a necessidade de ler outras historias do backlog.
Como fatiar uma User Story mantendo o valor de negocio?
Ao dividir uma User Story grande, o resultado deve ser historias menores que ainda representem funcionalidades completas de ponta a ponta. Nao se deve fatiar historias em partes de trabalho tecnico. Dessa forma, mesmo menores, as novas historias continuam entregando valor de negocio diretamente para os clientes do projeto e permitindo um melhor ordenamento no Product Backlog.
O que torna uma User Story testavel?
Uma User Story e testavel quando e possivel verificar e confirmar que ela foi integrada ao produto e funciona como o esperado. Essa confirmacao e realizada por meio dos Criterios de Aceitacao e Testes de Aceitacao, representando a fase de Confirmacao do conceito dos tres Cs. Sem ser testavel, nao ha como garantir que o item esta pronto.
Pronto pra dar o próximo passo?
Conheça os cursos da K21 e leve essas ideias pra prática com quem vive agilidade todo dia.
Ver cursos K21