7 min leitura • Guide 793 of 877
Spikes Técnicas e Tarefas de Pesquisa
Spikes respondem perguntas antes de você investir em soluções. O GitScrum ajuda equipes a rastrear trabalho de pesquisa e capturar aprendizados para referência futura.
Quando Fazer Spike
Identificando Necessidade
QUANDO FAZER UMA SPIKE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FAÇA SPIKE QUANDO: │
│ ───────────────── │
│ │
│ VIABILIDADE DESCONHECIDA: │
│ "Conseguimos fazer isso?" │
│ "Essa tecnologia funciona para nosso caso?" │
│ "Isso é tecnicamente possível?" │
│ │
│ ESTIMATIVA INCERTA: │
│ "Não temos ideia quanto tempo vai levar" │
│ "Equipe nunca fez isso antes" │
│ "Pode ser 2 dias ou 2 semanas" │
│ │
│ MÚLTIPLAS OPÇÕES: │
│ "Devemos usar Biblioteca A ou B?" │
│ "Qual a melhor abordagem?" │
│ "Precisamos comparar opções" │
│ │
│ RISCO DE INTEGRAÇÃO: │
│ "Isso vai funcionar com nosso sistema existente?" │
│ "Como conectamos a essa API?" │
│ "Qual o impacto de performance?" │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ NÃO FAÇA SPIKE QUANDO: │
│ ────────────────────── │
│ ❌ Equipe já sabe a resposta │
│ ❌ É um tipo de trabalho familiar │
│ ❌ Spike levaria tanto tempo quanto só fazer │
│ ❌ Paralisia por análise - só tente │
└─────────────────────────────────────────────────────────────┘
Estrutura de Spike
Criando Spikes Efetivas
TEMPLATE DE SPIKE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SPIKE: Abordagem de Geração de PDF │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ TIPO: Spike Técnica ││
│ │ TIME BOX: 2 dias ││
│ │ RESPONSÁVEL: @alex ││
│ │ ││
│ │ PERGUNTA A RESPONDER: ││
│ │ Qual biblioteca de PDF devemos usar para geração ││
│ │ de faturas que suporte nossos requisitos? ││
│ │ ││
│ │ CONTEXTO: ││
│ │ • Precisamos gerar faturas com tabelas, logos ││
│ │ • Deve suportar múltiplos idiomas (RTL incluso) ││
│ │ • Alvo: < 2 segundos por documento ││
│ │ • Volume: ~1000 documentos/dia ││
│ │ ││
│ │ CRITÉRIOS DE SUCESSO: ││
│ │ ☐ Recomendação com justificativa ││
│ │ ☐ Prova de conceito com fatura exemplo ││
│ │ ☐ Benchmarks de performance ││
│ │ ☐ Estimativa para implementação completa ││
│ │ ││
│ │ OPÇÕES A EXPLORAR: ││
│ │ 1. PDFKit (client-side) ││
│ │ 2. Puppeteer (headless Chrome) ││
│ │ 3. WeasyPrint (Python) ││
│ │ 4. wkhtmltopdf ││
│ │ ││
│ │ OUTPUT: ││
│ │ Documento com descobertas linkado a esta tarefa ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ELEMENTOS CHAVE: │
│ • Pergunta clara (não exploração vaga) │
│ • Time box (previne rabbit holes) │
│ • Critérios de sucesso (saber quando terminou) │
│ • Output esperado (documento, protótipo, estimativa) │
└─────────────────────────────────────────────────────────────┘
Tipos de Spike
CATEGORIAS DE SPIKE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SPIKE TÉCNICA: │
│ ────────────── │
│ Explorar abordagem técnica ou viabilidade │
│ │
│ Exemplos: │
│ • "Podemos usar GraphQL com nossa stack atual?" │
│ • "Como integramos com API do Salesforce?" │
│ • "Qual a melhor estratégia de caching?" │
│ │
│ Output: Documento técnico, protótipo, recomendação │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SPIKE FUNCIONAL: │
│ ──────────────── │
│ Explorar necessidades ou requisitos de usuário │
│ │
│ Exemplos: │
│ • "Como usuários esperam que busca funcione?" │
│ • "Qual workflow faz sentido para aprovações?" │
│ │
│ Output: Mockups, fluxos de usuário, requisitos refinados │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ SPIKE DE ARQUITETURA: │
│ ───────────────────── │
│ Decisões de design de sistema │
│ │
│ Exemplos: │
│ • "Monolito ou microserviços para este caso?" │
│ • "Como estruturar comunicação entre serviços?" │
│ │
│ Output: Diagrama de arquitetura, ADR, trade-offs │
└─────────────────────────────────────────────────────────────┘
Conduzindo Spikes
Durante a Pesquisa
EXECUÇÃO DE SPIKE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FASE 1: SETUP (2-4 horas) │
│ ───────────────────────── │
│ • Revisar pergunta e critérios de sucesso │
│ • Configurar ambiente de teste │
│ • Coletar documentação das opções │
│ • Planejar o que testar │
│ │
│ FASE 2: EXPERIMENTAÇÃO (60% do tempo) │
│ ───────────────────────────────────── │
│ • Hands-on com cada opção │
│ • Documentar enquanto experimenta │
│ • Anotar surpresas e bloqueios │
│ • Criar protótipos mínimos │
│ │
│ FASE 3: ANÁLISE (20% do tempo) │
│ ───────────────────────────── │
│ • Comparar opções lado a lado │
│ • Identificar prós e contras │
│ • Formar recomendação │
│ • Estimar esforço de implementação │
│ │
│ FASE 4: DOCUMENTAÇÃO (10% do tempo) │
│ ─────────────────────────────────── │
│ • Escrever relatório da spike │
│ • Preparar apresentação para equipe │
│ • Criar tarefas de follow-up │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DICAS: │
│ • Documente ENQUANTO trabalha, não depois │
│ • Código de spike é descartável - não polish │
│ • Foco na pergunta, evite distrações │
│ • "Não consegui determinar" é resposta válida │
└─────────────────────────────────────────────────────────────┘
Documentando Resultados
Output da Spike
RELATÓRIO DE SPIKE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ # Spike: Geração de PDF para Faturas │
│ │
│ ## Resumo Executivo │
│ Recomendamos Puppeteer para geração de PDF. │
│ │
│ ## Pergunta │
│ Qual biblioteca usar para gerar faturas PDF? │
│ │
│ ## Opções Avaliadas │
│ │
│ | Opção | Prós | Contras | │
│ |------------|-------------------|-------------------| │
│ | PDFKit | Simples, rápido | Layout limitado | │
│ | Puppeteer | HTML→PDF, flexível| Mais pesado | │
│ | WeasyPrint | CSS completo | Python, instalação| │
│ | wkhtmltopdf| Consolidado | Menos maintained | │
│ │
│ ## Benchmarks │
│ │
│ | Biblioteca | Tempo/doc | Memória | Qualidade | │
│ |-------------|-----------|---------|-----------| │
│ | Puppeteer | 1.2s | 200MB | Excelente | │
│ | PDFKit | 0.3s | 50MB | Boa | │
│ | WeasyPrint | 0.8s | 100MB | Excelente | │
│ │
│ ## Recomendação │
│ Puppeteer porque: │
│ • Permite usar HTML/CSS que já conhecemos │
│ • Renderização pixel-perfect │
│ • Suporte RTL out of the box │
│ • Performance dentro do requisito (< 2s) │
│ │
│ ## Riscos Identificados │
│ • Uso de memória em picos de volume │
│ • Necessidade de Chrome headless em produção │
│ │
│ ## Esforço Estimado │
│ • Setup inicial: 2 dias │
│ • Template de fatura: 3 dias │
│ • Integração com sistema: 3 dias │
│ • Total: ~2 sprints │
│ │
│ ## Próximos Passos │
│ 1. Criar epic para implementação │
│ 2. Setup de infraestrutura (Chrome headless) │
│ 3. Desenvolver templates │
└─────────────────────────────────────────────────────────────┘
Métricas de Spike
| Métrica | O que Mede | Meta |
|---|---|---|
| % time-box respeitado | Disciplina | 100% |
| % com recomendação clara | Efetividade | > 90% |
| Accuracy de estimativa pós-spike | Qualidade | Melhor que sem spike |