7 min leitura • Guide 145 of 877
Base Conhecimento Desenvolvedor
Conhecimento trancado em cabeças pessoas é perdido quando saem, indisponível quando estão ocupados, e força explicações repetidas. Base conhecimento desenvolvedor captura decisões, padrões, guias troubleshooting, e sabedoria institucional, tornando equipe mais resiliente e eficiente.
Valor Base Conhecimento
| Conhecimento Escondido | Conhecimento Documentado |
|---|---|
| Pergunte Sarah (se disponível) | Respostas auto-serviço |
| Repetir explicações | Escreva uma vez, leia muitas |
| Perdido quando pessoas saem | Persiste permanentemente |
| Conhecimento tribal | Entendimento compartilhado |
| Onboarding lento | Ramp-up rápido |
Estrutura Base Conhecimento
Organização Recomendada
ESTRUTURA BASE CONHECIMENTO DESENVOLVEDOR
═════════════════════════════════════════
📁 COMEÇANDO
├── README - Comece aqui
├── Guia início rápido
├── Configuração ambiente
├── Primeira contribuição
└── Quem perguntar para quê
📁 ARQUITETURA
├── Visão geral sistema
├── Architecture Decision Records (ADRs)
├── Mapa serviços
├── Fluxos dados
├── Escolhas tecnologia
└── Padrões design
📁 DESENVOLVIMENTO
├── Padrões codificação
├── Workflow Git
├── Diretrizes code review
├── Estratégia testes
├── Pipeline CI/CD
└── Ambiente desenvolvimento
📁 OPERAÇÕES
├── Guia deployment
├── Monitoramento e alertas
├── Resposta incidentes
├── Runbooks
├── Procedimentos on-call
└── Visão geral infraestrutura
📁 TROUBLESHOOTING
├── Problemas comuns
├── Guias debug
├── FAQ
├── Mensagens erro explicadas
└── Problemas ambiente
📁 REFERÊNCIA
├── Glossário
├── Contatos equipe
├── Serviços externos
├── Contas vendor
└── Links recursos
Tipos Conteúdo Chave
Architecture Decision Records
TEMPLATE ARCHITECTURE DECISION RECORD
═════════════════════════════════════
# ADR-001: Usar PostgreSQL para Database Primário
## Status
Aceito (2024-01-15)
## Contexto
Precisamos escolher database primário para nossa aplicação.
Requisitos incluem:
- Consistência forte
- Queries complexas
- Suporte JSON
- Confiabilidade comprovada
## Decisão
Usar PostgreSQL 15 como nosso database primário.
## Consequências
Positivo:
- Ecossistema forte e ferramentas
- Suporte JSON para schemas flexíveis
- Comprovado em escala
- Familiaridade equipe
Negativo:
- Não ideal para time-series (consideração futura)
- Scaling horizontal mais complexo que NoSQL
## Alternativas Consideradas
- MySQL: Menos suporte JSON
- MongoDB: Preocupações consistência eventual
- CockroachDB: Exagero para escala atual
## Relacionado
- ADR-015: Solução dados time-series
- Doc visão geral arquitetura
Guias Troubleshooting
TEMPLATE GUIA TROUBLESHOOTING
══════════════════════════════
# Problemas Conexão Database
## Sintomas
- Erro: "Connection refused"
- Erro: "Too many connections"
- Tempos resposta query lentos
## Verificações Rápidas
### Connection Refused
1. PostgreSQL está rodando?
docker ps | grep postgres
2. Pode conectar localmente?
psql -h localhost -U postgres
3. Variáveis ambiente definidas?
echo $DATABASE_URL
### Too Many Connections
1. Verificar contagem conexões:
SELECT count(*) FROM pg_stat_activity;
2. Matar conexões idle:
Ver runbook "Reset connections"
3. Verificar vazamentos conexão no código
### Queries Lentas
1. Habilitar logging query:
SET log_statement = 'all';
2. Usar EXPLAIN ANALYZE:
EXPLAIN ANALYZE SELECT ...
3. Verificar doc queries lentas comuns
## Escalação
Se nenhum acima funcionar:
1. Postar em #db-help com detalhes erro
2. Pager DBA on-call se produção
3. Ver runbook resposta incidentes
Runbooks
TEMPLATE RUNBOOK
════════════════
# Deploy Hotfix para Produção
## Propósito
Deployment emergência de correção crítica fora release normal.
## Pré-requisitos
- [ ] Correção merged para main
- [ ] Testes passando
- [ ] Duas aprovações no PR
- [ ] Engenheiro on-call disponível
- [ ] Canal incidente aberto
## Passos
### 1. Notificar Equipe (2 min)
Postar em #engineering:
"🚨 Iniciando deploy hotfix: [breve descrição]"
### 2. Criar Release (5 min)
git checkout main
git pull origin main
git tag -a hotfix-YYYY-MM-DD-description
git push origin hotfix-YYYY-MM-DD-description
### 3. Deploy (10 min)
# Trigger deploy
./scripts/deploy-production.sh
# Monitorar logs
./scripts/tail-production-logs.sh
### 4. Verificar (5 min)
- [ ] Health check passando
- [ ] Feature afetada funcionando
- [ ] Sem spike erro no monitoramento
- [ ] Confirmar com reporter
### 5. Notificar Completo
Postar em #engineering:
"✅ Hotfix deployed e verificado"
## Rollback
Se problemas ocorrerem:
./scripts/rollback-production.sh
## Pós-Deployment
- [ ] Atualizar timeline incidente
- [ ] Agendar post-mortem se incidente
- [ ] Atualizar changelog
Construindo Base Conhecimento
Configuração Inicial
PASSOS CONFIGURAÇÃO BASE CONHECIMENTO
═════════════════════════════════════
PASSO 1: Escolher Plataforma
─────────────────────────────────────
Opções:
├── GitScrum NoteVault (integrado)
├── GitHub/GitLab Wiki (próximo ao código)
├── Notion (flexível, pesquisável)
├── Docs as code (no repositório)
└── Confluence (padrão enterprise)
Considerar:
├── Qualidade pesquisa
├── Facilidade edição
├── Histórico versões
├── Controle acesso
├── Integração com ferramentas
PASSO 2: Criar Estrutura
─────────────────────────────────────
Comece com 5 seções core:
├── Getting Started
├── Architecture
├── Development
├── Operations
├── Troubleshooting
PASSO 3: Semear Conteúdo Inicial
─────────────────────────────────────
Mais valioso primeiro:
├── Configuração ambiente (bloqueia novos hires)
├── Processo deployment (caminho crítico)
├── FAQ problemas comuns (economiza tempo)
├── Decisões arquitetura chave (contexto)
└── Contatos equipe (quem perguntar)
PASSO 4: Estabelecer Workflow
─────────────────────────────────────
├── Corrigir problema → Atualizar docs
├── Responder pergunta duas vezes → Documentar
├── Atrito novo hire → Documentar solução
├── Revisão trimestral seções
└── Atribuir donos seção
Mantendo Atual
MANUTENÇÃO BASE CONHECIMENTO
════════════════════════════
CONTÍNUO:
├── Corrigir problema → Atualizar doc relevante
├── Responder pergunta → Adicionar ao FAQ
├── Encontrar info desatualizada → Atualizar
├── Nova ferramenta/processo → Documentar
└── Alguém sai → Capturar conhecimento
SEMANAL:
├── Revisar conteúdo adicionado recentemente
├── Verificar links quebrados
├── Responder feedback docs
└── Atualizar áreas mudadas recentemente
MENSAL:
├── Revisar analytics pesquisa
├── Identificar gaps de perguntas
├── Arquivar conteúdo obsoleto
├── Verificar propriedade seção
└── Revisão feedback onboarding
TRIMESTRAL:
├── Auditoria completa seção
├── Remover conteúdo stale
├── Atualizar screenshots/exemplos
├── Refresh docs arquitetura
└── Sessão compartilhamento conhecimento
Integração GitScrum NoteVault
Usando NoteVault
NOTEVAULT PARA BASE CONHECIMENTO
═══════════════════════════════
ESTRUTURA:
├── Criar espaços para cada seção
├── Linkar notas para tarefas/projetos
├── Tag para descobribilidade
└── Pin notas importantes
LINKAGEM:
├── Tarefa → Documentação relacionada
├── Projeto → Notas arquitetura
├── Incidentes → Runbooks
└── Decisões → ADRs
PESQUISA:
├── Pesquisa full-text através notas
├── Filtragem baseada tag
├── Atividade recente
└── Descoberta conteúdo linkado
WORKFLOW:
├── Criar durante trabalho
├── Atualizar após incidentes
├── Referenciar em tarefas
├── Revisar em onboarding
Melhores Práticas
Para Bases Conhecimento
- Documente decisões, não apenas fatos — Por que importa
- Mantenha próximo ao código — Fácil atualizar
- Atualize continuamente — Não rewrites grandes
- Torne pesquisável — Descoberta é chave
- Atribua donos — Alguém responsável
Anti-Padrões
ERROS BASE CONHECIMENTO:
✗ Escrever tudo de uma vez
✗ Nunca atualizar
✗ Requisitos muito formais/polidos
✗ Enterrado em local difícil encontrar
✗ Sem capacidade pesquisa
✗ Sem propriedade
✗ Duplicar através ferramentas
✗ Informação sem contexto