Skip to main content

Command Palette

Search for a command to run...

O que é realmente Software legado

Updated
3 min read
O que é realmente Software legado

Ao longo dos últimos anos muito se tem falado sobre escrever bons softwares, usando as ditas melhores práticas, sendo preciso reescrever grande parte dos softwares rodando. Essa é uma história bem comum em nossa profissão, a empresa contrata um novo desenvolvedor e ele vem com a proposta de reescrever do ZERO um software funcional que atende vários usuários e que traz receita para a empresa.

E qual é o argumento usado? Sim o Software e Legado.
Mas o que realmente é um software legado?
O legado está relacionado somente a tecnologia?
Pode existir mais de um tipo de software legado?

Mas antes de falar com mais detalhes sobre quais características envolvem ou melhor possuem um software/código legado, vamos 1º conceituar o que de fato e legado.

Vamos pegar a definição do dicionário da infopedia:

“aquilo que as gerações passadas transmitem às atuais”, incluindo dádivas ou contribuições culturais”

Dessa forma entendemos que o legado é o que foi deixado para a posteridade, então legado de software/código é tudo aquilo que a geração anterior desenvolvedores nos deixou ou mesmo o desenvolvedor que trabalhou naquele software, sendo que muitas coisas deixas no software/código é valido só precisa de manutenção. E outras precisam de substituição, por vários motivos como desempenho, segurança ou simplesmente por ser ruim.

Tendo disso isso vale ressaltar é que legado tornou-se sinônimo de algo ruim, quando na verdade ele está contando uma história sobre o momento da empresa/pessoa que usa aquele software/código. E não estou dizendo que não existem péssimos legados, estou apenas reforçando que se uma empresa possui um legado quer dizer que possui uma história e esse legado possui na casa dos 2 anos em diante quer dizer que rendeu alguns frutos.

Então o pensamento de reescrever um software/código em uma tecnologia, mais moderna, ou no framework mais recente não ser um legado, principalmente um bem ruim, não poderia estar mais errado, porque o que torna um software legado, não está totalmente relacionado a tecnologia usada e sim a forma como ele é planejado e executado. É óbvio que um software pode ser legado em relação a tecnologia usada se ela não tem mais atualizações, exemplo construir agora em 2025 um sistema usando PHP5. Esse é sim um software legado em relação a tecnologia, pois o PHP no atual momento da escrita desse post está na versão 8.4, com inúmeros recursos.

O fato é que software legado não está estritamente ligado somente a tecnologia usada no mesmo, então podemos concluir que conceitualmente um código/software legado é:

“Software/código criado para atender uma demanda, aplicando tecnologias e técnicas, sendo na atualidade sujeito a mudanças e melhorias”

O Michael Feathers em seu livro “Trabalho eficaz com código legado” é bem radical em dizer que legado e todo e qualquer software escrito sem TESTE e pior ainda sem TESTE AUTOMATIZADOS, essa definição nos ajuda a pensar melhor em como desenvolver software.

Em pleno 2025 ainda vemos pessoas falando que TESTE AUTOMATIZADOS são bobagens desde que o software funcione não precisa disso, está entregue o cliente está feliz então que diabos ficar falando desse negócio de TESTE. O que é engraçado que esse pensamento é o mesmo das pessoas que não são de tecnologia, mas estão diretamente ligadas ao processo de desenvolvimento. Tais pessoas, bem como esses desenvolvedores que acreditam que TESTE é bobagem, não entendem que o difícil não é desenvolver um software o difícil e mantê-lo, por isso os TESTES são importantes para a manutenção do software.

Tipos de legado

  • Tecnologia ultrapassada

  • Arquitetura mal elaborada

  • Divida técnica

  • Bem construído, documentado, com TESTES, sejam automatizados ou manual(automatizado é melhor)

Considerações finais

Não tenha medo de pegar um legado, não fique com preconceito, só por que é um software antigo, se tiver a oportunidade de trabalhar com um legado, estude a possibilidade de modernizar, ou até mesmo reescrever o software.

More from this blog

João Manoel

2 posts

Sou desenvolvedor com mais de 9 anos de experiência em tecnologias como AdvPL, TL++, PHP, .NET, além de amplo conhecimento no ERP TOTVS Protheus. Atuo no desenvolvimento de soluções voltadas automação