Pular para o conteúdo

Modernização gradual de sistemas legados: troca por partes

Modernização gradual de sistemas legados na prática: como trocar módulo a módulo, manter antigo e novo convivendo e saber quando desligar cada parte.

Por · LinkedIn 13 min de leitura
Neste artigo

A decisão já foi tomada: o sistema que sustenta a empresa há anos precisa ser substituído. Ele roda numa plataforma sem suporte, só uma pessoa entende o fechamento mensal e cada mudança pedida pelo comercial vira semanas de espera. O problema é o "como". Parar a operação para trocar tudo de uma vez não é opção, e ninguém quer apostar a emissão de notas e o faturamento num único fim de semana de virada.

É aqui que muitos projetos de modernização travam. A empresa contrata uma reconstrução completa, o time passa meses construindo em paralelo, o sistema antigo continua recebendo ajustes que o novo não acompanha e, quando chega a data, o novo ainda não faz tudo o que o antigo fazia. A virada é adiada, depois adiada de novo.

Existe um caminho com menos risco, a modernização gradual de sistemas legados: trocar o sistema por partes, colocando cada módulo novo em produção assim que ele estiver pronto, com o antigo e o novo funcionando juntos até que o legado possa ser desligado. Este texto mostra como executar isso na prática, do primeiro módulo ao último desligamento.

Resposta curta: como fazer uma modernização gradual

Se você precisa da versão resumida, é esta:

  1. Mapeie o sistema atual por capacidades de negócio (cadastro, pedidos, estoque, faturamento, financeiro), não por telas.
  2. Escolha um primeiro módulo com valor visível e pouca dependência das partes mais frágeis.
  3. Coloque uma camada de entrada na frente (uma tela, um roteador de chamadas ou uma integração) que decide se cada operação vai para o antigo ou para o novo.
  4. Defina quem é dono de cada dado em cada momento e sincronize o resto.
  5. Coloque o módulo novo em produção, primeiro para um grupo pequeno de usuários, depois para todos.
  6. Desligue a parte correspondente do legado só quando os critérios de desligamento forem cumpridos.
  7. Repita até o sistema antigo não ter mais função.

O resto do texto detalha cada passo, os pontos em que esse tipo de projeto costuma escorregar e como medir se ele está andando.

O risco do big bang na troca de sistemas

A virada única, conhecida como big bang (tudo de uma vez), parece mais simples no papel: um projeto, uma data, um sistema novo. Na prática, concentra quase todo o risco num só dia.

  • O alvo se move. Enquanto o sistema novo é construído, o antigo continua mudando: nova regra fiscal, nova tabela de comissão, novo cliente com condição especial. Cada mudança precisa ser feita duas vezes ou vira diferença na virada.
  • Nada é validado de verdade antes do fim. Homologação ajuda, mas o uso real, com volume real e usuários com pressa, só começa no dia da troca. Os problemas aparecem todos juntos.
  • Não existe meio-termo. Se algo grave dá errado, a escolha é entre voltar tudo para o antigo, com os dados lançados no novo nesse meio-tempo, ou seguir com o problema.
  • O negócio fica meses sem receber nada. O investimento só começa a gerar valor no último dia, e a paciência da diretoria costuma acabar antes disso.

A discussão sobre reconstruir ou melhorar o que existe é anterior a esta e está em reescrever ou refatorar um sistema legado, e a de trocar por produto pronto, em sistema legado ou SaaS pronto. Aqui partimos do ponto em que a decisão de substituir foi tomada e a pergunta é como executar com segurança.

O padrão estrangulador em linguagem simples

O nome técnico da abordagem gradual é padrão estrangulador (strangler fig, em inglês). A imagem vem de uma figueira que nasce sobre outra árvore, cresce em volta dela e, com o tempo, ocupa o lugar dela. A árvore original não é derrubada num dia: vai perdendo função até não fazer mais falta.

No software, funciona assim:

  • Uma porta de entrada única. Os usuários e as integrações passam a acessar o sistema por um ponto que você controla. Pode ser um portal web novo, um roteador de chamadas ou uma camada de integração.
  • Cada funcionalidade tem um endereço. Essa porta sabe que "emitir pedido" ainda vai para o sistema antigo, mas "consultar estoque" já vai para o módulo novo.
  • A troca é feita funcionalidade por funcionalidade. Quando um módulo novo fica pronto, a porta passa a mandar aquela operação para ele. O usuário pode nem perceber que mudou de sistema.
  • O legado encolhe. Cada parte transferida é uma parte do sistema antigo que pode ser desligada.

A diferença em relação ao big bang é que o risco é dividido em várias viradas pequenas, cada uma com volta possível. Se o módulo novo de estoque apresentar um problema sério, a porta volta a mandar as consultas para o antigo enquanto o problema é corrigido.

Escolhendo o primeiro módulo

O primeiro módulo define o tom do projeto inteiro. Ele precisa provar que a abordagem funciona, sem expor a empresa ao maior risco logo de saída.

Critérios para escolher

Critério O que procurar O que evitar
Valor para o negócio Algo que os usuários reclamam e vão notar a melhoria Módulo que ninguém usa
Dependências Poucas ligações com o resto do sistema O coração do sistema, por onde tudo passa
Dono dos dados Dados que podem ficar sob responsabilidade do novo módulo Dados gravados por dez telas diferentes do legado
Risco operacional Falha incômoda, mas contornável Falha que para faturamento ou expedição
Tamanho Algo que chega à produção em semanas ou poucos meses Módulo que leva um ano para ficar pronto

Bons candidatos de primeiro módulo

  • Consultas e relatórios. Ler dados é mais seguro que gravar. Um painel novo de pedidos ou de estoque, alimentado pelo banco do sistema antigo, entrega valor rápido e testa a infraestrutura nova.
  • Um processo periférico com dor clara. Portal do cliente, aprovação de despesas, agendamento de entregas ou cadastro de fornecedores costumam ter poucas dependências.
  • Uma funcionalidade nova que o legado não tem. Em vez de construí-la no sistema antigo, ela já nasce no novo, aproveitando o momento.

O que quase nunca deve ser o primeiro: faturamento, cálculo de impostos, fechamento financeiro. Esses vêm depois, quando a equipe já domina o caminho e a convivência entre os dois sistemas está estável.

Convivência: antigo e novo lendo os mesmos dados

A parte mais delicada da modernização gradual não é o código novo; são os dados. Durante meses, dois sistemas vão precisar enxergar o mesmo cliente, o mesmo pedido e o mesmo saldo de estoque.

Defina o dono de cada dado

Para cada entidade (cliente, produto, pedido, título financeiro), escreva quem é a fonte da verdade naquela fase. Só um sistema grava; o outro lê ou recebe cópia. Dois sistemas gravando o mesmo cadastro sem regra clara é a forma mais rápida de gerar divergência.

Um exemplo de evolução:

  • Fase 1: o legado é dono de clientes e pedidos. O módulo novo de consulta só lê.
  • Fase 2: o cadastro de clientes passa para o sistema novo. O legado recebe uma cópia sincronizada para continuar emitindo pedidos.
  • Fase 3: pedidos passam para o novo. O legado só recebe o que precisa para o faturamento, que ainda está lá.

Formas de sincronizar

  • Banco compartilhado, por um tempo. O módulo novo lê direto o banco do legado. É rápido de começar, mas amarra o novo à estrutura antiga. Use como ponte, não como destino.
  • Sincronização por eventos ou rotinas. Quando um dado muda num lado, uma rotina envia a mudança para o outro. Exige tratamento de falha, reprocessamento e conciliação.
  • Camada de integração. Quando o legado não oferece nenhuma interface, é preciso criar uma por fora. As opções (leitura de banco, arquivos, automação de tela) estão em integrar um sistema legado sem API.

Seja qual for o caminho, inclua desde o primeiro dia uma conciliação: uma rotina que compara os dois lados e aponta diferenças. Ela é o que permite confiar na convivência.

Usuários em dois sistemas: como minimizar

Para quem opera, trabalhar em dois sistemas ao mesmo tempo é o custo mais visível da modernização gradual. Dá para reduzir bastante esse incômodo.

  • Corte por processo completo, não por tela. Se o vendedor cadastra o cliente no sistema novo e precisa voltar ao antigo para ver o limite de crédito, a experiência piora. Mova o fluxo inteiro de uma pessoa sempre que possível.
  • Uma porta só. Um portal único com menu que leva às telas novas e às antigas, com o mesmo login, evita que o usuário precise lembrar onde está cada coisa.
  • Comece por um grupo. Uma filial, um time ou um tipo de pedido usa o novo primeiro. Os problemas aparecem em escala pequena.
  • Treinamento curto e perto da troca. Explicar a tela nova meses antes não funciona. Faça na semana da mudança, com material de consulta rápida.
  • Canal direto para dúvidas. Nas primeiras semanas, alguém da equipe acompanha de perto e registra o que está confuso.

Quando o legado é um sistema desktop instalado em cada máquina, a porta única costuma ser justamente o novo sistema web, que vai absorvendo as telas antigas. Os detalhes dessa transição estão em como migrar um sistema desktop para a web.

Critérios para desligar cada parte do legado

Aqui mora o erro mais caro da modernização gradual: nunca desligar nada. O módulo novo vai para produção, mas o antigo continua ligado "por segurança", e a empresa passa a manter dois sistemas para sempre.

Cada parte do legado só deve ser desligada quando cumprir critérios definidos antes, por escrito. Uma lista de verificação que usamos como ponto de partida:

  • Todo o tráfego daquela funcionalidade já passa pelo módulo novo, inclusive integrações, rotinas noturnas e relatórios esquecidos.
  • A conciliação bate de forma consistente por um período combinado, cobrindo pelo menos um fechamento mensal.
  • Os usuários-chave validaram os casos difíceis da operação, não só o fluxo comum.
  • Nenhuma rotina do legado depende daquela parte. Procure tarefas agendadas, exportações e planilhas que leem o banco antigo.
  • Os dados históricos foram migrados ou têm acesso garantido para consulta, auditoria e obrigações legais. Prazos de guarda de documentos fiscais e trabalhistas devem ser confirmados com o contador e o jurídico.
  • Existe plano de volta documentado para as primeiras semanas após o desligamento.
  • Alguém com autoridade assinou o desligamento. Não é decisão só da equipe técnica.

O desligamento pode ser feito em etapas: primeiro bloquear a gravação na parte antiga, deixando só consulta; depois remover o acesso; por fim, desativar o código e o banco correspondente.

Medindo o avanço da modernização

Projeto gradual sem medida vira projeto eterno. Algumas métricas simples mostram se ele está andando:

  • Funcionalidades transferidas, comparando o total mapeado no início com o que já roda no novo.
  • Partes do legado efetivamente desligadas. Transferir sem desligar não reduz custo nem risco.
  • Usuários e volume operando no novo, por módulo.
  • Divergências na conciliação, que devem cair com o tempo.
  • Incidentes por módulo, para comparar a estabilidade do novo com a do antigo.
  • Tempo de entrega de mudanças pedidas pelo negócio nas partes já modernizadas, que é a razão de existir do projeto.

Um quadro com essas métricas, revisado em todo ciclo com a diretoria, evita que o projeto perca prioridade quando surgem urgências.

Erros comuns na modernização por partes

  • Copiar o sistema antigo tela por tela. A modernização é a chance de rever o processo. Replicar campos que ninguém usa e fluxos que existem por limitação do sistema antigo desperdiça a oportunidade.
  • Deixar a camada de entrada para depois. Sem ela, cada troca de módulo vira uma mudança de hábito para o usuário e de configuração para as integrações.
  • Dados sem dono. Dois sistemas gravando o mesmo cadastro geram divergência que só aparece no fechamento.
  • Continuar evoluindo o legado em paralelo. Funcionalidade nova deve nascer no novo, salvo exigência legal com prazo.
  • Começar pelo módulo mais crítico para "resolver logo o que dói mais". O risco é alto demais para um time que ainda está aprendendo o caminho.
  • Não planejar o fim. Sem critérios de desligamento, a convivência temporária vira permanente.

Prazos variam muito com o tamanho do sistema e a qualidade dos dados. Como referência genérica, e com a ressalva de que só o diagnóstico permite estimar, cada módulo costuma levar de algumas semanas a poucos meses, e o projeto inteiro se mede em ciclos, não numa data única.

Perguntas frequentes

Quanto tempo leva uma modernização gradual de sistema legado?

Depende do tamanho do sistema e da qualidade dos dados. Como referência genérica, e sujeita a diagnóstico, cada módulo costuma levar de algumas semanas a poucos meses, e a modernização gradual inteira se mede em ciclos, não numa data única. A vantagem é que cada módulo entregue já gera valor antes do fim do projeto.

Modernização gradual dá mais trabalho que trocar o sistema de uma vez?

Dá um esforço extra com a convivência entre os sistemas, como sincronização de dados, conciliação e camada de entrada. Em troca, a modernização gradual divide o risco em viradas pequenas com volta possível e entrega valor desde o primeiro módulo, enquanto a troca de uma vez concentra o risco e só gera retorno no último dia.

Dá para continuar alterando o sistema legado durante a modernização?

Só o necessário. Durante a modernização gradual, funcionalidades novas devem nascer no sistema novo, salvo exigência legal com prazo que obrigue a mexer no legado. Continuar evoluindo o sistema antigo em paralelo cria um alvo móvel, duplica trabalho e aumenta as diferenças que precisam ser resolvidas a cada módulo transferido.

Qual a diferença entre modernização gradual e refatoração?

Refatoração melhora o código de um sistema existente sem mudar o comportamento dele, mantendo a mesma base. A modernização gradual substitui o sistema por partes, colocando módulos novos em produção enquanto o legado continua funcionando, até ser desligado. As duas podem se combinar: refatorar o legado para isolar módulos facilita a troca.

Quando a modernização gradual não é indicada?

Quando o sistema é pequeno, com poucas telas e escopo simples, uma troca única pode ser mais simples que manter dois sistemas convivendo. A modernização gradual faz mais sentido em sistemas grandes e críticos, em que parar a operação não é opção e uma virada de uma vez concentraria risco demais num só dia.

Como a Pervian Tech trabalha modernização incremental

Na Pervian Tech, a modernização gradual começa pelo diagnóstico: entender o que o sistema atual faz, quem depende de cada parte, onde estão os dados e quais regras só existem no código. A partir daí desenhamos o mapa de módulos, a camada de entrada e a ordem de troca, com critérios de desligamento definidos junto com a diretoria. Esse trabalho faz parte do nosso serviço de arquitetura de software e da nossa abordagem de modernização de sistemas legados.

O plano é sempre sob medida, porque cada legado tem dependências e riscos em lugares diferentes. O investimento é definido sob consulta, depois de um diagnóstico inicial gratuito que mostra por onde começar com segurança. Mais textos sobre o tema estão na categoria modernização. Se o seu sistema precisa ser trocado e parar a operação não é opção, conte como ele funciona hoje.

ModernizaçãoLegadoArquiteturaMigração de sistemasServiço: Arquitetura de Software

Quer uma solução assim na sua empresa?

Cada projeto é desenhado sob medida para o seu processo, e o investimento é definido sob consulta depois de entendermos o contexto. O diagnóstico inicial não tem custo: descreva o cenário e respondemos em até um dia útil.

Falar com a Pervian Tech

Continue lendo

Fale conosco

Conte o problema que precisa resolver

Respondemos em até um dia útil com uma avaliação técnica inicial. Sem custo e sem compromisso.

Usamos seus dados apenas para responder este contato.