Most businesses who rely on commercial software to manage their business information recognize that keeping their software up to date is generally a good thing. Bug fixes and feature enhancements are often delivered to licensed users in the form of interim or point releases, allowing users to benefit from recent developments immediately rather than waiting for an entirely new version to be released. More frequently, software developers are using the Internet to provide real-time notifications to customers that program updates are available, and many software products even encourage the user to download and install the updates as soon as they become available.
In previous years, when the Internet wasn’t quite so available and useful, software companies distributed their products on CDs and disks. Technical people would usually manage the software installations, because the process wasn’t necessarily simple or straight forward, and end-users were not really involved. This usually gave the business at least some foundation to recover from a bad software update – by performing the initial installation on test systems, creating system backups prior to update installation, and other methods. Today, the end-user is often among the first to know about an available software update, and may even be the one who obtains and triggers the update installation (often without IT involvement).
There are good and bad aspects to this “instant gratification” approach to software maintenance. In terms of empowering the end-user and simplifying software installations, allowing the program to essentially update itself has proven to be quite popular and can be a really slick way to get new capability into user hands quickly. The method allows the user to receive software enhancements and new features more rapidly, delivering more value in the product. While the popularity of this model is generally limited to the smaller business markets and users, there are a growing number of instances where it is encroaching into the enterprise solution set. When it comes to complicated technologies and complex enterprise business solutions, however, IT professionals are still generally relied upon for most change
The problem with allowing the end-user base – which is often a very non-technical audience – to make decisions relating to application installations and updates is that they may have little or no real basis for understanding the decision they are about to make. While the application may light up and ring bells and notify the user that a very important software update should be downloaded and installed, what information is provided relating to the actual likely outcome of the action? Very little, in most cases. And, even if information were provided to the end-user, would they read it and understand it?
There have been numerous instances where software companies serving the small business market pushed “very important updates” out to their installed bases, and where those important updates created serious issues with either the software installation or the data. In many cases, extensive recovery or reparation processes were required in order to get the system back to a usable state. In some cases, serious data damage occurred and the only recourse was to restore from backups. The concept of the “easy update” in these cases failed the customer and, in many cases, resulted in additional IT costs to fix the systems or restore them to full operational status.
*Note: if you’d like an example, read here about Intuit QuickBooks problems with the R8 update for 2011.There really isn’t a perfect solution to this problem; what works for one business may not work for another, so it is unreasonable to expect the software companies to come up with a distribution and maintenance model that works for everyone. With even small business software becoming more technically complex, the likelihood of software bugs and errors only increases, which puts the additional burden of testing squarely on the customer’s shoulders. The software developers can test their solutions to a point, but they may not find every problem or issue, and the result is that the user market ends up helping to debug the product.
Dealing with these types of issues – software installations and updates, and recovering from a bad software release- is something a quality application service provider can help you with. By providing a level of technical software testing prior to implementation, the hosting provider can often avoid issues caused by software releases that don’t install properly or that damage the core installation. Unfortunately, the provider is generally not in a position to know when an update may damage data or functionality within the application, particularly if that damage is not immediately evident.
There is a fine balance between implementation of updates as customers demand versus providing some level of validation for the update prior to implementation. While the hosting service provider is often required to keep the hosted applications at the most current revision available for each product hosted, the service provider may also help protect the customer from bad updates by taking that little bit of extra time before they implement.
The important thing to recognize is that, just because your software tells you there is an update available, it doesn’t mean it’s a good idea to install it. Give it a little time to get out in the market and let other users do the testing. When it comes to software updates, patience may be the greatest virtue.
Make Sense?