Doomity

Recursos

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ãoRefatorarReescrever
RiscoMuitos passos pequenos e reversíveis; o sistema nunca paraUma aposta grande; o risco concentra-se no corte final
Perfil de custoDistribuído no tempo; pode parar após qualquer fase e manter os ganhosPago à cabeça; financia dois sistemas até o novo substituir o antigo
Tempo até ao valorAs primeiras melhorias chegam a produção em semanasO valor só chega quando a substituição estiver completa
EquipaFunciona com a equipa atual, que aprende o domínio a partir do códigoExige uma equipa paralela, e o sistema antigo continua a precisar de gente
Quando ganhaA lógica de negócio é válida; a dor é estruturalO 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.

  1. Inventarie o sistema. Liste módulos, fluxos de dados e dependências. Não pode julgar o que não mapeou.
  2. 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.
  3. 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.
  4. Orçamente os dois caminhos por módulo. Inclua o custo de operar dois sistemas em paralelo durante uma reescrita.
  5. 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.