Pular para o conteúdo
Papel
Software Engineer
Escopo
Substituição de operação baseada em Microsoft Access
Temas
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

  1. 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.

    Trade-off 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.

  2. 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.

    Trade-off 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.

  3. 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.

    Trade-off Um ciclo de validação mais longo e mais rigoroso para essa parte dos dados.

  4. 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.

    Trade-off Antes de reescrever, é preciso levantar o comportamento atual, inclusive o que não estava descrito em lugar nenhum.

  5. 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.

    Trade-off 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.