Modernizar ou reescrever um sistema legado? Como decidir
Todo sistema legado chega num ponto em que a pergunta surge: modernizar o que existe ou jogar fora e reescrever? A resposta intuitiva (“reescreve tudo”) costuma ser a mais cara e arriscada.
Por que reescrever do zero seduz (e decepciona)
Reescrever parece limpo: código novo, sem as gambiarras do passado. Mas você joga fora anos de regras de negócio aprendidas na marra, para de evoluir o produto durante a reescrita e corre o risco de recriar os mesmos problemas com roupa nova.
Quando modernizar é melhor
- O sistema ainda atende ao negócio, mas trava em pontos específicos.
- As regras de negócio são valiosas e difíceis de redocumentar.
- Você não pode parar a operação durante meses.
Quando reescrever se justifica
- A tecnologia base não tem mais suporte nem caminho de evolução.
- O custo de manter já supera o de refazer.
- O produto vai mudar tão radicalmente que pouco se aproveita.
O meio-termo que quase sempre vence
Na maioria dos casos, a melhor resposta é modernização incremental — trocar o sistema por partes, no padrão strangler fig, sem apagão. É assim que fazemos manutenção e modernização de sistemas críticos. Mais sobre o tema em quando sustentar e quando modernizar.
Tem um legado que trava o negócio?
A gente moderniza sistemas críticos por partes, sem parar a operação.