Voltar ao início

Blog · Arquitetura

Sistema legado: reescrever ou não?

Três sinais para decidir, e o caminho do meio: trocar por partes, sem parar o negócio.

0:00
1:01

Todo sistema antigo chega no ponto em que alguém, numa reunião, sugere reescrever tudo do zero. A proposta é sedutora: código limpo, tecnologia nova, nenhum dos remendos de hoje. Às vezes é a decisão certa. Muitas vezes, não.

O problema raramente é a ideia. É o caminho. Antes de decidir, vale entender o que exatamente está doendo, e se reescrever é mesmo o remédio para essa dor.

Três sinais que importam

Ninguém mais entende o código. Quem escreveu saiu, a documentação não existe, e qualquer mudança começa com dias de investigação.

Cada mudança pequena quebra outra coisa. É o sintoma de um sistema sem testes e com partes muito presas umas às outras. O time passa a ter medo de mexer, e as entregas ficam cada vez mais lentas.

A tecnologia não tem mais suporte. A versão da linguagem, do framework ou do banco parou de receber correções de segurança, e está cada vez mais difícil achar gente que saiba mexer.

Para avaliar

  • Quanto tempo leva para colocar uma mudança pequena no ar?
  • Quantas pessoas do time conseguem mexer em cada parte do sistema?
  • A tecnologia ainda recebe correções de segurança?

Com um sinal só, conserte

Reescrever do zero costuma sair mais caro do que parece. Durante meses, o time constrói o sistema novo enquanto o antigo continua rodando e precisando de correções, sem que nada novo chegue para quem usa. Quando o novo fica pronto, as regras do negócio já mudaram, e ele nasce desatualizado.

Com um sinal só, o caminho quase sempre é evoluir o que existe: escrever testes em volta das partes críticas, documentar enquanto investiga, refatorar aos poucos e manter o ritmo de entregas pequenas. É menos glamouroso, e funciona.

Sinal de alerta: um plano de reescrita sem nenhuma entrega no meio do caminho, só uma data de virada no fim.

Rack de servidores iluminado numa sala escura
Foto: Tyler via Unsplash

Com os três sinais, troque por partes

Quando os três sinais aparecem juntos, consertar por dentro já não basta. Mas ainda existe um caminho melhor que a reescrita total: trocar o sistema por partes.

A ideia é escolher um módulo, construir a versão nova ao lado da antiga e colocar na frente um roteador que decide quem atende cada pedido. O tráfego vai mudando aos poucos (10%, metade, tudo) e, se algo der errado, volta para o antigo em minutos. Quando o módulo novo está estável, passa-se ao próximo.

O sistema nunca para, e cada etapa entrega valor sozinha. O antigo vai encolhendo até poder ser desligado. Em engenharia, esse padrão tem nome: strangler fig, a figueira que cresce em volta da árvore antiga até substituí-la.

Por onde começar

  • Pelo módulo que mais dói: o que mais quebra ou mais trava o negócio.
  • Ou pelo mais isolado, para o time aprender o processo com pouco risco.
  • Sempre com testes e monitoramento antes, para comparar o antigo e o novo.

A pergunta certa

Reescrever ou não raramente é a pergunta certa. A pergunta é: qual parte dói mais, e por onde começar? Respondida essa, o resto vira plano.

Mais do blog

Lançamento · leitura de 2 min Apresentamos a Grafaze Certifica Certificados em lote, com a sua marca, que qualquer pessoa consegue conferir. Por enquanto, só para uso interno. Guia · vídeo de 0:42 Quanto custa manter um sistema Construir é uma vez. Manter é todo mês, e esse número precisa vir antes. Integrações · vídeo de 0:47 Conciliação de PIX e boleto O que costuma dar errado, e como fazer cada pagamento encontrar sua cobrança sozinho.