Modernização de sistema legado sem parar a operação
Modernizar sistema legado é substituir as partes que travam a operação sem derrubar o que ainda funciona. O caminho com menos risco é ir por fora, tirando uma função de cada vez do sistema antigo e colocando no novo, em vez de reescrever tudo e trocar num fim de semana. Reescrita completa é o formato que mais falha, porque o sistema antigo carrega anos de regra que ninguém documentou.
O problema não é o sistema ser velho
Sistema legado costuma ser chamado assim como ofensa, e isso atrapalha a decisão. Ele é velho porque funcionou por muito tempo, e continua rodando a operação todo dia.
O que dói é outra coisa, e vale nomear direito antes de propor qualquer reforma.
- As pessoas que sabiam como ele funciona saíram, e a regra de negócio vive no código sem estar escrita em lugar nenhum
- Não dá para integrar com nada, então cada dado novo vira exportação manual
- Uma mudança simples leva semanas, porque ninguém tem confiança de mexer
- O fornecedor encerrou o suporte, ou a versão não recebe mais correção de segurança
- A auditoria começou a pedir controle que o sistema não tem como dar
Por que a reescrita completa costuma falhar
É o caminho que parece mais limpo e é o que mais dá errado. O motivo é quase sempre o mesmo: o sistema antigo acumulou anos de exceção, e boa parte dessas exceções não está escrita em lugar nenhum.
Enquanto a reescrita acontece, a operação continua precisando de mudança no sistema velho, e aí existem dois sistemas para manter com o mesmo time. O prazo escorrega, o novo nasce sem as exceções que ninguém lembrou, e a virada é adiada até alguém desistir.
Quando a reescrita completa é mesmo o caminho, ela precisa ser uma decisão consciente, com o custo do período de dois sistemas orçado desde o começo.
Ir por fora, uma função de cada vez
A alternativa com menos risco é cercar o sistema antigo em vez de atacá-lo de frente. Coloca-se uma camada na frente dele, e cada função nova passa a ser atendida pelo sistema novo, enquanto o resto continua indo para o antigo.
Com o tempo o sistema velho vai ficando com menos responsabilidade, até sobrar pouco o suficiente para desligar sem susto. Nenhum fim de semana de virada, nenhum ponto em que tudo depende de dar certo de primeira.
- Uma camada de entrada decide o que vai para o sistema novo e o que continua no antigo
- A primeira função a sair é a que dói mais e depende menos das outras
- Cada função migrada roda em paralelo por um tempo, com os dois resultados comparados
- O dado continua único, para não existir duas verdades sobre o mesmo cliente
- O sistema antigo só é desligado quando não sobrou nada essencial nele
Quando envolver o sistema antigo numa API resolve
Em parte dos casos o sistema velho não precisa ser substituído. Precisa só parar de ser uma ilha.
Colocar uma interface de integração na frente dele resolve o sintoma mais comum, que é a exportação manual, e custa uma fração de qualquer reescrita. O sistema continua onde está, e o dado dele passa a alimentar o resto da operação.
Vale medir isso antes de qualquer projeto maior. Várias vezes o incômodo que motivou a conversa some aqui.
Como escolher o que fazer primeiro
A ordem certa quase nunca é a ordem técnica. É a ordem do que custa mais para a operação hoje.
A gente começa lendo o código e a infraestrutura que existem, e essa leitura termina com um documento dizendo o que dá para manter, o que precisa ser substituído e quanto custa cada caminho. Assumir sistema legado sem essa etapa é combinar preço para um trabalho que ninguém mediu.
Quando isto não é para você
Esta página não serve para quem quer um orçamento de modernização sem que alguém olhe o código e a infraestrutura antes. Também não serve para quem precisa que o sistema novo entre no ar numa data fechada sem período de convivência com o antigo: esse formato existe, mas o risco é grande e precisa ser uma decisão tomada com os olhos abertos.
Perguntas frequentes
01
vale mais a pena reescrever ou modernizar aos poucos?
Na maior parte dos casos, aos poucos. Reescrita completa falha com frequência porque o sistema antigo carrega anos de exceção que não estão documentadas, e porque durante o projeto existem dois sistemas para manter com o mesmo time. Reescrever inteiro é uma decisão defensável quando a tecnologia de base não tem mais suporte de segurança, e aí o custo do período de convivência precisa estar no orçamento.
02
dá para modernizar sem parar a operação?
Dá, e é justamente o ponto de ir por fora. Cada função sai do sistema antigo de uma vez, roda em paralelo por um tempo com os dois resultados comparados, e só então o caminho antigo é desligado. A operação nunca fica dependente de uma virada única dar certo de primeira.
03
e se ninguém aqui souber mais como o sistema funciona?
É o caso mais comum, e não impede o trabalho. A regra de negócio é recuperada de três fontes: o comportamento observado do sistema, o dado que ele produziu ao longo dos anos e as pessoas que usam a tela todo dia. A leitura inicial serve exatamente para isso, e o que for recuperado fica escrito, o que já é um ganho independente do resto.
04
quanto custa modernizar um sistema legado?
Depende do que a leitura inicial encontrar, e é por isso que ela vem antes da proposta. O que faz o preço variar é o tamanho da regra de negócio escondida, a qualidade do dado acumulado e quantas integrações dependem do sistema hoje. O valor é sob consulta, e o que forma o preço está explicado na página de preços e prazos.
Marque o diagnóstico: a gente lê o sistema que existe e escreve o que dá para manter, o que precisa sair e por onde começar.
Agendar diagnósticoResposta em até 1 dia útil