Testar grátis
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

Artigos Relacionados