Spikes, PoCs e Adoção de Novas Ferramentas
Novas ferramentas Python - orquestradores, bancos de dados vetoriais, frameworks - precisam de spikes e PoCs disciplinados antes da adoção em toda a frota. Limites de tempo, critérios escritos e resultados de ADR evitam desenvolvimento impulsionado por currículo e surpresas na produção.
Receita
Cartão de receita de referência rápida - pronto para copiar e colar.
# Carta de Spike
**Questão:** O Polars pode reduzir o tempo de ETL em 50% no mart de pedidos?
**Limite de tempo:** 3 dias (termina sexta-feira EOD)
**Responsável:** @data-eng
**Sucesso:** tempo de execução do job de staging < 12 min (baseline 25 min)
**Não-metas:** cutover de produção, refatoração completa
**Saída:** README em `spikes/2026-07-polars/` + rascunho de ADR de recomendaçãoQuando usar isso:
- RFC com questão em aberto
- Demonstração do fornecedor parece incrível
- Equipe quer substituir Celery/Airflow/xyz
- Estimativa bloqueada por desconhecido
Exemplo de Trabalho
# spikes/2026-07-polars/README.md
## Resultado: Adotar para novos marts; não reescrever legado ainda
| Critério | Atendido? |
| Melhoria de 50% no tempo de execução | sim (22→10 min) |
| Equipe pode manter | sim (2 engenheiros treinados) |
| Custo de operação aceitável | sim (mesmo tamanho de job K8s) |
| Modos de falha compreendidos | parcial - documentar pico de memória em joins largos |
## Próximos passos
- ADR-021 adota Polars para novos pipelines
- Ticket: adicionar Polars ao cookiecutter da plataforma de dados
- PoC de hardening NÃO concluído - produção precisa de ticket de observabilidade# spikes/2026-07-polars/benchmark.py - script de evidência mínima
import time
import polars as pl
start = time.perf_counter()
df = pl.scan_parquet("sample.parquet").group_by("tenant_id").len().collect()
print(f"rows={df.height} elapsed={time.perf_counter() - start:.2f}s")O que isso demonstra:
- A questão da carta é falseável
- A saída do spike é um README curto com recomendação de decisão
- PoC explicitamente não está pronto para produção
- ADR segue para adoção/rejeição em toda a frota
Mergulho Profundo
Como Funciona
- Spike - Aprendizado; código descartável OK na pasta
spikes/. - PoC - Demonstra valor para stakeholders; ainda não tem SLO de produção.
- Piloto - Um serviço em produção com flags e runbook - ponte para adoção.
- Adoção - Cookiecutter, CI, treinamento, runbook de plantão atualizado.
- Rejeição - ADR documenta por que não foi escolhido - evita novo debate mensalmente.
Dimensões de Avaliação
| Dimensão | Pergunta |
|---|---|
| Operabilidade | Plantão às 3 da manhã? |
| Segurança | Histórico de CVE, cadeia de suprimentos |
| Contratação | Podemos recrutar a habilidade? |
| Custo de saída | Severidade do lock-in |
| Adequação | Compatibilidade com Python 3.14 |
Notas Python
Pasta spikes/ ignorada pelo git para dados grandes; comitar apenas README + scriptsArmadilhas
- Spike se torna produção - Sem testes ou runbook. Correção: Gate de checklist de hardening para piloto.
- Sem limite de tempo - Pesquisa infinita. Correção: Fim no calendário; apresentar o que foi aprendido.
- Critérios de sucesso após resultados - Viés. Correção: Critérios na carta antes do código.
- Adotar porque a demo é brilhante - Carga operacional ignorada. Correção: Aprovação do operador na tabela de avaliação.
- Rejeitar sem ADR - Rejulgar trimestralmente. Correção: ADR curto "rejeitado Polars 2024; substituído por ADR-021."
Alternativas
| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Comprar SaaS | Capacidade de commodity | Diferenciador principal |
| Não fazer nada ADR | Spike mostra ganho insuficiente | Substituição de emergência de CVE |
| Suporte POC do fornecedor | Grande negócio | Pequeno experimento |
| Ferramenta interna para sempre em spike | Nunca - decidir adotar/rejeitar |
FAQs
Spike vs PoC?
Spike responde a pergunta técnica; PoC demonstra valor do produto - pode ser mais longo, mas ainda com limite de tempo.
Quem aprova a adoção?
Tech lead + plataforma + segurança para ferramentas de infra; EM para impacto no cronograma.
Spikes de ferramentas LLM?
Incluir conjunto de avaliação, modelo de custo e residência de dados antes do piloto.
Valor de spike falho?
Alto - documentar por que não; economiza tempo futuro.
Múltiplos spikes em paralelo?
Limitar WIP por squad; spikes contam para planejamento de capacidade.
Saúde do open source?
Verificar bus factor, cadência de lançamento, resposta a CVE na tabela de avaliação.
Substituir uv?
Exigiria evidência extraordinária; spike compara tempo de CI e compatibilidade de lock.
PoC em produção?
Apenas piloto com flag, monitoramento de SLO e rollback - não sombra silenciosa para sempre.
Código de spike mesclado?
Apenas padrões/testes mesclados; scripts descartáveis permanecem em spikes/ ou são excluídos.
Link para estimativa?
Estimativa e Risco usa resultados de spikes.
Relacionados
- Registros de Decisão de Arquitetura (ADRs) - registro de adoção/rejeição
- Tomada de Decisão Técnica - opções classificadas
- Realizando Revisões de Design - resultados de spikes em RFC
- Governança de Dependência e Cadeia de Suprimentos - aprovação de nova dependência
- Priorizando Plataforma e Dívida Técnica - capacidade para spikes
Versões de Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.