Prática e carreira

Como Escrever User Stories com o Modelo INVEST e Critérios de Aceite

Aprenda a estruturar User Stories eficazes com o formato clássico, os 6 princípios do modelo INVEST e critérios de aceite claros com Gherkin e checklists.

Por Equipe Ignição GP · Publicado em · 17 min de leitura

Como Escrever User Stories com o Modelo INVEST e Critérios de Aceite

Se você já recebeu um item de backlog escrito como "melhorar o sistema de faturamento", "ajustar relatório para a diretoria" ou "criar módulo de login", sabe exatamente a dor de tentar estimar ou desenvolver algo sem contexto. O desenvolvedor imagina uma coisa, o Product Owner espera outra, o testador não sabe o que validar e o cliente final recebe uma entrega que não resolve o problema original. É aí que as User Stories (Histórias de Usuário) entram: não como uma burocracia documental de preenchimento obrigatório, mas como um convite para uma conversa clara entre negócio e tecnologia.

Ao longo deste guia completo, você vai entender as origens e a lógica real das User Stories, os três Cs fundamentais, a anatomia clássica de redação, como aplicar rigorosamente o modelo INVEST para garantir itens prontos para a Sprint, as principais técnicas de fatiamento vertical (vertical slicing), como redigir critérios de aceite com Gherkin (BDD) e checklists operacionais, como a inteligência artificial acelera esse refinamento e quais os erros mais perigosos que destroem a agilidade do time.

O que é uma User Story (e o que ela nunca deve ser)

Uma User Story é uma descrição leve, curta e em linguagem cotidiana de uma necessidade, desejo ou funcionalidade, formulada sob o ponto de vista de quem vai usufruir diretamente do benefício. O conceito foi cunhado por Alistair Cockburn em 1998, incorporado ao Extreme Programming (XP) por Kent Beck e popularizado no ecossistema Scrum por autores como Mike Cohn e pelo Guia SBOK® (Scrum Body of Knowledge) da SCRUMstudy.

Para entender o valor de uma User Story, vale olhar para o contraste com a engenharia de requisitos tradicional. Nos modelos em cascata (Waterfall), equipes gastavam meses produzindo as chamadas ERS (Especificações de Requisitos de Software) no padrão IEEE 830, com dezenas de páginas detalhando campos de tabelas, tipos de dados e telas estáticas. O problema? Na hora em que o software começava a ser construído, as premissas de negócio já haviam mudado, o cliente já tinha novas dores e ninguém mais lia o documento.

A User Story inverte essa lógica: em vez de congelar detalhes técnicos prematuros, ela registra uma intenção de valor e funciona como um marcador que lembra a equipe de que uma conversa precisa acontecer quando o momento de implementar estiver próximo.

DimensãoEspecificação Tradicional (SRS)User Story Ágil
Foco principalO sistema e como ele deve ser programado internamente.O usuário e o problema que ele precisa resolver no trabalho ou na vida.
Momento do detalhamentoTotalmente detalhado no início do projeto (Big Design Up Front).Progressivo, detalhado no Refinamento logo antes da Sprint (Just in Time).
Papel do documentoContrato fechado com assinaturas e controle rígido de escopo.Convite aberto para diálogo e negociação entre PO e Developers.
Linguagem usadaJargões técnicos, diagramas de entidade e pseudocódigos.Linguagem natural de negócio, compreensível por qualquer pessoa.
Tratamento de mudançasProcesso burocrático de comitê de controle de mudanças (CCB).Adaptação contínua e priorização dinâmica no Product Backlog.

Os 3 Cs da User Story: Card, Conversation, Confirmation

Ron Jeffries, um dos signatários do Manifesto Ágil, formulou em 2001 uma síntese lapidar conhecida como o princípio dos 3 Cs. Se qualquer um dos três faltar, o que você tem não é uma história ágil, mas sim uma ordem de serviço disfarçada:

  1. Card (Cartão): representa o registro físico ou digital da história. Tradicionalmente era uma ficha pautada de 3x5 polegadas (post-it ou cartão); hoje é um card no Jira, Trello, Azure DevOps ou ClickUp. O espaço intencionalmente limitado impede que o autor redija um manual complexo. Se a descrição não cabe de forma concisa, o item provavelmente está grande demais e precisa ser quebrado.
  2. Conversation (Conversa): é o coração do processo ágil. A história ganha vida nos momentos de Refinamento do Backlog e Sprint Planning, onde o Product Owner, os desenvolvedores e os especialistas técnicos dialogam, exploram dúvidas, analisam riscos de arquitetura e alinham expectativas mútuas. A conversa é contínua e se estende durante a execução do incremento.
  3. Confirmation (Confirmação): são os Critérios de Aceite objetivos e a Definição de Pronto (Definition of Done). Eles definem o contrato de verificação: como o time de desenvolvimento e o Product Owner saberão que a história foi entregue com sucesso e cumpre rigorosamente as necessidades acordadas?
Fluxo do Sprint Scrum e o papel das User Stories
O ciclo de vida das User Stories: da identificação de necessidades no Product Backlog ao fatiamento, refinamento e entrega do incremento utilizável (Fonte: Guia SBOK® / SCRUMstudy™).

A anatomia clássica: Como, Quero, Para

O formato mais disseminado no mundo para a redação do cartão é o modelo criado por Mike Cohn na obra User Stories Applied:

Como [perfil de usuário / persona],
Quero [ação, funcionalidade ou capacidade no sistema],
Para que [benefício real, objetivo de negócio ou resultado esperado].

Vamos dissecar por que cada uma dessas três cláusulas é vital e como evitar erros comuns em cada uma:

1. "Como [quem]": a definição de persona com contexto

O maior erro aqui é preencher sempre com o genérico "Como usuário". No ecossistema de uma empresa, não existe um usuário único e abstrato. Há o cliente novo que navega pela primeira vez pelo celular em uma conexão instável, o analista financeiro experiente que processa 200 faturas por hora, o administrador do sistema que audita logs de acesso e o operador de call center sob pressão de tempo.

Ao explicitar a persona com especificidade (exemplo: "Como analista de conciliação bancária" ou "Como comprador recorrente PJ"), a equipe de engenharia ganha empatia imediata, compreende as limitações de usabilidade e escolhe arquiteturas de interface e de dados muito mais adequadas.

2. "Quero [o quê]": a necessidade sem fixação prematura na solução

Esta cláusula expressa o comportamento pretendido. O cuidado essencial é não prescrever a implementação técnica dentro do cartão. Em vez de escrever "Quero uma stored procedure no banco Oracle que rode um script PL/SQL", escreva "Quero consolidar os saldos diários das contas em um clique". Deixe a engenharia de software livre para propor se a melhor solução é um job assíncrono, uma API REST ou um microserviço.

3. "Para que [por quê]": a âncora de valor e ROI

O "Para que" é a cláusula mais importante de todas. É ela que justifica o investimento de tempo e dinheiro da organização. Quando os desenvolvedores sabem por que algo está sendo feito, eles frequentemente identificam alternativas muito mais simples, baratas e rápidas para atingir exatamente o mesmo resultado de negócio.

Se ao redigir uma história você perceber que não consegue preencher o "Para que" com um benefício crível (ou o texto fica algo vazio como "para que o sistema fique melhor"), isso é um alerta vermelho evidente de que o item talvez nem devesse existir no backlog.

O modelo INVEST: os 6 critérios de ouro da qualidade ágil

Criado pelo cientista da computação Bill Wake em 2003, o acrônimo INVEST tornou-se a referência internacional para inspecionar a qualidade de qualquer User Story antes que ela seja selecionada no Sprint Planning. Uma história que atende ao modelo INVEST tem fluidez na esteira e minimiza surpresas durante a Sprint:

I - Independent (Independente)

Histórias de usuário devem ser o mais desacopladas possível entre si. Quando a história B depende obrigatoriamente da história A, que depende da história C, o planejamento da Sprint vira um jogo de cartas perigoso: qualquer atraso no primeiro item bloqueia todos os seguintes em cadeia. Sempre que houver dependências severas, reúna o time no refinamento para combinar histórias ou invertê-las tecnicamente com stubs e mocks.

N - Negotiable (Negociável)

Uma história nunca é um contrato jurídico imutável. Se os desenvolvedores descobrirem no meio do refinamento que implementar determinada regra em tempo real custará 40 horas, mas atualizá-la a cada 10 minutos custa 2 horas e atende plenamente ao negócio, o Product Owner tem a prerrogativa e a flexibilidade de ajustar o escopo imediatamente. Histórias ágeis mantêm a porta aberta para negociação inteligente.

V - Valuable (Valiosa)

A entrega precisa gerar valor palpável para o usuário final ou para os objetivos estratégicos do produto. Histórias técnicas puras (como "atualizar versão do driver de banco de dados") devem ser tratadas como tarefas técnicas ou formuladas como enablers justificados pelo valor que viabilizam — por exemplo: "Atualizar driver de banco para que as consultas de checkout ocorram em menos de 300ms, evitando abandono de carrinho".

E - Estimable (Estimável)

O time de desenvolvimento precisa ter contexto, escopo delimitado e clareza de critérios para conseguir estimar o esforço relativo do item (seja em Story Points, camisetas P/M/G ou contagem de fluxo). Se os desenvolvedores dizem "não conseguimos estimar isso de jeito nenhum", a história é grande demais, ambígua demais ou possui uma incerteza técnica tão profunda que exige um Spike técnico de investigação antes da Sprint.

S - Small (Pequena)

A história deve ser compacta o bastante para ser iniciada, desenvolvida, testada e homologada em poucos dias dentro da Sprint. Histórias que consomem a Sprint inteira de 2 semanas trazem alto risco: se surgir um imprevisto na última quinta-feira, 100% do item fica inacabado e nenhum incremento é entregue na Sprint Review. Como regra prática recomendada pela SCRUMstudy, uma boa história de usuário não deve exceder um terço do tamanho da Sprint do time.

T - Testable (Testável)

Se não é possível testar objetivamente se a entrega foi bem-sucedida, a história não está pronta. Frases vagas como "o sistema deve ser intuitivo", "a tela deve carregar rápido" ou "o layout deve agradar aos executivos" são inadmissíveis. O que é "rápido"? 200 milissegundos ou 5 segundos? Toda história requer critérios de aceite mensuráveis e testáveis.

Como fatiar User Stories (Vertical Slicing)

O maior gargalo de Product Owners e analistas de requisitos está em quebrar histórias gigantes (Épicos) em histórias pequenas sem cair na armadilha do fatiamento horizontal. Fatiamento horizontal é quando você cria uma história para o banco de dados, outra história para o backend da API e uma terceira história para a tela de frontend. Nenhuma dessas três histórias entrega valor isolado por si só ao usuário!

O segredo da agilidade é o Fatiamento Vertical: cada fatia atravessa todas as camadas de arquitetura (interface, regra de negócio e persistência), entregando uma funcionalidade pequena, utilizável e inspecionável de ponta a ponta.

Técnica de FatiamentoComo funcionaExemplo Prático
1. Passos do Fluxo (Workflow Steps)Dividir um processo complexo pelos passos cronológicos do usuário.Em vez de fazer o fluxo completo de compra com 6 etapas, a primeira história entrega do carrinho à emissão do boleto; a história seguinte adiciona cartão de crédito; a próxima adiciona cupom de desconto.
2. Variações de Regra de NegócioComeçar com a regra simples e deixar as complexidades e exceções para histórias subsequentes.História 1: Cálculo de frete com taxa fixa para capitais. História 2: Cálculo dinâmico integrado aos Correios com regras de cubagem interestadual.
3. Variação de Tipos de DadosSuportar o tipo de dados mais comum primeiro e expandir gradativamente.História 1: Upload de arquivos apenas em PDF com tamanho máximo de 5MB. História 2: Suporte a arquivos de imagens (.PNG e .JPG) com compactação automática no servidor.
4. Esforço Principal vs Alternativas (Happy Path)Construir primeiro o caminho feliz que resolve 80% dos casos de uso reais.História 1: Busca simples de produtos por nome no catálogo. História 2: Filtros avançados combinados por faixa de preço, marca, avaliação de clientes e estoque local.
5. Operações CRUD SeparadasEm vez de criar uma história única para "Módulo de Clientes", quebrar por operação.História 1: Visualização de lista de clientes ativos (leitura). História 2: Criação de novo cliente. História 3: Desativação e exclusão lógica de cadastro.

Critérios de Aceite: Gherkin (BDD) vs Checklist de Regras

Os critérios de aceite delimitam o escopo da história, servem de base para os testes unitários e de integração, e protegem o desenvolvedor contra o famoso "mas eu achei que também ia incluir isso". Existem dois formatos consolidados no mercado:

Formato 1: BDD com sintaxe Gherkin (Dado - Quando - Então)

O Behavior-Driven Development (BDD) utiliza uma sintaxe estruturada que pode ser lida por pessoas de negócio e diretamente interpretada por frameworks de automação de testes como Cucumber, SpecFlow ou Behave:

  • Dado (Given): o contexto inicial ou pré-condição do sistema antes da ação.
  • Quando (When): o evento, ação ou comando disparado pelo usuário.
  • Então (Then): o resultado observável esperado no sistema.
  • E (And): conectivo para encadear condições adicionais de entrada ou saída.

Exemplo real de Gherkin:

Cenário: Solicitação de reset de senha com e-mail cadastrado
Dado que o usuário está na tela de login
E possui o e-mail "cliente@empresa.com.br" ativo na base
Quando ele clica em "Esqueci minha senha" e informa seu e-mail cadastrado
Então o sistema exibe a notificação "E-mail de recuperação enviado com sucesso"
E dispara um token de segurança com validade estrita de 30 minutos
E registra o evento de segurança com endereço IP nos logs de auditoria.

Formato 2: Checklist de Regras de Negócio e Restrições

Para histórias de configuração de infraestrutura, requisitos operacionais ou regras tabulares, o formato em lista de verificação (checklist) é ágil, claro e muito direto:

  • O campo de CPF deve validar dígito verificador e impedir CPFs repetidos na base;
  • Se o usuário falhar a senha por 5 vezes consecutivas, a conta deve ser bloqueada temporariamente por 15 minutos;
  • O tempo de resposta da API de conciliação não pode exceder 800 milissegundos para lotes de até 50 transações;
  • Em telas móveis com largura menor que 400px, a tabela de extrato deve condensar os dados em cards verticais.

Caso Prático Passo a Passo: da ideia vaga à história refinada

Vamos acompanhar uma transformação prática real. Imagine que em uma reunião de diretoria surgiu o seguinte pedido:

"Precisamos de um sistema para os clientes cancelarem pedidos sem ter que ligar para o suporte."

Se você colocar esse pedido diretamente na Sprint com o título "Cancelamento de pedidos pelo app", o desastre está armado: a equipe vai passar 3 semanas debatendo regras de estorno no cartão, devolução de mercadoria na transportadora, produtos que já foram faturados e prazos do Código de Defesa do Consumidor.

Etapa 1: Quebra do Épico em Histórias Menores

Aplicando fatiamento vertical por passos do fluxo e regras de negócio, o PO desmembra o épico em três histórias:

  1. História 1 (Caminho Feliz Inicial): Cancelamento imediato de pedidos com status "Aguardando Separação" antes do faturamento.
  2. História 2 (Fluxo de Exceção): Solicitação de devolução para pedidos já entregues dentro do prazo legal de 7 dias (CDC).
  3. História 3 (Painel Operacional): Tela de controle do SAC para aprovar estornos em conta corrente via PIX.

Etapa 2: Redação completa da História 1 no padrão INVEST

Título: Cancelamento de pedido antes da emissão da nota fiscal

Descrição:
Como cliente com compra recente realizada no e-commerce,
Quero cancelar meu pedido diretamente pelo painel 'Meus Pedidos' enquanto ele estiver no status 'Aguardando Separação',
Para que eu não precise acionar o atendimento telefônico e evite a cobrança indevida no cartão de crédito.

Critérios de Aceite:

  1. O botão "Cancelar Pedido" só fica visível e ativo quando o pedido estiver no status "Pagamento Aprovado" ou "Aguardando Separação". Se a Nota Fiscal já tiver sido emitida, o botão é desabilitado e um aviso exibe o contato do suporte.
  2. Ao clicar no botão, uma janela modal de confirmação solicita o motivo da desistência (opções: "Comprei por engano", "Prazo muito longo", "Preço melhor em outra loja", "Outro").
  3. Confirmado o cancelamento, o status do pedido é atualizado imediatamente para "Cancelado pelo Cliente".
  4. Uma chamada síncrona à API do gateway de pagamento realiza o estorno integral da transação no cartão.
  5. Um e-mail transacional é enviado ao cliente em até 1 minuto com o comprovante do cancelamento e o código de autorização do estorno.

Como usar Inteligência Artificial para refinar User Stories

A inteligência artificial generativa (ChatGPT, Claude, Gemini) tornou-se uma aliada extraordinária para Product Owners, Scrum Masters e analistas de requisitos. No entanto, o resultado da IA só tem qualidade quando você não usa prompts genéricos ("crie uma user story para login"), e sim engenharia de contexto estruturada.

Para extrair propostas sólidas com IA, sua instrução deve fornecer obrigatoriamente:

  • O Perfil e Contexto do Produto: qual o segmento da empresa, tamanho da base e restrições regulatórias existentes;
  • O Problema Real de Negócio: qual gargalo motivou a iniciativa e qual o objetivo quantitativo desejado;
  • A Persona Alvo: perfil, nível de fluência tecnológica e ambiente de uso;
  • As Restrições Técnicas: integrações legadas, requisitos de segurança (LGPD/GDPR) e políticas de arquitetura;
  • O Padrão Esperado de Saída: exigência explícita do formato Como-Quero-Para, modelo INVEST e critérios de aceite em Gherkin.

No treinamento Seu Primeiro Backlog com IA da Ignição GP, fornecemos prompts prontos e testados com engenharia de contexto, além de uma Rubrica de Avaliação em 8 Dimensões para você auditar com rigor crítico se as histórias geradas pela IA atendem ao padrão profissional ou se precisam de ajuste humano.

Os 5 erros mais comuns (e como corrigi-los)

Ao auditar centenas de backlogs em empresas de todos os portes, estes são os vícios mais frequentes que destroem a agilidade:

  1. História de Usuário Técnica sem Negócio: "Como DBA, quero criar um índice na tabela de clientes". Usuários finais não querem índices de banco; eles querem que a consulta de clientes responda em meio segundo. Trate tarefas internas como sub-tarefas de engenharia ou vincule-as ao ganho real de desempenho.
  2. User Stories com Solução Prescritiva Demais: Descrever exatamente qual framework JavaScript usar, qual cor hexadecimal o botão deve ter e como a função deve ser declarada. Isso retira a autonomia e a criatividade técnica dos desenvolvedores.
  3. Critérios de Aceite Subjetivos: Critérios como "a tela deve ser fácil de usar" ou "o relatório deve ser rápido". Substitua sempre por parâmetros mensuráveis (exemplo: "o usuário completa o fluxo em no máximo 3 cliques" ou "a exportação em Excel conclui em até 4 segundos").
  4. Histórias com Escopo Oculto: O item parece pequeno, mas esconde validações fiscais e integrações com três sistemas legados diferentes. Quando o time descobre isso no meio da Sprint, o prazo estoura.
  5. Histórias não negociadas com os Developers: O Product Owner escreve a história sozinho na véspera do planejamento e não faz refinamento prévio com a equipe. Sem diálogo antecipado, o time de desenvolvimento é pego de surpresa e a Sprint Planning se arrasta por horas desnecessárias.

Perguntas Frequentes sobre User Stories e Modelo INVEST

User Stories são obrigatórias pelo Scrum Guide oficial?

Não. O Scrum Guide de 2020 define apenas que o trabalho a ser realizado deve estar contido em Itens do Product Backlog (PBIs - Product Backlog Items). Ele não impõe o formato de User Stories, Story Points ou INVEST. No entanto, User Stories tornaram-se o padrão mais adotado pela indústria por sua simplicidade e alinhamento com os valores de colaboração do Manifesto Ágil e com o Guia SBOK® da SCRUMstudy.

Qual a diferença real entre Critérios de Aceite e Definition of Done (DoD)?

Os Critérios de Aceite são específicos e únicos para cada User Story individual (por exemplo: "o cupom de desconto deve abater 15% apenas em compras acima de R$ 100"). Já a Definition of Done (Definição de Pronto) é um checklist global e corporativo que se aplica igualmente a todas as histórias da Sprint (por exemplo: "código revisado em pull request por outro desenvolvedor, 80% de cobertura de testes automatizados, documentação de API atualizada e homologação realizada no ambiente de staging").

Como lidar com débitos técnicos e refatorações no formato de histórias?

Débitos técnicos podem ser tratados como tarefas de manutenção contínua negociadas com o PO dentro da capacidade da Sprint (por exemplo, reservando 15% a 20% da velocidade para refatoração e saúde da arquitetura) ou formulados como Enablers Técnicos que explicitem o risco operacional de não realizá-los — como o aumento de contingência, lentidão ou custo de servidor.

Quem é o responsável por escrever as User Stories no time?

O Product Owner é o responsável final (accountable) pela clareza, ordenação e valor dos itens do Product Backlog. No entanto, a redação das histórias pode ser compartilhada colaborativamente com desenvolvedores, analistas de negócios, designers e especialistas de QA durante as cerimônias de refinamento contínuo do backlog.

O que fazer quando uma história de usuário não cabe em uma única Sprint?

Ela deve ser classificada como um Épico e fatiada verticalmente em histórias menores antes da Sprint Planning. Utilize as técnicas de fatiamento por passos do fluxo de usuário, divisão do caminho feliz vs exceções, ou simplificação de regras de negócio para encontrar a menor fatia que entregue valor inspecionável.