Software legado é um sistema antigo, desenvolvido há muito tempo, mas que ainda executa funções essenciais para a empresa. Pode estar em linguagens e plataformas ultrapassadas (como COBOL e sistemas de grande porte), e mesmo assim ser crítico para o negócio.
Por que ainda existe
- Funciona e concentra anos de regras de negócio.
- Reescrever é caro, arriscado e demorado.
- Poucas pessoas conhecem todo o sistema.
Problemas comuns
- Baixa qualidade e documentação pobre ou inexistente.
- Dependência de poucas pessoas que conhecem o código.
- Tecnologia sem suporte: linguagens, bancos e sistemas fora de manutenção, com riscos de segurança.
- Dificuldade de integração com sistemas e APIs modernos.
- Custo crescente de manutenção e de mudanças.
Estratégias
| Estratégia | Quando faz sentido |
|---|---|
| Manter e ajustar | O sistema é estável e muda pouco. Documente e crie testes. |
| Encapsular (APIs) | Expor funções do legado por APIs para outros sistemas, sem mexer no núcleo. |
| Reengenharia | Reestruturar o código para melhorar a manutenção. Veja reengenharia de software. |
| Migração gradual | Substituir partes aos poucos (padrão Strangler Fig), reduzindo o risco. |
| Substituição completa | Quando o custo de manter supera o de trocar; exige planejamento rigoroso. |
Por onde começar
- Faça um inventário: o que o sistema faz, quem usa, o que depende dele.
- Documente regras de negócio e fluxos críticos.
- Crie testes que garantam o comportamento atual.
- Defina a estratégia por parte do sistema, e não de uma vez.
Cuidado
"Legado" não significa "ruim". Significa software que sustenta o negócio hoje. Trocar sem entender as regras embutidas nele é um dos riscos mais comuns de projetos de modernização.
