Sistemas legados são desconfortáveis, mas frequentemente valiosos; eles mantêm o negócio funcionando. A decisão de refatorar, substituir ou descontinuar deve ser orientada por custo e valor, não por aversão ao código antigo. "É antigo e feio" não é uma razão; "está nos custando" é.
Por que isso importa
REFACTOR (improve in place) when:
- Core logic is sound; it's holding business value
- Problems are localized; you can improve incrementally
REPLACE (rewrite/migrate) when:
- It blocks important work and can't be incrementally fixed
- Maintenance cost > rebuild cost over a sensible horizon
- It's a growing security or reliability liability
RETIRE (remove entirely) when:
- Its value no longer justifies any maintenance cost
- Usage has dwindled; a simpler path exists
