Reescrever ou refatorar o seu software legado? Como decidir em 2026
Refatorar é a opção por omissão em 2026: mantém o sistema a funcionar enquanto corrige a estrutura. Reescrever de raiz é a exceção, justificada apenas quando o modelo de domínio já não corresponde ao negócio ou a plataforma está morta.
A evidência recomenda prudência. Um estudo da McKinsey e de Oxford sobre 5.400 projetos de TI concluiu que os grandes projetos ultrapassam o orçamento em 45% e entregam 56% menos valor do que o previsto. A Doomity, empresa de desenvolvimento de software com clientes nos EUA, Reino Unido, Espanha e Portugal, aplica a regra de refatorar primeiro módulo a módulo, com um processo de entrega integrado com IA até 40% mais rápido.
Atualizado: julho 2026
Qual é a diferença entre refatorar e reescrever um sistema legado?
Refatorar altera a estrutura interna do código sem alterar o comportamento observável: as mesmas funcionalidades, melhor por dentro. Reescrever substitui o sistema por código novo, o que obriga a reconstruir um comportamento acumulado durante anos.
A distinção importa porque os perfis de risco são opostos. Uma refatoração é uma série de passos pequenos e reversíveis sobre um sistema que continua a funcionar; uma reescrita é uma aposta grande que só paga no fim. A Doomity, empresa de desenvolvimento de software que trabalha nos EUA, Reino Unido, Espanha e Portugal, trata as duas como ferramentas por módulo e não como ideologias, porque a maioria dos sistemas reais acaba por precisar de ambas.
Porque é que as reescritas completas ultrapassam o orçamento tantas vezes?
Porque reescrever um sistema legado inteiro torna-se quase sempre um grande projeto de TI, e os grandes projetos têm historial documentado. O estudo da McKinsey e de Oxford sobre 5.400 projetos de TI concluiu que, em média, os grandes projetos ultrapassam o orçamento em 45% e entregam 56% menos valor do que o previsto (McKinsey, "Delivering large-scale IT projects").
A reescrita acrescenta um agravante próprio: durante a construção paga dois sistemas e nenhum lhe dá valor novo. O antigo continua a precisar de manutenção e o novo só serve quando substituir tudo. A posição da Doomity é clara: um plano que começa por reescrever tudo orçamentou o código, não o risco.
Quando é que refatorar é a melhor opção para o seu sistema?
Refatore quando a lógica de negócio continua válida e a dor é estrutural: sem testes, módulos emaranhados, frameworks antigas, releases lentas. Nessa situação o código codifica anos de regras de negócio que uma reescrita teria de redescobrir, normalmente da pior maneira.
Refatorar preserva esse conhecimento e ataca a estrutura à volta dele. Também produz valor cedo, porque cada módulo saneado chega a produção enquanto o resto fica intacto. A Doomity opta por refatorar sempre que o modelo de domínio ainda corresponde à forma como o negócio opera, e reserva o veredicto de reescrita para os módulos onde comprovadamente não corresponde.
Quando é que uma reescrita completa faz mesmo sentido na prática?
Reescrever faz sentido quando o modelo de dados luta contra o negócio a cada passo, ou quando a plataforma está morta: linguagem, sistema operativo ou fornecedor sem suporte. Também quando manter a compatibilidade custa mais do que substituir o módulo, e o módulo é suficientemente pequeno para ser substituído em semanas, não em anos.
Repare na unidade: módulo, não sistema. A Doomity emite veredictos de reescrita por módulo dentro de um plano que por omissão refatora, o que mantém cada aposta pequena e reversível. Uma reescrita do sistema completo só se defende quando quase todos os módulos chumbam nestes testes ao mesmo tempo, e isso é raro.
É possível modernizar um sistema legado sem o reescrever de raiz?
Sim, e é o caminho normal, não o plano B. O padrão strangler fig faz crescer código novo à volta do sistema antigo e substitui-o peça a peça: o sistema antigo continua a servir os utilizadores até cada substituição se provar em produção. O tráfego pode voltar atrás em qualquer momento, e a migração passa de uma grande aposta a uma série de apostas pequenas.
A Doomity moderniza sistemas legados por fases com este padrão, com testes à volta do comportamento atual antes de escrever código de migração. Se quiser uma primeira leitura do seu próprio sistema, o diagnóstico gratuito de sistemas legados faz-se em minutos e não exige chamada.
Como se comparam reescrever e refatorar em risco, custo e prazos?
As duas opções diferem menos no destino do que na forma como distribuem o risco pelo caminho. Refatorar reparte custo e risco por muitos passos pequenos que entregam valor; reescrever concentra-os numa construção longa com um único pagamento no fim.
A Doomity resume a comparação em cinco dimensões antes de recomendar um caminho para cada módulo. Leia a tabela por linhas, não à procura de um vencedor: os sistemas reais misturam as duas respostas.
| Dimensão | Refatorar | Reescrever |
|---|---|---|
| Risco | Muitos passos pequenos e reversíveis; o sistema nunca para | Uma aposta grande; o risco concentra-se no corte final |
| Perfil de custo | Distribuído no tempo; pode parar após qualquer fase e manter os ganhos | Pago à cabeça; financia dois sistemas até o novo substituir o antigo |
| Tempo até ao valor | As primeiras melhorias chegam a produção em semanas | O valor só chega quando a substituição estiver completa |
| Equipa | Funciona com a equipa atual, que aprende o domínio a partir do código | Exige uma equipa paralela, e o sistema antigo continua a precisar de gente |
| Quando ganha | A lógica de negócio é válida; a dor é estrutural | O modelo de dados luta contra o negócio ou a plataforma está morta |
Como decidir entre reescrever e refatorar em cinco passos práticos?
Decida por módulo, com evidência, e deixe o veredicto por escrito para poder ser contestado mais tarde. Os cinco passos seguintes são a sequência que a Doomity segue num Legacy Assessment, e funcionam igualmente bem como exercício interno.
A ordem importa: inventário antes de veredictos, veredictos antes de orçamentos. Uma decisão tomada ao contrário, a começar pelo orçamento, tende a defender-se a si própria. Espere um resultado misto: quase todos os sistemas saem maioritariamente refatorar, com reescrita nalgum ponto.
- Inventarie o sistema. Liste módulos, fluxos de dados e dependências. Não pode julgar o que não mapeou.
- Examine o modelo de domínio de cada módulo. Ainda corresponde à forma como o negócio opera hoje? Se sim, refatorar é o ponto de partida.
- Verifique a plataforma. Uma linguagem, sistema operativo ou fornecedor sem suporte empurra o módulo para a reescrita, seja qual for a qualidade do código.
- Orçamente os dois caminhos por módulo. Inclua o custo de operar dois sistemas em paralelo durante uma reescrita.
- Ordene por risco e valor. Comece onde o valor chega mais depressa e mantenha cada fase reversível até se provar.
O que muda a entrega assistida por IA nesta decisão?
A IA muda a economia dos dois caminhos, mas não de forma simétrica nem sem disciplina. O relatório "State of AI-assisted Software Development 2025" da DORA, baseado em respostas de quase 5.000 profissionais de tecnologia, concluiu que a IA atua como amplificador das forças e fraquezas que já existem na organização.
Numa refatoração, a IA acelera as partes seguras: testes de caracterização, desemaranhar módulos, migrar padrões. O processo de entrega integrado com IA da Doomity torna este trabalho até 40% mais rápido, sempre sobre uma rede de testes. As equipas fundadoras da Doomity construíram sistemas para a Holcim, a Canon España e a Indra: o legado empresarial é terreno conhecido, não um mercado novo.
FAQ
Raramente, e apenas quando quase todos os módulos chumbam nos mesmos testes: um modelo de dados que luta contra o negócio, uma plataforma morta ou uma compatibilidade que custa mais do que a substituição. Mesmo nesse caso, a Doomity recomenda executá-la como migração por fases com o padrão strangler, e não como um corte único. A conclusão da McKinsey e de Oxford, de que os grandes projetos ultrapassam o orçamento em 45%, é razão para manter cada aposta pequena, seja qual for o veredicto.
Sim, e deve, porque uma refatoração que congela o roadmap perde os patrocinadores muito antes de terminar. O padrão que a Doomity aplica é encaminhar o trabalho novo para os módulos que são saneados primeiro, para que refatoração e entrega se reforcem mutuamente. As funcionalidades aterram em código melhorado e a melhoria é validada por uso real, não por um plano.
Não invista mais orçamento só para a terminar por princípio. Os ativos recuperáveis costumam ser o novo modelo de dados e os módulos bem testados; podem integrar-se numa migração por fases que devolve o sistema antigo ao centro. A Doomity avalia reescritas paradas como qualquer sistema legado: primeiro inventário, veredicto por módulo e um plano em que cada fase entrega algo a produção.
Comece por uma avaliação baseada em inventário e não por uma proposta comercial, seja da Doomity ou de outro fornecedor. Um veredicto credível nomeia cada módulo, expõe o raciocínio e orçamenta os dois caminhos, para que o possa contestar ou levar a outra equipa. A Doomity entrega exatamente isso num Legacy Assessment de âmbito fechado, e o diagnóstico gratuito de sistemas legados dá-lhe uma primeira leitura antes de qualquer chamada.
A resposta honesta é por módulo, não por sistema. O Legacy Assessment da Doomity dá-lhe um veredicto de refatorar ou reescrever para cada um, com o raciocínio por escrito.