Estimativa de uma migração de dados
Como estimar uma migração de dados: transferência de dados entre sistemas, reconciliação e transição. A transformação leva uma hora; a limpeza leva um trimestre.
A migração em si é a parte fácil. A etapa de reconciliação que você esqueceu é onde estão as dificuldades.
Uma migração de dados — transferir dados de um sistema para outro, ou de um formato para outro dentro do mesmo sistema — se assemelha a uma transformação. Ler da fonte, transformar, gravar no destino, redirecionar o tráfego. A equipe vota na transformação. A transformação costuma ser a menor parte do trabalho na história. Os pontos-chave estão nas coisas que a transformação não percebe: registros que parecem corretos, mas fazem referência a dados que não foram transferidos; registros que parecem corrompidos, mas na verdade estão corretos de uma forma que a especificação não captou; casos extremos que sobreviveram apenas porque o sistema antigo os tolerava e o novo não.
Esse é um problema diferente de uma migração de banco de dados. Uma migração de esquema altera a estrutura de um banco de dados com os dados já armazenados nele. Uma migração de dados transfere dados entre sistemas, e a questão não é “o comando ALTER será concluído a tempo?” — e sim “o que fazemos com as linhas que não correspondem a nenhum dos lados?” A maior parte do trabalho envolve reconciliação, estratégia de transição e reversão. O código de transformação é a parte que você escreve mais rápido e termina por último.
O que se fala na sala
Backend: “É um script. Ler, mapear, gravar. No máximo dois dias.”
Engenharia de dados: “Já verificamos o quanto a fonte está suja?”
SRE: “Qual será a estratégia de transição — ‘big bang’ ou ‘dual-write’?”
Líder: “Quem resolve os conflitos nas linhas que não são migradas corretamente?”
PM: “Quando vamos descontinuar o sistema antigo?”
A pergunta do PM é o que deve orientar a estimativa. Se o sistema antigo for descontinuado em um mês, você precisa de uma estratégia que atinja 100% de precisão; se ele continuar em uso junto com o novo por dois trimestres, você pode deixar a “cauda longa” para mais tarde. A estimativa não é sobre a transformação — é sobre a estratégia.
Perguntas que vale a pena fazer antes de votar
- Qual é a qualidade dos dados de origem — limpos, sujos ou desconhecida?
- Estratégia de migração: “big bang”, gravação dupla, leitura em cópia de segurança, gradual?
- Por quanto tempo os dois sistemas coexistirão? Há uma data prevista para o fim da coexistência?
- Quem está reconciliando as linhas que não são migradas corretamente, e qual é o limite?
- Qual seria o plano de reversão caso o novo sistema recebesse dados incorretos após a migração?
- Existem consumidores a jusante (relatórios, integrações) que precisam ser migrados simultaneamente?
Se a equipe votar em 5 e alguém perguntar “espera aí, e os registros do log de auditoria?”, você não teve um problema de estimativa; você teve duas histórias fingindo ser uma só. Divida: a transformação é um ticket, e a reconciliação e o plano de transição são outro.
Votem na estratégia, não na transformação. A transformação dura dois dias. A estratégia abrange o trimestre.
Consulte como estimar uma migração de banco de dados para a variante de mudança de esquema em um único sistema e os outros exemplos práticos de estimativa. Inicie uma sessão gratuita de planning poker assim que a estratégia de transição estiver esboçada.