Legacy-First Design: por que pensar no tempo muda tudo em arquitetura de software
Quando falamos de arquitetura de software, quase sempre a conversa gira em torno de evolução: novos frameworks, novas versões, novas práticas, novas stacks.
Mas existe uma pergunta que raramente aparece, e que costuma cobrar um preço alto lá na frente:
o que acontece com um sistema quando o tempo passa?
Na prática, muitos sistemas não se tornam difíceis de manter porque são antigos. Eles se tornam difíceis porque foram projetados sem considerar o impacto do tempo nas decisões arquiteturais.
Legado não é idade
Um sistema pode nascer “legado” em poucos meses.
Isso acontece quando:
- regras de negócio ficam presas a frameworks
- pequenas mudanças exigem grandes atualizações
- trocar um fornecedor externo vira um caos
- ninguém se sente seguro para mexer no código
Nesses casos, o problema não é a tecnologia usada, é a arquitetura orientada ao curto prazo.
O que é Legacy-First Design (LFD)?
Legacy-First Design (LFD) é um método conceitual de arquitetura de software que trata o tempo como uma restrição arquitetural primária.
Ele não é um framework, nem um padrão novo, nem depende de stack. O foco do LFD está no nível de decisão arquitetural, partindo de uma distinção clara entre:
- o que precisa durar
- e o que pode mudar ao longo do tempo
A ideia central é simples, mas desconfortável:
Um sistema deve continuar fazendo sentido mesmo quando ninguém mais estiver mantendo ele ativamente.
“Survival in Abandoned State”
Um dos conceitos centrais do LFD é o de Survival in Abandoned State (sobrevivência em estado de abandono).
A maioria das arquiteturas assume, implicitamente, que sempre haverá manutenção contínua. O LFD não assume isso.
Ele trata o abandono como um estado previsível no ciclo de vida do software, e não como exceção. Se um sistema colapsa conceitualmente quando é abandonado, mesmo funcionando bem antes, ele falhou como arquitetura
LFD substitui Clean Architecture, DDD ou Hexagonal?
Não. O LFD não substitui essas abordagens.
Ele funciona como uma camada de governança temporal, ajudando a decidir:
- o que deve ser protegido da mudança
- onde aplicar padrões conhecidos
- onde aceitar dependências transitórias
É menos sobre como estruturar e mais sobre o que pode mudar sem destruir o sistema.
Para quem isso faz sentido?
O Legacy-First Design é especialmente relevante para:
- sistemas de longa duração
- plataformas centrais de negócio
- software legado
- projetos que trocam de equipe com frequência
Ele não é indicado para protótipos descartáveis ou projetos de vida curta.
Leitura complementar
O método foi formalizado em um paper técnico, publicado em acesso aberto no Zenodo:
📄 Legacy-First Design (LFD): A Temporal Approach to Software Sustainability
👉 https://zenodo.org/records/18208444
O paper é curto, conceitual e aprofunda os princípios do método.
Para reflexão
Você já trabalhou em um sistema que “funcionava”, mas ninguém mais conseguia mexer com segurança?
O que, na prática, ajudou (ou atrapalhou) a sobrevivência desse sistema ao longo do tempo?



