Substituir código legado em escala é sempre uma tarefa difícil, que geralmente se beneficia da execução paralela com reconciliação. Na prática, a técnica se baseia na execução do mesmo fluxo de produção por meio do código antigo e do novo, retornando a resposta do código legado, mas comparando os resultados para ganhar confiança no novo código. Apesar de ser uma técnica antiga, vimos implementações mais robustas nos últimos anos, tendo como base práticas de entrega contínua, como implantações canário e feature toggles, e estendendo-as com a adição de uma camada extra de experimentação e análise de dados para comparar os resultados em tempo real. Usamos a abordagem até mesmo para comparar resultados interfuncionais, como tempo de resposta. Embora tenhamos usado a técnica várias vezes com ferramentas feitas sob medida, certamente devemos um reconhecimento à ferramenta Scientist, do GitHub, usada para modernizar uma parte crítica da aplicação e que agora foi disponibilizada para várias linguagens.