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.
