No cenário do desenvolvimento ágil, a clareza é a moeda do sucesso. Quando uma equipe começa a trabalhar em um novo recurso, a base está na História de Usuário. No entanto, uma História de Usuário é meramente um espaço reservado para uma conversa. Para transformar essa conversa em um produto funcional, são necessários dois artefatos críticos: Critérios de Aceitação e Definição de Concluído. Esses conceitos atuam como trilhos que garantem qualidade, alinhamento e previsibilidade.
Muitas equipes têm dificuldade em distinguir esses dois conceitos. Às vezes, são tratados como se fossem a mesma coisa, levando à confusão durante testes ou implantação. Em outros momentos, são totalmente ignorados, resultando em expansão de escopo ou recursos incompletos chegando à produção. Este guia explora a mecânica, o propósito e a implementação dos Critérios de Aceitação e da Definição de Concluído para ajudar sua equipe a entregar valor de forma consistente.

O que é uma História de Usuário? 📝
Antes de analisar os componentes de uma história, é essencial lembrar o que uma História de Usuário realmente é. Em frameworks ágeis, uma História de Usuário é uma breve e simples descrição de um recurso contada do ponto de vista da pessoa que deseja a nova funcionalidade. Ela geralmente segue o formato:
- Como um [tipo de usuário],
- Eu quero [algum objetivo],
- Para que [algum benefício].
Esse formato foca no valorfornecido ao usuário, em vez da implementação técnica. No entanto, esse formato sozinho não é suficiente para orientar o desenvolvimento. Ele não especifica os limites do trabalho nem os padrões necessários para a conclusão. É aqui que entram os Critérios de Aceitação e a Definição de Concluído.
Critérios de Aceitação (CA): As Condições para a Conclusão ✅
Os Critérios de Aceitação são um conjunto de condições que uma História de Usuário deve atender para ser considerada completa, segundo a perspectiva do proprietário do produto. Eles definem os limites da história e fornecem uma compreensão clara do que o produto final deverá ser.
O Propósito dos Critérios de Aceitação
Os Critérios de Aceitação desempenham múltiplas funções no ciclo de vida do desenvolvimento:
- Clareza: Eles eliminam ambiguidades. Se um desenvolvedor perguntar: “O botão deve ficar verde ou azul ao passar o mouse?”, os CA devem responder isso.
- Testes: Eles atuam como casos de teste. Engenheiros de QA usam essas condições para validar o recurso.
- Acordo: Eles garantem que o proprietário do produto e a equipe de desenvolvimento estejam de acordo sobre o que constitui “concluído” para esta história específica.
Características de Boas Critérios de Aceitação
Os Critérios de Aceitação eficazes são específicos, mensuráveis e inequívocos. Evite termos vagos como “amigável ao usuário” ou “rápido” sem definir métricas. Em vez disso, especifique comportamentos exatos.
- Atômicos: Cada critério deve abordar uma única exigência.
- Testáveis: Deve ser possível verificar o critério com um resultado de passou ou falhou.
- Independente:Os critérios não devem depender de histórias externas para serem validados.
- Relevante:Foque no valor para o usuário, e não na estrutura interna do código.
Exemplos de Critérios de Aceitação
Considere uma história sobre adicionar um recurso de “Esqueci minha senha”. Veja como os critérios de aceitação poderiam ser:
- Dado que o usuário está na página de login,
Quando eles clicam no link “Esqueci minha senha”,
Então eles são redirecionados para a página de recuperação de senha. - Dado que o usuário insere um e-mail válido,
Quando eles enviam o formulário,
Então uma mensagem de confirmação é exibida. - Dado que o usuário insere um e-mail inválido,
Quando eles enviam o formulário,
Então uma mensagem de erro indica que o formato do e-mail está incorreto.
Esses exemplos seguem a estrutura Dado/Quando/Entãoestrutura (frequentemente associada à sintaxe Gherkin), que promove clareza e alinha-se com frameworks de testes automatizados.
Definição de Concluído (DoD): A Porta de Qualidade 🚧
Enquanto os Critérios de Aceitação são específicos para uma única História de Usuário, a Definição de Concluído é um padrão global aplicado atodoso trabalho dentro de um sprint ou lançamento. Representa a lista de verificação de requisitos que devem ser atendidos para que qualquer incremento de trabalho seja considerado potencialmente entregável.
O Propósito da Definição de Concluído
O DoD atua como uma porta de qualidade. Garante que a dívida técnica não se acumule e que o produto permaneça em um estado entregável em todo momento. Se uma história atende aos seus Critérios de Aceitação, mas não atende à Definição de Concluído, ela não pode ser marcada como concluída.
Elementos comuns encontrados na Definição de Concluído incluem:
- Revisão de Código:Todo código deve ser revisado por pelo menos um colega.
- Testes Unitários:Testes automatizados devem passar com cobertura de 100% para a nova lógica.
- Documentação: A documentação da API ou os guias do usuário são atualizados.
- Desempenho: A funcionalidade atende aos requisitos mínimos de tempo de carregamento.
- Acessibilidade: A funcionalidade está em conformidade com as diretrizes WCAG.
- Segurança: Nenhuma vulnerabilidade conhecida é introduzida.
Por que o DoD Importa
Sem uma Definição de Concluído, as equipes frequentemente caem na armadilha de ‘tecnicamente concluído, mas na verdade não pronto’. Uma funcionalidade pode funcionar conforme o esperado de acordo com os Critérios de Aceitação, mas pode ter danificado outra parte do sistema, carecer de documentação adequada ou introduzir riscos de segurança. O DoD evita isso ao impor uma base mínima de qualidade em toda a lista de prioridades.
Critérios de Aceitação vs. Definição de Concluído: As Principais Diferenças 🆚
A confusão surge frequentemente porque ambos os conceitos lidam com a ‘completude’. No entanto, seu escopo e responsabilidade diferem significativamente. Compreender essa diferença evita desalinhamentos entre desenvolvedores, testadores e proprietários do produto.
| Funcionalidade | Critérios de Aceitação | Definição de Concluído |
|---|---|---|
| Escopo | Específico para uma única História de Usuário | Global para toda a equipe ou projeto |
| Propriedade | Proprietário do Produto e Equipe de Desenvolvimento | Toda a Equipe de Desenvolvimento |
| Flexibilidade | Alterações por história com base nos requisitos | Estável, embora possa ser atualizado ao longo do tempo |
| Propósito | Define requisitos funcionais | Define qualidade e padrões não funcionais |
| Verificação | Testes funcionais em relação às necessidades do usuário | Verificação técnica e de processo |
Pense nos Critérios de Aceitação como o destino de uma viagem específica, enquanto a Definição de Concluído é a lista de verificação de segurança exigida para todos os veículos na estrada.
Como escrever critérios de aceitação eficazes 📝
Escrever critérios de aceitação é uma ação colaborativa. Não deve ser feito de forma isolada pelo proprietário do produto. A melhor prática envolve o conceito dos “Três Amigos”, em que o Proprietário do Produto, um Desenvolvedor e um Testador colaboram cedo no processo de refinamento.
Passo 1: Identifique o objetivo do usuário
Comece reafirmando a proposta de valor. Qual problema o usuário está resolvendo? Isso garante que os critérios permaneçam focados na experiência do usuário, e não em detalhes técnicos.
Passo 2: Defina cenários positivos e negativos
Não escreva apenas o caminho feliz. Considere o que acontece quando as coisas dão errado.
- Caminho feliz: O usuário realiza a ação exatamente como esperado.
- Casos de borda: O que acontece com caracteres especiais, dados ausentes ou conexões lentas?
- Caminho negativo: Como o sistema lida com entradas inválidas de forma elegante?
Passo 3: Use linguagem clara
Evite jargões sempre que possível. Se termos técnicos forem necessários, certifique-se de que estão definidos. Use voz ativa. Por exemplo, “O sistema deve validar…” é menos claro do que “O usuário recebe uma mensagem de erro…”.
Passo 4: Priorize
Se uma história for grande, divida-a. Os critérios de aceitação devem ser alcançáveis dentro do sprint. Se os critérios implicarem trabalho que não pode ser concluído no sprint, a história precisa ser dividida.
Como estabelecer uma definição robusta de pronto 🛠️
A Definição de Pronto não é um documento estático. Ela evolui conforme a equipe amadurece e conforme a tecnologia muda. Deve ser visível para todos, geralmente exibida em uma quadro físico ou digital.
Passo 1: Consulte a equipe
A DoD é de propriedade da equipe que realiza o trabalho. Desenvolvedores, testadores e designers devem contribuir para a lista. Se um desenvolvedor adiciona um requisito, ele terá mais probabilidade de segui-lo.
Passo 2: Categorize os requisitos
Agrupe os itens da DoD em categorias lógicas para tornar a lista de verificação gerenciável.
- Qualidade do código:Linting aprovado, sem avisos, revisão por pares concluída.
- Testes:Testes unitários escritos, testes de integração aprovados, testes manuais verificados.
- Implantação:Implantado no ambiente de homologação, testes de fumaça aprovados.
- Documentação:README atualizado, documentação da API sincronizada.
Passo 3: Torná-lo uma parada obrigatória
Se uma história não atender ao DoD, ela não pode ser fechada. Isso exige disciplina. É tentador dizer: “Vamos corrigir a documentação depois”, mas isso gera dívida técnica. A história permanece em “Em Andamento” até que o DoD seja atendido.
Passo 4: Revisar e Refinar
Durante as retrospectivas, pergunte à equipe: “O nosso DoD detectou algum problema?” ou “Há alguma exigência que estamos constantemente ignorando?” Atualize o DoD com base nessas observações.
Erros Comuns a Evitar ⚠️
Mesmo equipes experientes tropeçam ao implementar essas práticas. Estar ciente dos erros comuns pode poupar tempo e frustração significativos.
1. Critérios de Aceitação Vagos
Escrever critérios como “O sistema deve ser seguro” é inútil. Não é testável. Em vez disso, especifique “O sistema deve exigir autenticação multifator para contas de administrador.”
2. DoD como uma tarefa de marcação de caixas
Se a equipe marca a caixa do DoD sem realmente realizar o trabalho (por exemplo, pulando a revisão de código), o DoD perde seu significado. O DoD deve ser respeitado, e não apenas lido.
3. Complicar excessivamente o DoD
Um DoD com 50 itens torna-se abrumador. Foque nas portas essenciais de qualidade. Se uma exigência for raramente violada, ela pode ser uma orientação, e não um item rígido do DoD.
4. Ignorar Requisitos Não-Funcionais
As equipes frequentemente se concentram muito nas AC (funcionais) e ignoram o DoD (não-funcionais). Desempenho, segurança e acessibilidade fazem parte do DoD, e não das AC. Ignorá-los leva a funcionalidades que funcionam, mas são lentas ou inseguras.
5. Criar o DoD sem o apoio da equipe
Se o Product Owner definir o DoD sem a contribuição dos desenvolvedores, a equipe pode resistir a ele. O DoD deve ser um acordo compartilhado.
Integração no Fluxo de Trabalho 🔄
Os Critérios de Aceitação e a Definição de Conclusão devem ser integrados a cada etapa do ciclo de vida do desenvolvimento, e não apenas no final.
Fase de Refinamento
Durante o refinamento da lista de pendências, o Product Owner redige os Critérios de Aceitação. A equipe os revisa para garantir que sejam testáveis e viáveis. Perguntas são feitas e respondidas aqui, e não durante o sprint.
Planejamento do Sprint
Ao se comprometer com histórias, a equipe verifica se os Critérios de Aceitação são claros. Se não forem, a história não está pronta para o sprint.
Fase de Desenvolvimento
Os desenvolvedores escrevem código para atender às AC. Ao mesmo tempo, garantem que estejam seguindo o DoD (por exemplo, escrevendo testes, solicitando revisões).
Fase de Testes
Engenheiros de QA verificam as AC em relação ao recurso construído. Também verificam o DoD (por exemplo, verificando relatórios de cobertura de código, escaneamentos de acessibilidade).
Revisão e Encerramento
Antes de uma história ser movida para “Concluído”, a equipe confirma que tanto as AC quanto o DoD estão satisfeitas. Caso contrário, ela retorna à fila.
Medindo o Sucesso 📊
Como você sabe se seus Critérios de Aceitação e sua Definição de Conclusão estão funcionando? Monitore métricas ao longo do tempo.
- Taxa de Defeitos:Os bugs encontrados em produção estão diminuindo? Um DoD forte deveria detectar problemas antes do lançamento.
- Taxa de Rejeição:As histórias estão sendo rejeitadas frequentemente pelo Product Owner? Isso indica uma definição ruim dos Critérios de Aceitação.
- Estabilidade da Velocidade:A velocidade da equipe permanece consistente? Se histórias forem frequentemente devolvidas por itens faltantes no DoD, a velocidade irá oscilar.
- Frequência de Implantação:Um DoD claro permite implantações mais suaves e frequentes?
Perguntas Frequentes ❓
Aqui estão perguntas comuns que as equipes fazem ao implementar esses padrões.
P: Os Critérios de Aceitação podem mudar durante um sprint?
R: Idealmente, não. Se os Critérios de Aceitação mudarem significativamente, isso pode indicar que a história não foi bem compreendida durante a refinamento. Pequenas esclarecimentos são aceitáveis, mas mudanças de escopo importantes devem resultar em uma nova história ou em um ajuste no escopo do sprint.
P: Cada história precisa de uma Definição de Conclusão única?
R: Não. O DoD é global. No entanto, histórias técnicas específicas podem ter requisitos adicionais incluídos na lista de verificação para aquele item específico, mas o DoD básico se aplica a todas.
P: E se a equipe discordar do DoD?
R: Facilite uma discussão. O objetivo é alcançar consenso. Se um desenvolvedor insiste em um requisito com o qual o testador discorda, discuta o risco. Se o risco for baixo, descarte-o. Se for alto, mantenha-o.
P: Quão detalhados os Critérios de Aceitação devem ser?
R: Detalhados o suficiente para serem testáveis. Se um engenheiro de QA conseguir escrever um caso de teste diretamente a partir dos Critérios de Aceitação, eles são suficientemente detalhados. Se precisarem fazer perguntas, precisam de mais detalhes.
P: O teste automatizado pode substituir o teste manual no DoD?
R: Depende. Para lógica crítica, sim. Para experiência do usuário ou elementos visuais, a validação manual ainda pode ser necessária. O DoD deve refletir a melhor prática para garantia de qualidade.
Pensamentos Finais sobre Qualidade e Alinhamento 🌟
Implementar Critérios de Aceitação e Definição de Conclusão não se trata de burocracia; é sobre respeito. É respeito pelo usuário que espera uma funcionalidade funcional, respeito pelo desenvolvedor que deseja requisitos claros e respeito pelo product owner que precisa de confiança na entrega.
Quando esses dois conceitos são usados corretamente, eles criam uma linguagem compartilhada pela equipe. Reduzem a necessidade de reuniões constantes de esclarecimento. Evitam a acumulação de dívida técnica. E, mais importante, garantem que cada história concluída agregue valor real ao produto.
Comece pequeno. Defina um DoD básico. Escreva AC claras para sua próxima história. Revise-as na sua próxima retrospectiva. Com o tempo, essas práticas se tornarão naturais, incorporadas à cultura da sua equipe. O resultado é um fluxo constante de software de alta qualidade que atende às necessidades das pessoas que o utilizam.









