Reescrever sistema é sedutor porque o sistema novo ainda não tem usuários, bugs históricos nem decisões antigas. É fácil amar uma casa enquanto ela ainda está no render 3D.
Três motivos que costumam ser reais
Primeiro: a tecnologia bloqueia uma capacidade essencial e não existe saída incremental. Segundo: risco de segurança ou suporte tornou a plataforma inviável. Terceiro: o custo operacional e de contratação está claramente maior que o custo de migração. O resto merece suspeita. “O código está feio”, “o time gosta mais de outra linguagem”, “agora todo mundo usa X”, “vai ficar mais moderno” e “depois a gente termina rápido” são frases que já financiaram muita reescrita eterna.
Migração precisa de estratégia de estrangulamento
Se possível, migre por fronteira: módulo, serviço, rota, cliente, fluxo. Mantenha o produto entregando valor enquanto a nova base cresce. Big bang é um nome honesto para um plano.
Calcule o custo de oportunidade
Durante a migração, o mercado continua. Concorrente lança, cliente pede, bug aparece. Cada mês investido em fundação é um mês não investido em outra coisa. Stack nova não apaga decisões ruins. Se vocês não entenderem por que o sistema antigo ficou ruim, o novo só vai repetir a história com sintaxe mais elegante.