Todo sistema legado começou como sistema novo. Ele não ficou ruim por incompetência de quem o escreveu — ficou ruim porque a empresa mudou dez vezes desde então e ninguém teve orçamento para acompanhar.

O que trava a modernização quase nunca é técnico. É que o sistema funciona. Ele sustenta a operação todo dia, e substituir algo que funciona por algo que talvez funcione é uma aposta que ninguém quer assinar.

Por que a reescrita do zero costuma falhar

O plano é sempre o mesmo: uma equipe constrói o novo enquanto a outra mantém o antigo, e num dia futuro a chave é virada.

Falha por três motivos previsíveis.

O alvo se move. O sistema antigo não congela — ele continua recebendo correções e funcionalidades novas, porque a empresa não para. A equipe do novo persegue um alvo que anda.

O comportamento real não está documentado. Ninguém sabe exatamente o que o sistema faz. Sabe-se o que ele deveria fazer. A diferença entre as duas coisas são anos de exceções, ajustes e regras que alguém acrescentou numa segunda-feira e não contou para ninguém — e que a operação hoje depende.

O valor só aparece no fim. Dois anos de custo sem nada em produção. Na primeira crise de orçamento, o projeto é o candidato natural ao corte. E aí a empresa fica com o sistema antigo e com o custo já gasto.

O primeiro passo não é escrever código

É ler.

Engenharia reversa documentada significa pegar o sistema que está rodando e transformar o comportamento dele em texto que uma pessoa consegue conferir: quais operações existem, quem pode executar cada uma, que regra se aplica, o que acontece nos casos de erro.

A fonte é o código em produção, não a documentação antiga. Documentação desatualizada descreve a intenção de alguém em 2014. O código descreve o que a empresa realmente faz hoje — inclusive os comportamentos que ninguém lembra de ter pedido, mas que a operação já incorporou.

Esse trabalho tem um efeito colateral valioso mesmo que a modernização seja adiada: o conhecimento sai da cabeça de uma pessoa e passa para um documento. Se essa pessoa sair da empresa amanhã, o risco deixou de ser existencial.

Já fizemos isso em escala: numa engenharia reversa nossa, mapeamos e documentamos 559 operações de API e reconferimos 3.905 afirmações da documentação, uma a uma, contra o código — corrigindo as que não batiam.

A substituição acontece por partes

Com o comportamento descrito, dá para substituir por fatias em vez de por inteiro.

Escolhe-se um módulo com fronteira clara — folha de pagamento, emissão de nota, cadastro de produto. Constrói-se o substituto contra a especificação que saiu da engenharia reversa. Coloca-se no ar recebendo o tráfego real, com o antigo ainda de pé. Compara-se o resultado dos dois. Quando o novo prova que faz o mesmo, o antigo daquele pedaço é desligado.

Repete-se. Sem dia da virada, sem aposta única.

A vantagem econômica é tão grande quanto a técnica: cada módulo migrado já entrega o benefício dele. Se o orçamento acabar no meio, você tem metade do sistema modernizado funcionando — não um projeto abandonado.

Por onde começar

Não é pelo módulo mais fácil, nem pelo mais bonito. É pelo que responde melhor a uma destas três perguntas:

  • O que mais dói hoje? Se o gargalo é a emissão de nota, cada semana com o módulo antigo custa dinheiro visível.
  • O que trava o resto? Módulos de que outros dependem destravam a fila inteira quando saem primeiro.
  • O que é mais arriscado deixar como está? Componente que roda em tecnologia sem suporte de segurança é risco crescendo sozinho, sem nada ter mudado.

Quando modernizar não é a resposta

Se o processo que o sistema executa for commodity — algo que toda empresa do setor faz igual — comprar pronto costuma ganhar de qualquer modernização.

O critério é este: o jeito como você opera é vantagem competitiva ou é só o jeito como foi feito? Se for vantagem, software sob medida se paga. Se não for, você está pagando para manter uma peculiaridade que não gera valor, e o dinheiro rende mais em outro lugar.

Essa pergunta se responde no diagnóstico, antes de contratar construção. Um fornecedor que nunca diz "não modernize" ou "compre pronto" está respondendo à pergunta errada.


Como aplicamos isso: engenharia reversa documentada, migração módulo a módulo com o sistema antigo no ar até a comparação provar equivalência. Detalhe da oferta em modernização de legados.