Como criar e manter uma definição de pronto (DoD) que o time respeita
1. Por que a DoD falha na prática (e como evitar as armadilhas comuns)
A DoD genérica que ninguém lê
Muitos times começam com uma Definition of Done copiada de um template da internet. Listas como "código revisado", "testes unitários passando" e "documentação atualizada" viram wallpaper digital. O problema não é o conteúdo, mas a ausência de apropriação. Quando a DoD não reflete as dores reais do time, ela se torna um checklist burocrático que ninguém consulta.
Exemplo de DoD genérica que falha:
- Código commitado no branch principal
- Testes unitários com cobertura > 80%
- Code review aprovado
- Documentação técnica atualizada
- Homologação com PO realizada
O viés do "feito" subjetivo
Sem critérios objetivos, desenvolvedores podem considerar uma história "pronta" porque o código compila, enquanto o PO espera uma funcionalidade completamente testada em staging. Essa divergência gera retrabalho e quebra a confiança.
Cenário comum:
Desenvolvedor: "O código está pronto, subi para produção."
PO: "Mas o tratamento de erro quando o servidor cai? E a mensagem de validação do formulário?"
DoD como instrumento de punição
Quando a liderança usa a DoD para cobrar entregas incompletas ou culpar times por atrasos, ela vira uma ferramenta de controle hierárquico. O time passa a "burlar" os critérios ou a criar DoDs tão frouxas que perdem o valor.
2. Construindo a DoD com o time (não para o time)
Workshop de cocriação
Reúna desenvolvedores, QA, PO e scrum master. Use a técnica "Start, Stop, Continue" para listar o que já funciona, o que atrapalha e o que falta. Cada pessoa escreve em post-its os critérios que considera essenciais para considerar um item "pronto".
Exemplo de dinâmica:
Rodada 1: "O que já fazemos e deve continuar na DoD?"
Rodada 2: "O que está faltando e nos causa retrabalho?"
Rodada 3: "O que deveria ser removido porque só atrasa?"
DoD mínima viável
Na primeira versão, inclua apenas 5 a 7 critérios essenciais. Deixe de fora itens que podem ser tratados como "boas práticas" ou que dependem de automação futura.
Exemplo de DoD v1.0:
- Código revisado por pelo menos um par
- Testes unitários passando (sem quebras)
- Testes de integração para fluxo principal
- Tratamento de erros implementado
- PO validou o comportamento em staging
- Nenhum débito técnico crítico identificado
Validação com PO e stakeholders
Após a cocriação, apresente a DoD ao PO e stakeholders. Explique que cada critério existe para evitar retrabalho e garantir previsibilidade. Negocie exceções apenas para cenários muito específicos.
3. Critérios essenciais que todo time técnico deve considerar
Qualidade técnica inegociável
- Testes unitários e de integração passando
- Code review com feedbacks endereçados
- Ausência de warnings ou débitos críticos no linter
- Documentação de API ou endpoints atualizada
Critérios de produto e UX
- Aceite formal do PO na história
- Tratamento de estados de erro (loading, vazio, falha)
- Acessibilidade básica (navegação por teclado, contraste)
- Mensagens de feedback para o usuário
Segurança e conformidade
- Validação de dados sensíveis (não logar senhas ou tokens)
- Rastreabilidade mínima (logs estruturados)
- Permissões e roles verificadas
4. Como integrar a DoD ao fluxo do dia a dia (sem virar burocracia)
Checklists automatizados no board
Use templates no Jira, GitHub Projects ou Notion que já venham com a DoD preenchida. Cada item vira um checkbox que precisa ser marcado antes de mover para "Done".
Exemplo de template no GitHub Projects:
Definição de Pronto
- [ ] Código revisado
- [ ] Testes passando
- [ ] PO validou
- [ ] Sem débitos críticos
- [ ] Logs de erro implementados
Gatekeepers leves
Code review e QA não devem ser barreiras intransponíveis, mas pontos de verificação. Se um critério não for atendido, o item volta para "Em andamento" com justificativa clara.
DoD no refinement e planning
Antes de puxar uma nova história, o time revisa se a DoD atual ainda faz sentido para aquele tipo de item. Isso evita surpresas no meio da sprint.
5. Mantendo a DoD viva: revisão periódica e evolução natural
Retrospectivas focadas em DoD
A cada 2 ou 3 sprints, reserve 10 minutos na retrospectiva para perguntar:
- "Algum critério da DoD virou gargalo?"
- "Tem critério que não está sendo respeitado? Por quê?"
- "Precisamos adicionar algo novo?"
DoD por tipo de item
Nem todo item precisa da mesma DoD. Crie variações:
DoD para História:
- Todos os critérios da DoD padrão
- Testes de aceitação automatizados
- Documentação de usuário atualizada
DoD para Bug:
- Causa raiz identificada
- Teste de regressão criado
- Correção validada em staging
DoD para Spike:
- Relatório com descobertas
- Decisão técnica documentada
- Próximos passos definidos
Versionamento da DoD
Mantenha um histórico de mudanças em um arquivo no repositório do time. Isso ajuda novos integrantes a entender a evolução e evita discussões sobre "como era antes".
Exemplo de changelog da DoD:
v1.0 (2024-01-15) - Versão inicial com 6 critérios
v1.1 (2024-03-10) - Adicionado "tratamento de erros"
v1.2 (2024-06-22) - Removido "cobertura de 80%" (era gargalo)
v2.0 (2024-09-05) - Criadas variações por tipo de item
6. Lidando com exceções e pressão por velocidade
Exceções documentadas e rastreáveis
Quando um critério precisar ser pulado (ex.: prazo apertado), documente no próprio card:
Exceção aprovada em 15/10: pular testes de integração
Motivo: hotfix de segurança crítico
Plano de regularização: adicionar testes na sprint seguinte
Responsável: [nome do dev]
DoD mínima vs. DoD ideal
Sob pressão, negocie apenas o que é seguro abrir mão:
- Negociável: documentação extensa, testes de performance
- Não negociável: code review, testes de regressão, validação do PO
O papel da liderança técnica
O tech lead deve proteger a DoD explicando o custo de pular critérios, não apenas dizendo "não". Mostre dados de retrabalho e incidentes anteriores para justificar a rigidez.
7. Métricas para saber se a DoD está sendo respeitada (de verdade)
Taxa de retrabalho pós-entrega
Meça quantos itens voltam para correção após serem marcados como "pronto". Se esse número for alto, a DoD não está sendo seguida ou está incompleta.
Tempo médio entre "pronto" e "em produção"
Se o tempo for muito longo, pode haver gargalos escondidos (ex.: espera por validação do PO, falta de ambiente de staging).
Pesquisa de confiança no time
A cada mês, faça uma pesquisa anônima:
"Em uma escala de 1 a 5, o quanto você confia que os itens marcados como 'pronto' realmente atendem a DoD?"
Se a média ficar abaixo de 3,5, é sinal de que a DoD precisa ser revisada ou reforçada.
Referências
- Definition of Done: A Practical Guide for Agile Teams (Scrum.org) — Guia prático com exemplos de como criar e manter uma DoD eficaz em times Scrum.
- The Definition of Done: Why It Matters and How to Create One (Atlassian) — Artigo da Atlassian explicando a importância da DoD e como integrá-la ao fluxo do Jira.
- How to Create a Definition of Done That Your Team Will Actually Use (Mountain Goat Software) — Dicas práticas de Mike Cohn sobre como evitar DoDs burocráticas e criar uma que o time respeite.
- Definition of Done Checklist Template (GitHub) — Template open source de checklist para DoD que pode ser adaptado para diferentes tipos de item.
- The Agile Definition of Done: Avoiding Common Pitfalls (TechBeacon) — Análise dos erros mais comuns ao implementar DoD e como corrigi-los.
- Definition of Done in Scrum: A Complete Guide (Scrum Inc.) — Guia completo com exemplos de critérios técnicos e de produto para DoD em times Scrum.