• I think you upgrade either a) when it's needed, or b) when you have sufficient resources and time to do it without causing a disruption in your operations to gain new function that will benefit the organization.

    And by when it's needed, I mean that you see that finding the hardware that your OS/software will work with properly is becoming all too difficult...and it provides the looming possibility that you might lose function of systems totally if you don't.

    I have seen this at one city where I worked. They had an HP mainframe. An older one. And, getting replacement parts through 3rd party suppliers was becoming harder and harder. They seriously needed to look at a newer system, but the city council was too busy dumping money in the pocket of a local construction contractor whose renovation of an old building to become their "new" city hall was about 5 years overdue and 4x the original budget already. Their priorities were obviously in the wrong place. But, there was nothing IT could do about it.

    On the other hand, I actually know a county government where I worked, and they have an old, old PC running as a Linux server and it's been online over 10 years. They keep a few spare drives, some spare RAM, and a couple of spare motherboards. That way if a component goes down, they replace it and do what's needed to bring the box back up online ASAP.

    But as I think someone said earlier: "don't fix what ain't broke". They're wise words.