Published on by Pat Ramsey, Director of Technology
A key piece of enterprise software management is how well software updates are handled. Across an organization, an update for key critical software, especially in the case of automatic updates, is no small task, as there are several factors that have to be considered. Ignoring any one of the following can prove problematic, if not downright disastrous.
- Feature changes conflict with in-house scripts or macros, disrupting operations and requiring additional work and documentation
- Conflicts with third-party software provided by other vendors, requiring a secondary upgrade cycle and determining prioritization - which upgrade is done first?
- Perception issues - “It’s just an update. Why does it take so long / cost so much?”
- User interface changes in the new version which disrupt the day-to-day “muscle memory” employees have developed
Staying Ahead of Software Releases
A key benefit of Open Source is the speed at which updates can be created and released. In many cases, security issues that are discovered can be patched in a matter of hours. As Open Source software has become more common in the Enterprise, it is subject to the same kinds of considerations and upgrade processes, especially when it comes to automatic software updates.
Care must be taken to manage unintended consequences and conflicts from an automatic update that was released without being tested for its impact on your internal code and workflows. Otherwise the risks can be serious, such as suffering down time due to unknown software conflicts introduced with the update, or work slowdowns due to unforeseen interface changes that differ what has been the case in earlier versions of the software, or any number of unknowns. By following a software upgrade process, updates can be applied quickly and responsibly, minimizing these risks with little impact to end-users.
The idea that a bug can be fixed automatically, without a user having to touch any code is a powerful one. Automatic updates can be found in mobile phone operating systems, desktop operating systems, end-user applications, and content management systems such as WordPress. With no user interaction, software can update itself. On one hand, this is fantastic. Bug fixes can be applied across the user base for a piece of software in an instant, something that was out of the realm of reality just a decade ago. On the other hand, what software can’t do (yet) is look at other pieces of related software and see if they will fail following an automated update.
This is where a software release process is a must-have. Whether this is something that can be addressed internally in your organization, or you retain an experienced team to support & manage this process on an ongoing basis, it is crucial that there is a process in place.
Automatic Updates in WordPress
Since WordPress version 3.7 was released, automatic updates have been possible and enabled by default. From the page on automatic background updates:
By default, every site has automatic updates enabled for minor core releases and translation files. Sites already running a development version also have automatic updates to further #development versions enabled by default. Click To Tweet
Minor core releases are those where the third number in the version number changes. 5.2.1 to 5.2.2, for example. Minor releases are “intended for bug fixes and enhancements that do not add new deployed files…” These are generally safe to install without consequence. “Generally safe” being the key phrase. It’s not a guarantee that a third-party plugin, or in-house custom code, won’t conflict with changes in the update. There have also been instances where minor releases introduced new software features, which is generally not done.
Enterprise systems need to run without interruption. There are real dollars attached to these systems remaining up and running smoothly. Allowing automated updates to be performed without any testing is probably not a good idea as the risks described above are simply too costly. Surprises should be avoided on your production systems, especially ones introduced by a bug from software updates that were not tested ahead of time. Sometimes "bugs" may not even be the fault of the update. As an example, perhaps there is a piece of code in your system that uses a deprecated way of doing something. A new update to the core software no longer recognizes that deprecated process, but because it was not tested ahead of time, now there is corruption to your system database. With a release process in place for handling updates, this type of scenario can be avoided.
Can automatic updates be disabled? This will be true or false depending on the software. Again, if we’re talking about WordPress, the answer is yes. A website owner can configure automatic updates in different ways, making it possible to align updates with your in-house practices. If a managed hosting provider is used, then how automated updates for your website’s core software are managed is something most likely part of the service-level agreement (SLA) in place and it is always advisable to understand the details of a hosting provider’s SLA when creating your software release process for your website.
Plan, Manage, & Stay in Control of Software Updates
To avoid pitfalls and perils such as system downtime, work slowage, data corruption, or others, one can create and follow a software release process designed to catch potential issues in updates and address them before the entire organization is affected. Crowd Favorite has consulted with several of our enterprise partners over the years creating these types of processes. We’ve learned in that time there are commonalities that should be taken into consideration, whether the final process is handled by our Managed Services team or by our partner’s in-house Web team. The software release process might vary in complexity, but in each case, the following factors are a part of it:
- If possible, beta releases of upcoming updates should be tested in order to catch potential issues early
- Having a test server or other type of isolated system that can replicate mission-critical functions without impacting “real life” data or processes, and using this system to test new software updates is critical
- Software updates can change interfaces, making it important to create a documentation process for relaying upcoming UI changes to your team such as written documentation or training that teams can go through prior to the update
If you are currently without a process for managing updates for your website’s Open Source updates and aligning them with your workflows and business needs, then a good partner can make all the difference. At Crowd Favorite, we’ve been architecting and building Open Source software solutions for over a decade, including processes for website software updates and maintenance. If your business is experiencing the “or else” symptoms that come from these automatic software updates, we’re ready to help!