Consider replacing when
The cost is in staying still
- Core libraries or runtimes are past end of life and cannot be upgraded in place
- Every change risks breaking something unrelated
- The platform it runs on is being retired
- You are paying to keep something alive that nobody uses fully
We will say this plainly even though a support contract would earn us more.