Vocês serão avaliados (também) automaticamente por um Dashboard Ágil que lê o GitLab (issues, commits, merge requests, milestones, labels) e calcula aderência a boas práticas de engenharia ágil.
As regras abaixo são exatamente as que o dashboard verifica. Siga-as desde o primeiro commit do sprint — refazer no fim não dá certo.
🎯 1. Issues no GitLab — 8 critérios obrigatórios
Toda issue nasce em open. Não se cria issue direto em backlog, doing ou em qualquer outra coluna. Só depois de refinada (com DoR atendido, labels, milestone e assignee) é que ela passa de open para backlog.
- 1Título com verbo no infinitivo. Ex.:
Implementar tela de login,Criar diagrama de classes. Não use substantivo (Tela de login). - 2Descrição presente com pelo menos um parágrafo de contexto e objetivo (mais de 40 caracteres).
- 3Objetivo explícito dentro da descrição. Use o cabeçalho
**Objetivo da tarefa:**e descreva em 1–2 linhas. - 4Critérios de DoD (Definition of Done). Use
**DoD:**com checklist verificável:[ ] testes passando · [ ] PR aprovado · [ ] docs atualizada. - 5Critérios de DoR (Definition of Ready). Use
**DoR:**listando pré-condições para começar: design aprovado, API documentada, ambiente ok. - 6Responsável atribuído (assignee). A pessoa que pegar o card para fazer tem que colocar o próprio nome no campo Assignee da issue. Cada issue = um único dono = quem está executando.
- 7Labels definidas. Pelo menos: tipo (
FEATURE,BUG FIX,DOCUMENTATION), tamanho (SIZE_PP,SIZE_P,SIZE_M,SIZE_G) e prioridade (PRIORIDADE ALTA). - 8Vinculada a milestone (sprint). Todo trabalho mora dentro de
Sprint 01,Sprint 02, etc. Issue sem milestone = trabalho fora do sprint.
Template mínimo de issue (cole na descrição)
**Objetivo da tarefa:** <1-2 linhas>
**Contexto:** <por que estamos fazendo isso>
**DoR (Definition of Ready):**
- [ ] Design aprovado
- [ ] Dependências mapeadas
- [ ] API contract definido
**DoD (Definition of Done):**
- [ ] Implementado
- [ ] Testes unitários passando
- [ ] MR aprovado por 1 revisor
- [ ] Documentação atualizada
Issues bem escritas são contrato com você-do-futuro. DoD/DoR bem definidos eliminam metade dos retrabalhos do sprint.
💬 2. Conventional Commits — semântico + vinculado a issue
O dashboard só conta o commit como verde (adequado) se ele for semântico E referenciar uma issue da sprint pelo número (#N). Caso contrário ele aparece como vermelho (não conforme) nas barras por autor.
Formato
<tipo>(<escopo opcional>): <descrição curta> (#<issue>)
[corpo opcional explicando o porquê]
[footer opcional: BREAKING CHANGE: …, Closes #N]
11 tipos aceitos
O dashboard aceita commits que casam com este regex:
^(feat|fix|docs|style|refactor|test|chore|perf|ci|build|revert)(\(.+\))?(!)?\s*:
| Tipo | Quando usar | Exemplo |
|---|---|---|
| feat | Nova funcionalidade visível para o usuário | feat(auth): adicionar login com Google (#12) |
| fix | Correção de bug | fix(api): corrigir 500 em GET /users (#34) |
| docs | Apenas documentação | docs(readme): atualizar setup local (#5) |
| style | Formatação, ponto-e-vírgula, indentação — sem mudar comportamento | style: aplicar prettier no módulo auth (#19) |
| refactor | Reescrita sem adicionar feature nem corrigir bug | refactor(orders): extrair OrderService (#22) |
| test | Adicionar/corrigir testes | test(orders): cobrir caso de estoque zero (#22) |
| chore | Tarefa de manutenção (deps, configs, scripts) | chore: atualizar typescript para 5.4 (#7) |
| perf | Melhoria de performance | perf(query): adicionar índice em orders.user_id (#41) |
| ci | Pipeline de CI/CD | ci: rodar testes em PRs para main (#3) |
| build | Build, empacotamento, scripts de release | build: configurar Dockerfile multi-stage (#9) |
| revert | Reverter um commit anterior | revert: feat(auth): adicionar login Google (#12) |
Regras de ouro
- Sempre referencie a issue com
#Nem algum lugar da mensagem (título ou corpo). Sem isso o dashboard marca como não conforme. - Imperativo no infinitivo, não no passado:
adicionar✅ —adicionei❌. - Descrição curta (máximo 72 caracteres na primeira linha).
- Breaking change: use
!após o tipo eBREAKING CHANGE:no rodapé. Ex.:feat(api)!: trocar /v1/users por /v2/users. - Um commit = uma intenção. Não misture
featcomrefactorno mesmo commit.
Use git commit -m "feat(auth): adicionar login (#12)" direto na linha de comando — é mais rápido que abrir editor e a mensagem fica curta na marra.
🌿 3. Git Flow + Merge Requests
Branches permanentes
main— espelho do que está em produção. Protegida: ninguém faz push direto.develop— integração contínua do sprint. Toda feature finalizada faz merge aqui antes de ir pramain.
Branches de trabalho
O dashboard valida o nome da branch contra:
^(feature|feat|fix|bugfix|hotfix|docs|doc|style|refactor|test|chore|perf|ci|build|release)/
Ou seja: o nome deve começar com um desses prefixos seguido de barra:
Convenção de nome: tipo/descricao-curta-em-kebab-case. Ex.: feature/login-com-google, fix/validar-email-no-cadastro, docs/readme-setup.
Fluxo padrão de uma feature
git checkout develop && git pull
git checkout -b feature/login-com-google
# … codifique, commite com Conventional Commits …
git commit -m "feat(auth): adicionar provedor Google OAuth (#12)"
git commit -m "test(auth): cobrir fluxo de callback (#12)"
git push -u origin feature/login-com-google
# Abrir Merge Request no GitLab → develop
8 critérios obrigatórios do Merge Request
O dashboard pontua cada MR pelos mesmos checklists:
- 1Título descritivo, mais de 3 palavras, sem
WIP:ouDraft:. Use o mesmo formato do commit principal. - 2Descrição substantiva (mais de 40 caracteres) com seções
## O que foi feitoe## Como testar. - 3Linkado bidirecionalmente com a issue. Vale qualquer uma das duas formas (ou as duas):
•#Nda issue dentro da descrição do MR — ideal:Closes #N, que fecha a issue automaticamente quando o MR for mergeado.
• Link do MR dentro da descrição da issue — cole a URL completa, ex.:https://git.inteli.edu.br/…/-/merge_requests/42.
Sem esse vínculo, o dashboard não consegue rastrear "qual MR entregou qual issue" e o sprint perde pontuação de rastreabilidade. - 4Reviewer designado antes de pedir merge — campo Reviewers.
- 5Branch de origem padronizada (
feature/,fix/,docs/, etc.). Branchesdesenvolvimento-fulanosão reprovadas. - 6Labels definidas no MR (
FEATURE,BUG FIX,DOCUMENTATION). - 7Vinculado a milestone (a mesma sprint da issue de origem).
- 8Revisão com comentários (mais de 0 notas). MR aprovado num clique não conta como revisão real.
Template mínimo de MR (cole na descrição)
Closes #<número da issue>
## O que foi feito
- <ponto principal>
- <ponto secundário>
## Como testar
1. <passo>
2. <passo>
3. <resultado esperado>
## Checklist
- [ ] Testes unitários passando
- [ ] Sem warnings de lint
- [ ] Documentação atualizada (se aplicável)
O autor não revisa o próprio MR. MR aberto, mergeado e fechado pela mesma pessoa em 5 minutos é sinal de alerta no dashboard.
🏁 4. Sprint, Kanban & Scrum no Inteli
Cadência: 5 sprints de 2 semanas cada. Cada sprint é uma milestone no GitLab (Sprint 01 … Sprint 05). Toda issue e todo MR obrigatoriamente apontam para um milestone.
Quadro Kanban — 6 colunas obrigatórias
Espelhe os labels do GitLab Board:
📥 open
Issue recém-criada — ainda sem priorização nem refinamento. Entrada do pipeline.
📋 backlog
Issue refinada (DoR atendido) e priorizada para alguma sprint. Pronta para puxar quando o sprint começar.
🛠️ doing
Em desenvolvimento ativo. WIP limit: 1 por dev. Branch feature/… aberta.
⏳ waiting review
MR aberto e aguardando alguém ser designado como revisor (ninguém puxou ainda).
👀 review
Reviewer designado e revisão em andamento. O autor não revisa o próprio MR.
✅ closed
MR mergeado em develop + DoD 100% verde. Issue fechada pelo MR (Closes #N).
Toda issue é criada em open e segue o fluxo da esquerda para a direita: open → backlog → doing → waiting review → review → closed. Pular colunas (ex.: criar direto em doing) é anti-padrão e o dashboard penaliza.
🐞 Bug encontrado em review — protocolo
Quando uma issue está em review e o revisor identifica um bug, não empurre o trabalho de volta no mesmo card. Siga este protocolo para preservar rastreabilidade:
- 1Aplicar label
BUGna issue original que está em review (ela permanece emreview, agora marcada como contendo bug detectado). - 2Criar uma nova issue para tratar o bug. O título da nova issue deve conter a cerquilha com o número da issue original. Ex.:
Corrigir validação de e-mail reportada em #42. - 3Vincular a nova issue ao mesmo MR onde a revisão detectou o bug (a correção entra no mesmo merge — não abra outro MR).
- 4Aplicar label
BUGtambém na nova issue, junto com as labels usuais (tamanho, prioridade, milestone). - 5Fechamento conjunto: quando a nova issue (do bug) for concluída e revisada com sucesso, ambas — a original e a do bug — passam para
closedao mergeio do MR compartilhado.
O dashboard precisa contar o bug como trabalho extra — se você "esconder" a correção dentro da issue original, o sprint parece mais saudável do que é e o time perde sinal sobre qualidade. A nova issue com #N no título cria o histórico: "esta issue existe porque a issue #N teve um bug em review".
🚧 Impedimento no desenvolvimento — label BLOCK
Se você está em doing e algo externo trava o trabalho (dependência de outro time, ambiente fora, decisão pendente, API quebrada, etc.), não mantenha o card em silêncio:
- 1Aplicar label
BLOCKna issue imediatamente. - 2Adicionar um comentário na issue (campo Comments — não editar a descrição) explicando o porquê do block: o que está bloqueando, de quem/do quê depende, e desde quando.
- 3Levar para a próxima Daily — impedimentos são uma das 3 perguntas obrigatórias do stand-up.
- 4Adicionar novo comentário quando o impedimento for resolvido (ex.: "Desbloqueado em 21/05 — time de infra liberou o acesso ao banco staging") e remover a label
BLOCK.
A descrição da issue é o contrato (objetivo, DoR, DoD) — ela não deve mudar por motivo de bloqueio. Comentários são histórico vivo: o dashboard e o time leem a thread para entender por que o card travou e quando saiu do bloqueio. Editar a descrição apaga esse rastro.
Card parado em doing por mais de 3 dias sem a label BLOCK (ou com a label mas sem comentário justificando) é interpretado pelo dashboard como sobrecarga ou abandono. Com a label + comentário, o tempo parado é justificado e o Scrum Master sabe onde atuar.
Cerimônias Scrum (versão Inteli)
| Cerimônia | Quando | Duração | Saída esperada |
|---|---|---|---|
| Sprint Planning | Início do sprint (segunda), 14h às 18h | 4h | Backlog priorizado, issues com DoR/DoD/labels/assignee/milestone, time compromissado. |
| Daily Stand-up | Todo dia, 15 min | 15 min máx. | Respondeu 3 perguntas: o que fiz ontem · o que farei hoje · impedimentos. Movimentou cards do Kanban. |
| Sprint Review | Última sexta do sprint | ~ 30 min | Demo do incremento entregue (deploy / vídeo / live demo). Stakeholders convidados. |
| Sprint Retrospective | Após a Review | ~ 30 min | 3 listas: continuar · parar · começar. Pelo menos 1 ação prática para a próxima sprint. |
| Refinamento (Backlog Grooming) | Meio do sprint, opcional | ~ 30 min | Issues do próximo sprint estimadas, com DoR atendido. |
Papéis (rotativos a cada sprint)
Para o time aprender todos:
- Product Owner (PO): dono do backlog, prioriza, garante que issues têm DoR.
- Scrum Master (SM): facilita cerimônias, remove impedimentos, defende o time.
- Dev Team: implementa, revisa, testa. Auto-organizado.
O que o Dashboard mede automaticamente
- Burndown Chart — trabalho restante vs ideal (descobre se vão entregar).
- Cumulative Flow — engrossamento por coluna = gargalo (descobre onde o trabalho trava).
- Throughput semanal — issues fechadas por semana (consistência mais que pico).
- Lead Time — dias entre criar e fechar uma issue (verde até 3 / âmbar 4–7 / vermelho mais de 7).
- WIP — issues abertas por dia (descobre sobrecarga).
- Cycle Time de MR — dias entre abrir e mergear MR (revisão lenta = sinal de alerta).
- Matriz Autor × Revisor — quem revisa quem (revela "quem nunca revisa ninguém").
- Frequência de commits por dia — distribuído mais que commit storm na sexta da entrega.
Concentrar 80% dos commits no último dia do sprint. O dashboard detecta e marca o sprint como insuficiente, independente do volume entregue. Distribua o trabalho ao longo das 2 semanas.
📌 Checklist final — antes de fechar a sprint
- ✓Toda issue da sprint nasceu em
opene seguiu o fluxo do Kanban sem pular colunas. - ✓Toda issue da sprint tem milestone, assignee, labels, DoD e DoR preenchidos.
- ✓Todos os commits seguem Conventional Commits +
#Nda issue. - ✓Branches usam prefixo padrão (
feature/,fix/,docs/, etc.) em kebab-case. - ✓Todo MR tem reviewer, milestone, labels, descrição com "O que foi feito" e "Como testar", e pelo menos 1 comentário de revisão real.
- ✓Cards do Kanban movidos diariamente — sem cards parados em
doingouwaiting reviewpor mais de 3 dias. - ✓Daily, Review e Retrospective aconteceram e geraram saídas concretas.
- ✓Sem commit storm: commits distribuídos ao longo das 2 semanas.