New commercial software comes out everyday but should you upgrade immediately or wait? Recently in my IT consulting practice, I’ve received many requests to this perennial question. This is especially true with the new arrival of Windows 10. Much like any other piece of mission critical software there is some logic and advice I’d recommend you follow in making such decisions. Before we continue let’s explain some basic concepts. Software goes through certain phases of development to reach a point of maturity where it is considered readily “stable” and “bug free” to be run by its consumers. These phases are as follows:
Early Development Stages – Testing & Development Phases
- Pre-alpha – early testing
- Alpha – first phase testing (first letter of Greek alphabet)
- Beta – second phase of testing (second letter of Greek alphabet)
Later Development Stages – Release Phases
- Release Candidate – a beta with potential to be end product
- Release to Manufacturing – generally ready to be delivered to customer
- General Availability – marketing stage
- Production Release – final stable release
End-of-life – final stage of a software release life cycle.
Which Release Should I Deploy
Generally commercial software users should stay clear of all stages except production releases. Even then you should be conservative and wait at least a year (more on this later). Any other option in the release cycle could introduce incompatibilities, stability issues, data loss or worse. Unless you develop a software product yourself or have such in house expertise there is no reason to use or deploy anything other than a production release.
When Should I Upgrade/Update
From 20 years in IT, I have a rather conservative stance when it comes to upgrades on mission critical infrastructure. Truly there is no need to rush for the shiny new product unless you can prove a financial or technical reason(s) that make it imperative. If there is no deeply compelling reason to upgrade then most organizations should wait till the software further matures.
Wait a Year – Patience Pays off
As I detailed above it makes sense to wait for some time after a production release till some of the bugs and incompatibilities are worked out. For me it is at least a year before I think it makes sense to move forward on a major upgrades. This gives time for the software vendor to test for bugs, incompatibilities and vulnerabilities. Going for a more mature and stable code base is always a sound technical and financial decision. Patches and other short term fixes (these are not major releases) should be applied on an ongoing basis as patch management is vital best practice of any IT organization.
Plan, Test, Validate, Deploy
Planning and testing are vital to assure you have a working, productive infrastructure. With new software of any kind it should be tested before it goes into general production in your environment. This will take the guess work and head aches out of the process of moving to this updated software. Once you have validated it will in fact work as planned you can deploy.
EOL, or end of life means software that the software is no longer supported. This is the point at which you can no longer expect patches and updates from the software maker. This also leaves you with no support, perpetual zero day and a compliance nightmare. As I’ve written previously on Windows XP and Microsoft Windows Server 2003 there is only one option – upgrade asap. At a higher level planning should always be proactive so that these migrations happen well for the EOL date.
I hope this post has been helpful in helping you decide if and when to upgrade. Generally wait a bit before doing any major upgrade. Plan, test and deploy. You will be happy you did.