
Escrever requisitos para projetos de software frequentemente cria uma lacuna de comunicação. Desenvolvedores falam em código. Stakeholders de negócios falam em valor. Os Critérios de Aceitação (CA) ficam no meio, atuando como ponte entre o que é necessário e o que é construído. Quando essa ponte é construída usando jargão técnico, ela se torna instável. Membros da equipe não técnicos não conseguem verificar se o trabalho está correto. Os stakeholders perdem confiança no processo. Este guia explica como escrever Critérios de Aceitação sem jargão técnico, garantindo clareza, colaboração e entrega de qualidade.
🧩 O que são Critérios de Aceitação?
Os Critérios de Aceitação definem as condições que um produto de software deve atender para ser aceito por um usuário ou stakeholder. Eles não são uma lista de funcionalidades, mas sim uma definição de limites. Eles respondem à pergunta: ‘Como será o trabalho concluído?’. No contexto de uma História de Usuário, os CA fornecem os detalhes necessários para garantir que a equipe de desenvolvimento compreenda o escopo.
Os Critérios de Aceitação eficazes devem ser:
- Claro: Sem ambiguidade. Todos leem o mesmo significado.
- Verificável: Você pode escrever um caso de teste para verificá-los.
- Específico: Eles usam números e estados concretos, e não termos vagos.
- Acessível: Eles são escritos em linguagem que toda a equipe entende.
🗣️ Por que o Jargão Técnico prejudica a colaboração
Quando desenvolvedores escrevem Critérios de Aceitação, há uma tendência natural de descrever os detalhes da implementação. Isso acontece porque eles conhecem como o sistema funciona. No entanto, descrever a solução antes de resolver o problema introduz riscos. Isso limita a flexibilidade e gera confusão para quem não programa.
O Custo do Mal-Entendido
Considere um cenário em que um stakeholder lê um requisito e assume um significado diferente do que o desenvolvedor. Essa discrepância leva a retrabalho. O retrabalho desperdiça tempo e orçamento. Também atrasa a liberação de valor. Evitar jargão reduz a chance de essa lacuna ocorrer.
- Desenvolvedores: Podem se concentrar em campos do banco de dados em vez de resultados para o usuário.
- Testadores de QA: Pode não saber como verificar o comportamento sem entender a estrutura da API.
- Proprietários de Negócios: Pode aprovar a história pensando que atende às suas necessidades, apenas para descobrir que não atende.
Termos Técnicos Comuns para Evitar
Para manter os critérios acessíveis, certas palavras devem ser substituídas por equivalentes em linguagem simples. O objetivo é descrever o comportamento, e não o mecanismo.
- Evite: “Atualize o registro no banco de dados.”
Use: “Salve as informações do cliente.” - Evite: “Chame o ponto de extremidade da API.”
Use: “Envie a solicitação para o servidor.” - Evite: “Renderize o componente.”
Use: “Mostre o botão na tela.” - Evite: “Lance uma exceção.”
Use: “Exiba uma mensagem de erro.”
📝 Princípios de Requisitos em Linguagem Clara
Escrever sem jargão exige disciplina. Exige que você se afaste da solução técnica e se concentre na experiência do usuário. Os seguintes princípios ajudam a manter esse foco.
1. Foque no Comportamento, Não na Implementação
Descreva o que o sistema faz, e não como faz. O sistema deve lidar com a lógica interna. O usuário se importa com o resultado. Se o sistema mudar sua estrutura interna de banco de dados, o usuário não deve perceber. Portanto, o AC não deve mencionar o banco de dados.
- Ruim: “Insira uma linha na tabela Pedidos.”
- Bom: “Crie um novo registro de pedido no sistema.”
2. Use a Voz Ativa
A voz passiva esconde quem está fazendo o quê. A voz ativa esclarece a ação. Torna os critérios mais fáceis de ler e entender.
- Ruim: “O botão deve ser clicado pelo usuário.”
- Bom: “O usuário clica no botão.”
3. Defina Números Específicos
Palavras como “rápido”, “muitos” ou “em breve” são subjetivas. Levam a discussões sobre o que constitui sucesso. Use valores mensuráveis em vez disso.
- Ruim: “A página deve carregar rapidamente.”
- Bom:“A página carrega em até 3 segundos.”
4. Evite suposições
Não assuma que o usuário sabe como o sistema funciona. Enuncie as condições explicitamente. Se uma etapa for necessária para realizar uma ação, liste-a como uma pré-condição.
- Ruim: “Você pode excluir o arquivo.”
- Bom: “Se um arquivo for selecionado, o usuário poderá excluí-lo.”
🧪 O padrão Dado-Quando-Então (Simplificado)
Uma das formas mais eficazes de escrever critérios de aceitação não técnicos é o formato Dado-Quando-Então. Essa estrutura é frequentemente associada ao desenvolvimento orientado ao comportamento, mas também funciona bem para requisitos em linguagem simples. Ela divide o cenário em contexto, ação e resultado.
Dividindo o padrão
- Dado: O estado inicial ou contexto. O que está acontecendo antes da ação?
- Quando: A ação realizada pelo usuário ou sistema. O que dispara a mudança?
- Então: O resultado esperado. O que acontece após a ação?
Cenário de exemplo: Entrar na conta
Imagine uma história de usuário sobre entrar em uma conta segura. Uma versão técnica poderia mencionar tokens de sessão. Uma versão em linguagem simples foca na experiência.
- Dado: O usuário está na tela de login.
- Quando: O usuário insere um e-mail e senha válidos, depois clica em “Entrar”.
- Então: O usuário é levado para a página inicial.
Essa estrutura obriga o redator a pensar no fluxo de eventos, em vez da estrutura do código. É fácil para um analista de negócios ler e verificar.
📊 Comparando versão técnica versus linguagem simples
Ver exemplos lado a lado ajuda a esclarecer a diferença. A tabela abaixo demonstra como traduzir requisitos técnicos em linguagem voltada para o usuário.
| ❌ Versão técnica | ✅ Versão em linguagem simples |
|---|---|
| Quando o usuário enviar o formulário, execute uma requisição POST para /api/submit com payload em JSON. | Quando o usuário clica em “Enviar”, as informações são enviadas para o sistema. |
| Garanta que a transação do banco de dados seja revertida se a conexão expirar. | Se a conexão falhar, o sistema não salva os dados e pede ao usuário para tentar novamente. |
| Valide a entrada com base no padrão de expressão regular para e-mail. | Garanta que o endereço de e-mail esteja formatado corretamente antes de salvar. |
| Retorne o código HTTP 404 se o ID do recurso não existir. | Exiba uma mensagem informando que o item solicitado não pode ser encontrado. |
| Limpe os cookies de sessão ao sair. | Remova o status de login quando o usuário clicar em “Sair”. |
🤝 O Papel da Colaboração
Escrever os critérios de aceitação raramente é uma tarefa solitária. Exige contribuições do Proprietário do Produto, da Equipe de Desenvolvimento e da Qualidade. A colaboração garante que a linguagem simples seja precisa e que as restrições técnicas sejam respeitadas sem serem explícitas.
Preparando-se para a Discussão
Antes de escrever os critérios finais, reúna informações. Pergunte aos stakeholders do negócio o que eles precisam. Pergunte aos desenvolvedores o que é viável. Essa preparação reduz as discussões posteriores.
- Revise a documentação existente: Verifique se já existem funcionalidades semelhantes construídas.
- Identifique casos de borda: O que acontece se a internet cair? E se o usuário inserir dados incorretos?
- Defina restrições: Existem limites de tempo ou requisitos de segurança que precisam ser atendidos?
Aprimorando os Critérios
Assim que o rascunho estiver pronto, revise-o com a equipe. Use os critérios como ponto de discussão, e não como um contrato final. Isso permite ajustes com base em novas descobertas técnicas.
- Revisões em voz alta: Leia os critérios em voz alta. Eles fazem sentido para uma pessoa não técnica?
- Perguntas: Faça perguntas do tipo “E se?” para testar os limites.
- Testes: Peça a um testador para tentar escrever um caso de teste com base nos critérios. Se ele tiver dificuldade, os critérios são muito vagos.
🛠️ Lidando com Casos de Borda Sem Complexidade
Casos de borda são cenários que raramente ocorrem, mas devem funcionar quando acontecem. Descrevê-los sem jargões pode ser desafiador. A chave é descrever a experiência do usuário durante o erro, e não o código de erro em si.
Casos de Borda Comuns
- Falha na Rede: “Se a conexão com a internet for perdida, o sistema salva os dados localmente e notifica o usuário.”
- Entrada Inválida: “Se o usuário digitar letras no campo de número de telefone, o sistema exibe um erro e destaca o campo.”
- Dados Ausentes: “Se um campo obrigatório estiver vazio, o sistema impede o salvamento e solicita as informações.”
- Problemas de Permissão: “Se o usuário não tiver acesso, o sistema oculta o botão.”
Ao focar na reação visível, você mantém os critérios acessíveis. O desenvolvedor sabe como implementar a correção em segundo plano.
📈 Medindo Sucesso e Qualidade
Como você sabe se seus Critérios de Aceitação estão funcionando? Você os mede pela qualidade do trabalho entregue e pela eficiência do processo.
Indicadores de Critérios Boas
- Menos Revisões: A equipe constrói a coisa certa na primeira vez.
- Testes Mais Rápidos: Os testadores podem verificar a história rapidamente sem precisar de esclarecimentos.
- Aprovação Clara: Os stakeholders podem confirmar que o trabalho foi concluído sem confusão.
- Redução da Ambiguidade: Surgem menos perguntas durante a fase de desenvolvimento.
Definição de Concluído vs. Critérios de Aceitação
É importante distinguir entre Critérios de Aceitação e a Definição de Concluído (DoD). O DoD se aplica a cada tarefa individual, independentemente do recurso. Ele inclui coisas como revisão de código, verificações de segurança e testes unitários. Os Critérios de Aceitação são específicos para a História do Usuário.
- DoD: “O código é revisado, os testes passam e a documentação é atualizada.”
- AC: “O usuário pode filtrar produtos pela faixa de preço.”
Ambos são necessários para a qualidade. O DoD garante a saúde técnica. O AC garante o valor para o negócio.
🚧 Erros Comuns a Evitar
Mesmo com boas intenções, as equipes frequentemente caem em armadilhas. Estar ciente desses erros comuns ajuda a manter altos padrões.
Erro 1: Ser Muito Vago
Dizer que ‘o sistema deve ser rápido’ não é suficiente. Isso provoca debates. Defina o que significa ‘rápido’ no seu contexto. É em menos de 1 segundo? Em menos de 5 segundos?
Erro 2: Misturar Critérios de Aceitação com Tarefas
Não liste os passos que o desenvolvedor precisa realizar. Por exemplo, ‘Criar uma nova tabela no banco de dados’ é uma tarefa, não um critério de aceitação. O critério é o resultado, não o método.
Erro 3: Ignorar Casos Negativos
Escrever apenas sobre o que acontece quando as coisas dão certo é incompleto. Um conjunto robusto de critérios inclui o que acontece quando as coisas dão errado. Isso protege a experiência do usuário.
Erro 4: Usar Muitas Condições
Se uma História de Usuário tem vinte Critérios de Aceitação, ela pode ser muito grande. Tente dividi-la em histórias menores. Histórias menores são mais fáceis de entender e testar.
🛡️ Garantindo Acessibilidade e Clareza
Linguagem clara não é apenas sobre evitar palavras técnicas. É sobre tornar o conteúdo acessível a todos da equipe. Isso inclui pessoas que podem ter estilos de aprendizagem diferentes ou níveis variados de proficiência linguística.
Dicas para Acessibilidade
- Frases Curtas: Mantenha as frases com menos de 20 palavras, quando possível.
- Palavras Simples: Use vocabulário comum em vez de jargões da indústria.
- Ajudas Visuais: Quando possível, anexe capturas de tela ou wireframes para esclarecer os critérios.
- Terminologia Consistente: Use as mesmas palavras para os mesmos conceitos ao longo do projeto.
🔄 O Processo de Revisão
Uma vez que os critérios forem escritos, eles precisam ser revisados. Isso não é um evento único. À medida que o projeto evolui, os critérios podem precisar de atualizações. Um documento vivo garante que os requisitos permaneçam precisos.
Checklist de Revisão
- É testável? Podemos verificar isso com um teste?
- É completo? Cobre todos os fluxos do usuário?
- É claro? Um novo membro da equipe consegue entender?
- É consistente? Combina com outras histórias na lista de pendências?
🎯 Reflexões Finais sobre Requisitos Claros
Escrever Critérios de Aceitação sem jargões técnicos é um investimento no sucesso do projeto. Ele fecha a lacuna entre as necessidades do negócio e a execução técnica. Reduz erros, economiza tempo e constrói confiança entre os stakeholders. Ao focar em linguagem simples, resultados claros e comportamento do usuário, as equipes podem entregar software de alta qualidade que realmente atende às necessidades dos usuários.
O esforço para evitar a complexidade se traduz em comunicação mais fluida e entrega mais rápida. Quando todos entendem o objetivo, a equipe avança com confiança. Essa abordagem leva a produtos melhores e equipes mais felizes.












