Modernização de sistema legado
Modernização de uma operação sustentada por Microsoft Access para uma aplicação atual, preservando as regras de negócio e preparando uma transição controlada dos dados e da operação.
- Software Engineer
- Substituição de operação baseada em Microsoft Access
- Migração de dados · Reconciliação · Validação financeira · Regras de negócio · Cutover · Rollback
Este case omite nomes, estrutura de dados, volumes e valores financeiros.
Problema
Um sistema em Microsoft Access sustentava uma operação real: a rotina e os controles financeiros dependiam dele no dia a dia.
Os limites da solução existente estavam claros. Evoluir o sistema era cada vez mais difícil, a manutenção dependia do conhecimento acumulado no próprio legado e o uso simultâneo ampliava os riscos operacionais e de manutenção.
O desafio não era apenas reescrever o software. Era substituí-lo preservando o comportamento de que a operação depende e mantendo a consistência dos dados durante a modernização.
Contexto
O legado carregava histórico e regras que não estavam descritas de forma explícita. Parte delas estava na estrutura dos dados; outra parte, no comportamento do próprio sistema, em validações, cálculos e fluxos que a operação já tratava como naturais.
Algumas dessas regras só podiam ser descobertas observando o comportamento existente: o que o sistema aceita, recusa ou calcula em cada situação.
Os números financeiros precisavam bater entre o sistema antigo e o novo, o que exigia reconciliação, não apenas transferência. Por isso a migração não podia ser tratada como uma simples cópia de banco: dados, regras e operação precisavam passar para a aplicação moderna de forma preparada e verificável.
Decisões
Migração repetível
A migração é construída como um processo que pode ser executado novamente durante ensaios e validações, em vez de depender de uma única carga. Uma correção encontrada na validação é aplicada ao processo e testada de novo, e não ajustada à mão no destino.
Exige mais disciplina e ferramentas de validação antes da virada. A migração passa a ser um processo a manter, e não uma operação pontual.
Reconciliação como critério de aceite
Origem e destino são comparados antes de considerar a migração pronta. A migração não é aceita por ter terminado sem erro, mas por produzir no destino o que a origem mostra.
Cada divergência vira trabalho de investigação: é preciso entender se a diferença está no dado de origem, na regra ou na própria migração.
Validação financeira separada
Dados financeiros recebem validações próprias, além da reconciliação geral, porque inconsistências pequenas podem alterar saldos e resultados.
Um ciclo de validação mais longo e mais rigoroso para essa parte dos dados.
Regras implícitas tornam-se explícitas
O comportamento observado no legado é identificado e convertido em regras verificáveis da aplicação moderna. O que antes dependia de como o sistema antigo reagia passa a ser uma regra declarada, que pode ser testada.
Antes de reescrever, é preciso levantar o comportamento atual, inclusive o que não estava descrito em lugar nenhum.
Cutover com rollback planejado
A estratégia de entrada em operação inclui critérios de validação e um caminho de retorno enquanto a nova operação não estiver definitivamente aceita. A virada é tratada como uma decisão com condições, e não como uma data.
Enquanto a nova operação não é aceita, o legado precisa continuar recuperável, o que prolonga o período em que os dois sistemas importam.
Arquitetura
A modernização é organizada em partes com responsabilidades separadas: de onde os dados vêm, como chegam, como são verificados, onde passam a ser tratados e como a operação muda de um sistema para o outro. A descrição é conceitual, sem detalhes de implementação.
- Sistema legado
- A aplicação em Microsoft Access que sustenta a operação. Permanece como referência dos dados e do comportamento esperado até a nova operação ser aceita.
- Migração
- Processo repetível que extrai os dados do legado, aplica as transformações necessárias e os carrega na aplicação moderna, podendo ser executado em ensaios sucessivos.
- Reconciliação
- Compara origem e destino, com verificações próprias para os dados financeiros, e aponta divergências para investigação antes do aceite.
- Aplicação moderna
- Concentra as regras de negócio de forma explícita e verificável, incluindo as que antes existiam apenas no comportamento do legado.
- Cutover e rollback
- Define os critérios para a nova aplicação assumir a operação e o caminho de retorno ao legado enquanto a transição não estiver definitivamente aceita.
Resultado e aprendizado
Resultado até aqui
O resultado até aqui é um processo de modernização estruturado: migração e reconciliação são tratadas como partes verificáveis do trabalho, e a transição está sendo preparada com critérios de validação e um caminho de rollback.
O cutover ainda não aconteceu. A modernização segue em validação, e a entrada em operação depende de os critérios definidos serem atendidos.
Aprendizado
Modernizar um sistema legado exige entender comportamento, não apenas estrutura de dados. A estrutura mostra o que é guardado; o comportamento mostra o que a operação espera.
Reconciliação é parte do produto de migração, não uma checagem posterior. Quando ela entra apenas no fim, as divergências são descobertas mais tarde, quando investigá-las tende a custar mais.
Regras implícitas precisam virar regras verificáveis antes da substituição do sistema. Enquanto existem apenas no comportamento do legado, não há como confirmar que a aplicação nova as preserva.