7 min leitura • Guide 119 of 877
Criando Definition of Done efetiva
Quando "feito" significa coisas diferentes para pessoas diferentes, você tem trabalho incompleto, stakeholders surpresos e dívida técnica. Uma Definition of Done (DoD) clara cria entendimento compartilhado do que completude parece, garantindo qualidade consistente e entrega previsível.
Por que DoD importa
| Sem DoD clara | Com DoD clara |
|---|---|
| "Eu pensei que estava feito" | Entendimento compartilhado |
| Funciona na minha máquina | Funciona em todos os lugares |
| Testes faltando | Qualidade integrada |
| Sem documentação | Conhecimento capturado |
| Bugs encontrados em produção | Bugs pegos cedo |
Componentes DoD
Categorias a cobrir
CATEGORIAS DE DEFINITION OF DONE
════════════════════════════════
QUALIDADE DE CÓDIGO:
├── Código compila sem erros
├── Sem avisos de linting
├── Segue padrões de codificação
├── Sem code smells óbvios
└── Código auto-documentado
TESTING:
├── Testes unitários escritos e passando
├── Testes de integração passando
├── Sem diminuição na cobertura
├── Casos extremos testados
└── Teste manual completo
CODE REVIEW:
├── PR criado com descrição
├── Review solicitado
├── Feedback endereçado
├── Pelo menos 1 aprovação
└── Sem comentários não resolvidos
DOCUMENTAÇÃO:
├── Comentários de código onde necessários
├── README atualizado se necessário
├── Documentação de API atualizada
├── Documentação de usuário atualizada (se UI)
└── Entrada de changelog adicionada
DEPLOYMENT:
├── Merged para branch main
├── Deployed para staging
├── Teste smoke passou
├── Sem erros no monitoramento
└── Pronto para produção
Definições de exemplo
DoD básica (equipe pequena)
DEFINITION OF DONE (Básica)
═══════════════════════════
Antes de marcar tarefa "Done":
CÓDIGO:
- [ ] Código compila sem erros
- [ ] Sem erros de linting
- [ ] Segue guia de estilo da equipe
TESTING:
- [ ] Testes escritos para novo código
- [ ] Todos os testes passando
- [ ] Teste manual completo
REVIEW:
- [ ] PR aprovado por 1 reviewer
- [ ] Feedback endereçado
DEPLOY:
- [ ] Merged para main
- [ ] Deployed para staging
- [ ] Verificado funcionando
DoD abrangente (enterprise)
DEFINITION OF DONE (Enterprise)
════════════════════════════════
DESENVOLVIMENTO COMPLETO:
- [ ] Funcionalidade completa por critérios de aceitação
- [ ] Código compila no pipeline CI
- [ ] Sem avisos de análise estática
- [ ] Dívida técnica documentada (se houver)
- [ ] Feature flag configurado (se aplicável)
TESTING COMPLETO:
- [ ] Testes unitários: >80% cobertura no novo código
- [ ] Testes de integração escritos e passando
- [ ] Testes E2E para fluxos de usuário (se UI)
- [ ] Performance testado (se aplicável)
- [ ] Scan de segurança passou
- [ ] Acessibilidade testada (WCAG 2.1 AA)
REVIEW COMPLETO:
- [ ] Descrição de PR completa
- [ ] 2+ code reviews aprovados
- [ ] Todos comentários de review resolvidos
- [ ] Aprovação de arquitetura (se mudança major)
- [ ] Review de segurança (se manipulação de dados)
DOCUMENTAÇÃO COMPLETA:
- [ ] Documentação inline no código
- [ ] Documentação de API (se mudança de API)
- [ ] Documentação de usuário (se mudança UI)
- [ ] Runbook atualizado (se impacto ops)
- [ ] ADR criado (se decisão arquitetural)
DEPLOYMENT COMPLETO:
- [ ] Merged para branch main
- [ ] Pipeline CI/CD verde
- [ ] Deployed para staging
- [ ] Sign-off QA no staging
- [ ] Alertas de monitoramento configurados
- [ ] Pronto para deployment de produção
HANDOFF COMPLETO:
- [ ] Product owner verificou
- [ ] Demo gravado (se funcionalidade major)
- [ ] Equipe de suporte informada (se customer-facing)
- [ ] Release notes redigidos
DoD por tipo de tarefa
DoD POR TIPO DE TAREFA
══════════════════════
CORREÇÃO DE BUG:
├── Causa raiz identificada
├── Correção implementada
├── Teste de regressão adicionado
├── Sem issues relacionados
└── Deployed e verificado
FUNCIONALIDADE:
├── Todos critérios de aceitação atendidos
├── Testes abrangentes
├── Documentação atualizada
├── Reviewed e aprovado
└── Sign-off do produto
DÍVIDA TÉCNICA:
├── Problema endereçado
├── Sem mudança de funcionalidade
├── Testes ainda passando
├── Performance mantida
└── Aprendizados documentados
DOCUMENTAÇÃO:
├── Conteúdo preciso
├── Verificado ortografia
├── Links verificados
├── Reviewed por SME
└── Publicado
SPIKE/PESQUISA:
├── Pergunta respondida
├── Achados documentados
├── Recomendação feita
├── Equipe informada
└── Tarefas de follow-up criadas
Implementando DoD
Criando sua DoD
PROCESSO DE CRIAÇÃO DE DoD
══════════════════════════
PASSO 1: Workshop da equipe (60 min)
─────────────────────────────────────
- Que problemas trabalho incompleto causou?
- O que sempre esquecemos?
- Como "feito" deve parecer?
PASSO 2: Rascunhar categorias
─────────────────────────────────────
Agrupar sugestões em:
├── Código
├── Testing
├── Review
├── Documentação
├── Deployment
PASSO 3: Priorizar
─────────────────────────────────────
- Must have (não-negociável)
- Should have (padrão)
- Nice to have (aspiracional)
PASSO 4: Começar pequeno
─────────────────────────────────────
Começar com 5-8 itens. Expandir conforme
equipe amadurece e capacidades crescem.
PASSO 5: Tornar visível
─────────────────────────────────────
- Postar no wiki do projeto
- Link do GitScrum
- Referência no standup
- Review nas retros
DoD no GitScrum
ENFORÇANDO DoD NO GITSCRUM
══════════════════════════
TEMPLATE DE TAREFA:
─────────────────────────────────────
Incluir checklist DoD na descrição da tarefa
## Definition of Done
- [ ] Código reviewed e aprovado
- [ ] Testes escritos e passando
- [ ] Documentação atualizada
- [ ] Deployed para staging
- [ ] Verificado funcionando
AUTOMAÇÃO:
─────────────────────────────────────
Regra: Prevenir mover para "Done" se
checklist DoD não estiver completa
VISIBILIDADE:
─────────────────────────────────────
Exibir % de completude DoD no cartão da tarefa
Tratando violações DoD
QUANDO DoD NÃO É ATENDIDO
═════════════════════════
NÃO FAÇA:
✗ Deixar passar "só desta vez"
✗ Culpar a pessoa
✗ Adicionar burocracia
FAÇA:
✓ Discutir na retro
✓ Entender por que aconteceu
✓ Ajustar processo ou DoD
✓ Fornecer suporte para atender
EXCEÇÕES VÁLIDAS:
├── Correção de produção emergencial (documentar dívida técnica)
├── Trabalho experimental/protótipo
├── Skip explicitamente acordado (documentado)
MESMO ENTÃO:
Criar tarefa de follow-up para completar
os itens DoD pulados
Evolução de DoD
Amadurecendo sua DoD
NÍVEIS DE MATURIDADE DoD
════════════════════════
NÍVEL 1: BÁSICO
├── Código compila
├── Testes passam
├── Código reviewed
└── Merged
NÍVEL 2: PADRÃO
├── Tudo no Nível 1
├── Requisitos de cobertura
├── Documentação
├── Deployment staging
└── Verificação
NÍVEL 3: MADURO
├── Tudo no Nível 2
├── Scanning de segurança
├── Testing de performance
├── Acessibilidade
├── Monitoramento configurado
└── Pronto para produção
NÍVEL 4: EXCELENTE
├── Tudo no Nível 3
├── Feature flags
├── Pronto para A/B testing
├── Plano de rollback
├── Suporte treinado
└── Analytics configurado
Progrida pelos níveis conforme
capacidade da equipe e ferramentas melhoram.
Melhores práticas
Para Definition of Done
- Comece pequeno — 5-8 itens, não 20
- Torne visível — Todos veem constantemente
- Enforce — DoD é não-negociável
- Revise regularmente — Trimestral no mínimo
- Propriedade da equipe — Todos concordam
Anti-padrões
ERROS DE DEFINITION OF DONE:
✗ DoD existe mas ninguém segue
✗ Muitos itens (irrealístico)
✗ Não revisado ou atualizado
✗ Equipes diferentes, DoDs diferentes (sem padrão)
✗ DoD violado "por causa do deadline"
✗ DoD é apenas testing (ignora outros aspectos)
✗ Ninguém sabe onde DoD está documentado