Cenário: substituir um sistema legado sem um 'big bang'
Pergunta
Você precisa reescrever um sistema legado grande que está em produção. Por que a reescrita 'do zero, em paralelo, e troca tudo de uma vez' quase sempre falha, e o que é o padrão strangler fig?
Resposta esperada
A reescrita big-bang falha porque: o legado tem anos de regras de negócio implícitas e casos de borda que ninguém documentou, e você só descobre que faltou quando o novo entra no ar; enquanto você reescreve por 18 meses, o legado continua mudando, e você persegue um alvo móvel; e a troca única concentra todo o risco num dia. O padrão strangler fig (a figueira que cresce em volta da árvore e a substitui aos poucos): você põe uma camada de roteamento (proxy/gateway) na frente do legado e vai migrando funcionalidade por funcionalidade — cada pedaço novo assume seu tráfego quando pronto, o legado encolhe, e você pode parar/reverter a qualquer momento. Entrega valor durante o processo, o risco é fatiado, e você aprende as regras reais migrando de verdade, não lendo código morto.
Por que perguntam isso
Cenário sênior. Termo-chave: 'strangler fig'. Bom candidato enfatiza 'aprende as regras reais migrando' e 'risco fatiado'.