Migração e legado

Reconciliação: como provar que a migração não perdeu nada

"Rodou sem erro" não prova que tudo chegou. Os três níveis de conferência, quem precisa assinar e quando dá para desligar o sistema antigo.

Leonardo Peron4 min de leitura

Depois que a migração termina, alguém faz a pergunta que não tem resposta educada: como a gente sabe que não perdeu nada?

"Rodou sem erro" não responde. Script de migração que termina limpo prova que nenhuma linha causou exceção — não prova que todas as linhas chegaram, nem que chegaram com o valor certo. As duas falhas mais caras de uma migração são silenciosas: o registro que não veio, e o número que veio diferente.

Reconciliação é o trabalho de transformar confiança em evidência.

Contagem: quem chegou

O primeiro nível é o mais óbvio e o mais ignorado. Contar registros na origem e no destino, por entidade, e comparar.

O resultado quase nunca bate de primeira, e a diferença costuma ser explicável: registros excluídos logicamente que não deveriam vir, duplicatas consolidadas de propósito, teste antigo que ficou na base. A diferença explicada é aceitável. A diferença desconhecida não é.

Vale contar também recortado por período. Um total que bate esconde bem o problema de um ano inteiro faltando compensado por duplicação em outro — isso acontece, e a contagem global não vê.

Soma: quanto chegou

Contagem não pega valor errado. Um pedido que migrou com o valor dividido por cem continua sendo um pedido.

Por isso o segundo nível soma os campos que importam — valor de pedido, saldo de estoque, título em aberto — e compara os totais dos dois lados. É uma consulta por entidade, e é onde aparecem os erros de conversão: separador decimal interpretado como milhar, unidade de medida trocada, moeda sem conversão.

Aqui a tolerância precisa ser decidida antes, não negociada depois. Diferença de centavos por arredondamento pode ser aceitável; diferença de um real não é, e o limite tem que estar escrito antes de alguém ver o resultado.

Amostra: como chegou

Contagem e soma são estatísticas. Elas não olham nenhum registro em particular, e há erros que passam nas duas — o cliente cujo endereço foi para o campo de observação, a data que virou o dia errado por fuso, o texto que perdeu o acento.

O terceiro nível é abrir registros lado a lado, campo por campo. Não muitos: algumas dezenas bem escolhidas valem mais que milhares aleatórios.

A escolha importa mais que a quantidade. Vale incluir o registro mais antigo, o mais recente, o de maior valor, um com todos os campos opcionais preenchidos, um com quase nenhum, e — principalmente — os casos que o time da operação lembra. Toda operação tem três ou quatro registros esquisitos que todo mundo conhece. São eles que quebram.

Reconciliação é trabalho de quem opera

O erro de processo mais comum é a área técnica reconciliar sozinha. Quem escreveu a migração compara o que planejou migrar com o que migrou, e o resultado bate por construção.

Quem enxerga que "esse cliente aqui deveria ter três contratos e só tem dois" é quem trabalha com aquilo. A conferência precisa acontecer com alguém da operação olhando junto, e o resultado precisa ser assinado — no sentido literal: uma pessoa que diz, por escrito, que conferiu e está de acordo.

Não é burocracia. É o que separa "achamos que está certo" de "está conferido", e é o que dá tranquilidade para desligar o sistema antigo.

O sistema antigo não desliga junto

Manter o legado disponível em modo somente leitura por um período é a apólice mais barata da migração inteira. Não custa quase nada e resolve a classe de problema que aparece semanas depois: o cliente que pergunta sobre uma nota de 2019, a auditoria que pede o histórico, o caso que ninguém pensou em conferir.

O período varia com o negócio, mas há um marco natural: o primeiro fechamento completo — mensal, fiscal, contábil — feito inteiramente no sistema novo. Antes disso, desligar é economizar no lugar errado.

O relatório que sobra

Ao final, reconciliação produz um documento curto: o que foi comparado, qual o resultado, quais diferenças apareceram e por que cada uma é aceitável.

Ele parece formalidade no dia em que é escrito. Deixa de parecer seis meses depois, quando alguém pergunta por que o faturamento de um mês antigo mudou — e a resposta está numa linha, em vez de virar uma investigação de uma semana.

O teste que confirma

Antes de considerar a migração encerrada, peça a alguém da operação que escolha um registro qualquer, sem combinar, e o acompanhe do sistema antigo ao novo, campo por campo.

Se essa pessoa terminar sem encontrar nada estranho, o trabalho está feito. Se ela apontar algo em cinco minutos que a reconciliação não pegou, o problema não é o registro: é que a amostra estava escolhida por quem conhece o código, e não por quem conhece a operação.

Isso é o que fazemos em migração de legado

Mapeamento campo a campo, reconciliação com o sistema antigo e cutover fora do horário comercial. O histórico vai junto e a operação não para.

Mais de 90 operações já rodam com a gente