8 min leitura • Guide 749 of 877
Boas Práticas de Automação de Workflow
Automação remove fricção e garante consistência. A automação de workflow do GitScrum ajuda equipes a definir regras que executam automaticamente baseadas em gatilhos.
Por Que Automatizar
Manual vs Automatizado
VALOR DA AUTOMAÇÃO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ PROBLEMAS DO WORKFLOW MANUAL: │
│ │
│ "Lembre de mover para Em Review quando PR abrir" │
│ → Esquece 30% das vezes │
│ │
│ "Atribuir para QA quando desenvolvimento terminar" │
│ → QA descobre tarde, atrasa teste │
│ │
│ "Notificar stakeholders quando feature lançar" │
│ → Às vezes esquece, stakeholders reclamam │
│ │
│ "Fechar tarefas quando PR for mergeado" │
│ → Tarefas ficam em status errado por dias │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ COM AUTOMAÇÃO: │
│ │
│ PR aberto → Tarefa move para "Em Review" │
│ → Automaticamente, toda vez │
│ │
│ Tarefa pronta → QA atribuído │
│ → Notificação enviada │
│ → Instantaneamente, sem esquecer │
│ │
│ Feature lança → Stakeholders notificados │
│ → Release notes atualizadas │
│ → Consistente, confiável │
│ │
│ AUTOMAÇÃO ECONOMIZA: │
│ • Tempo (sem updates manuais) │
│ • Carga mental (sem precisar lembrar) │
│ • Erros (sem esquecer) │
│ • Atrasos (execução instantânea) │
└─────────────────────────────────────────────────────────────┘
O Que Automatizar
Bons Candidatos para Automação
AUTOMATIZE ISSO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TRANSIÇÕES DE STATUS: │
│ │
│ SE tarefa atribuída │
│ ENTÃO mover para "Em Progresso" │
│ │
│ SE todas subtarefas completas │
│ ENTÃO mover pai para "Pronto para Review" │
│ │
│ SE PR mergeado │
│ ENTÃO mover tarefa para "Done" │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ATRIBUIÇÕES: │
│ │
│ SE bug criado com label "frontend" │
│ ENTÃO atribuir para @time-frontend │
│ │
│ SE tarefa move para "QA" │
│ ENTÃO atribuir para @qa-lead │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ NOTIFICAÇÕES: │
│ │
│ SE tarefa vence em 24 horas │
│ ENTÃO lembrar assignee │
│ │
│ SE tarefa bloqueada por > 2 dias │
│ ENTÃO notificar tech lead │
│ │
│ SE tarefa alta prioridade criada │
│ ENTÃO notificar canal │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ LABELS E CAMPOS: │
│ │
│ SE tarefa em "Done" por > 7 dias │
│ ENTÃO adicionar label "Pronto para Arquivar" │
│ │
│ SE tarefa sem assignee após 48h │
│ ENTÃO adicionar label "Precisa Dono" │
└─────────────────────────────────────────────────────────────┘
O Que Não Automatizar
MANTENHA MANUAL:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ❌ DECISÕES DE JULGAMENTO: │
│ │
│ "Auto-aprovar se código passar nos testes" │
│ → Code review requer julgamento humano │
│ │
│ "Auto-atribuir baseado em carga de trabalho" │
│ → Ignora expertise, preferências, contexto │
│ │
│ "Auto-priorizar baseado em palavras-chave" │
│ → Prioridade requer entendimento de negócio │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ EXCEÇÕES COMPLEXAS: │
│ │
│ "Auto-mover mas exceto se..." (muitas exceções) │
│ → Regras complexas quebram e confundem │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ PROCESSOS QUE MUDAM: │
│ │
│ "Automatizar processo experimental" │
│ → Vai mudar, automação desperdiçada │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ FRICÇÃO VALIOSA: │
│ │
│ "Auto-deploy para produção" │
│ → Momento de pausa antes de produção pode ser bom │
│ │
│ "Auto-aprovar gastos" │
│ → Aprovação manual é checkpoint válido │
└─────────────────────────────────────────────────────────────┘
Implementação no GitScrum
Criando Automações
SETUP DE AUTOMAÇÃO
══════════════════
ACESSANDO:
─────────────────────────────────────
Project → Settings → Automations
ESTRUTURA DA AUTOMAÇÃO:
─────────────────────────────────────
1. GATILHO (Quando?)
├── Status mudou
├── Tarefa criada
├── Campo atualizado
├── Data de vencimento
├── Tempo passou
└── Evento externo (webhook)
2. CONDIÇÃO (Se? - opcional)
├── Tipo é Bug
├── Prioridade é Alta
├── Label contém "urgente"
├── Assignee está vazio
└── Sprint é atual
3. AÇÃO (Então faça)
├── Mudar status
├── Atribuir pessoa
├── Enviar notificação
├── Atualizar campo
├── Adicionar label
└── Criar tarefa linkada
EXEMPLO PRÁTICO:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────┐
│ AUTOMAÇÃO: Auto-atribuir QA │
├─────────────────────────────────────────────────────────┤
│ │
│ QUANDO: Status muda para "Pronto para QA" │
│ SE: Tipo é Feature ou Bug │
│ ENTÃO: │
│ ├── Atribuir para @maria (QA Lead) │
│ ├── Notificar @maria no Slack │
│ └── Definir SLA de teste = 2 dias │
│ │
│ [Salvar] [Testar] │
└─────────────────────────────────────────────────────────┘
Templates de Automação
AUTOMAÇÕES COMUNS PRÉ-CONFIGURADAS
══════════════════════════════════
AUTO-PROGRESSO:
─────────────────────────────────────
Quando: Tarefa atribuída
Então: Mover para "Em Progresso"
Uso: Tracking automático de início
PR → REVIEW:
─────────────────────────────────────
Quando: PR aberto (webhook GitHub)
Se: Contém task ID
Então: Mover para "Em Review"
Uso: Sincronização com VCS
MERGE → DONE:
─────────────────────────────────────
Quando: PR mergeado (webhook)
Então: Mover para "Done"
Uso: Fechamento automático
LEMBRETE DE VENCIMENTO:
─────────────────────────────────────
Quando: 24h antes do vencimento
Se: Status não é Done
Então: Notificar assignee
Uso: Prevenir atrasos
ALERTA DE BLOQUEIO:
─────────────────────────────────────
Quando: Status muda para "Bloqueado"
Então:
├── Notificar Scrum Master
└── Adicionar label "blocked"
Uso: Visibilidade de impedimentos
ITEM STALE:
─────────────────────────────────────
Quando: Sem atividade por 5 dias
Se: Status é "Em Progresso"
Então:
├── Adicionar label "stale"
└── Notificar assignee
Uso: Identificar trabalho parado
Integrações
GitHub/GitLab
AUTOMAÇÃO COM VERSION CONTROL
═════════════════════════════
FLUXO INTEGRADO:
─────────────────────────────────────
Dev cria branch feature/GS-123-login
↓
Commits: "feat: add login GS-123"
↓
Abre PR com título "[GS-123] Add login"
↓ AUTOMAÇÃO
GitScrum move GS-123 para "Em Review"
↓
PR aprovado e mergeado
↓ AUTOMAÇÃO
GitScrum move GS-123 para "Done"
↓ AUTOMAÇÃO
Notifica PO que feature está pronta
CONFIGURAÇÃO:
─────────────────────────────────────
Settings → Integrations → GitHub:
├── Autorizar
├── Selecionar repos
├── Definir padrão de task ID
├── Configurar automações:
│ ├── PR opened → In Review
│ ├── PR merged → Done
│ └── PR closed (sem merge) → volta status
└── Testar conexão
Slack/Teams
NOTIFICAÇÕES INTELIGENTES
═════════════════════════
QUANDO NOTIFICAR:
─────────────────────────────────────
✓ Tarefa bloqueada
✓ Prazo chegando
✓ Alta prioridade criada
✓ Sprint iniciado
✓ Feature deployada
QUANDO NÃO NOTIFICAR:
─────────────────────────────────────
✗ Cada mudança de status
✗ Cada comentário
✗ Atualizações menores
→ Evite notification fatigue
CONFIGURAÇÃO:
─────────────────────────────────────
Settings → Integrations → Slack:
├── Conectar workspace
├── Selecionar canal padrão
├── Definir regras de notificação
├── Customizar mensagem
└── Testar
EXEMPLO DE MENSAGEM:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────┐
│ 🚨 Task Blocked │
│ │
│ GS-123: Login Feature │
│ Blocked by: Waiting for API credentials │
│ Assignee: @joao │
│ Blocked since: 2 hours ago │
│ │
│ [View Task] [Mark Resolved] │
└─────────────────────────────────────────────────────────┘
Boas Práticas
Princípios de Automação
PRINCÍPIOS PARA BOAS AUTOMAÇÕES
═══════════════════════════════
1. COMECE SIMPLES:
─────────────────────────────────────
├── Uma automação por vez
├── Teste antes de ativar
├── Observe por uma semana
├── Itere baseado em feedback
└── Adicione complexidade gradualmente
2. DOCUMENTE:
─────────────────────────────────────
├── O que a automação faz
├── Por que foi criada
├── Quando foi modificada
├── Quem é responsável
└── Como desativar se necessário
3. MONITORE:
─────────────────────────────────────
├── Automação está executando?
├── Está fazendo o esperado?
├── Há erros ou exceções?
├── Usuários estão satisfeitos?
└── Métricas de impacto
4. MANTENHA:
─────────────────────────────────────
├── Revise trimestralmente
├── Remova automações obsoletas
├── Atualize quando processo muda
├── Corrija bugs rapidamente
└── Evolua com o time
5. NÃO EXAGERE:
─────────────────────────────────────
├── Nem tudo precisa ser automatizado
├── Automação tem custo de manutenção
├── Complexidade cresce rápido
├── Menos automações = mais controle
└── Foque no alto impacto
Troubleshooting
PROBLEMAS COMUNS
════════════════
AUTOMAÇÃO NÃO DISPARA:
─────────────────────────────────────
Verificar:
├── Gatilho correto?
├── Condições atendidas?
├── Automação ativa?
├── Permissões corretas?
└── Webhook funcionando?
AUTOMAÇÃO DISPARA ERRADO:
─────────────────────────────────────
Verificar:
├── Condições muito amplas?
├── Conflito com outra automação?
├── Ordem de execução?
├── Dados inesperados?
└── Testar com casos específicos
LOOPS INFINITOS:
─────────────────────────────────────
Automação A dispara B, B dispara A...
Solução:
├── Adicionar condição anti-loop
├── Usar flag "automatedUpdate"
├── Limitar execuções por item
└── Revisar lógica
PERFORMANCE:
─────────────────────────────────────
Automação lenta ou timeout:
├── Simplificar condições
├── Reduzir ações por automação
├── Usar batch quando possível
└── Contatar suporte se persistir