Устаревшие системы доставляют неудобства, но часто остаются ценными — они обеспечивают работу бизнеса. Решение о рефакторинге, замене или снятии с производства должно приниматься на основе стоимости и ценности, а не отвращения к старому коду. «Это старое и некрасиво» — это не причина; «это нас стоит денег» — вот причина.
Руководство по принятию решения
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
