The prolific wordsmith from Liaison Technologies, Nathan Camp is back again, this time talking about software maintenance and why a well managed business doesn’t take short cuts, they keep maintenance in place and therefore their products current.
I am asked by companies using our software what their annual maintenance plan really buys them. This question often comes up during the maintenance renewal process as they look at their system running smoothly, with no major projects or migrations planned, and no sweat on the IT director’s brow.
Wikipedia defines software maintenance as, “The modification of a software product after delivery to correct faults, to improve performance or other attributes.” This means that technical support of the software code is a separate function. With this definition in place, I will make the statement that all software, whether delivered through on-premise installation, through software-as-a-service (SaaS), or built in house, must have a software maintenance plan in place. Whether you pay an annual fee, or the software maintenance and upkeep costs are tied into your monthly services plan, or it’s simply your IT teams’ salaries, you should be deriving benefits from your services and service provider.
Most of these benefits are basic and commonly understood. I will highlight four of these most common benefits.
(1) Maintenance Keeps Your Software and Services Up to Date for Support
Every major piece of software usually has some indexing system to define different versions as updates are released. These versions correlate to a master list of software modifications, and can quickly help a support technician know if an issue identified by the client has been resolved in a more current version of the software. Often, software versions will be broken into two classifications: minor builds and major releases. Minor builds add incremental corrections and small enhancements. Major releases often involve many more sweeping changes to the look and functionality of the user interfaces, and deeper changes affecting performance and new capabilities within the software. Supporting two or more major versions is often a daunting task, and requires a multiplication of ongoing technical training and information repositories. Most software companies will provide support for a limited time on older software to allow you time to upgrade your software. If your solution provider allows you to linger in older versions, you should expect that your maintenance and support fees will be higher to offset their costs.
With SaaS delivery, the software provider can often eliminate their support of multiple versions by simply upgrading all of their clients at the same time to the new version. Code changes must be thoroughly pretested prior to release to ensure that the new changes work across the entire community. The SaaS provider must also have contingencies in place to quickly roll back and restore previous versions if the new versions cause unexpected issues for their active users. Some single-tenant SaaS solutions may allow you to retain different versions than other users, but this results in the same support burden as on-premise clients that do not upgrade.
(2) Corrections and Enhancements
Whether we pay for commercial software or have downloaded freeware for our personal use, we expect the software to run correctly. Your investment into a maintenance plan is largely there to fund fixes for things that aren’t working as well as add enhancements to make things work better. It can also fund the creation of new ways that make the rest of your operations more efficient.
(3) Version Upgrades Included
Most major software companies actively encourage their clients to stay current by offering free upgrades to minor and major releases of software. The software stays fresh and consistent across the user base, and everyone benefits from fixes and enhancements. Often, leap-frog ehancements of significance are released with major versions.
(4) Staying Current with Evolving Standards
In the world of EDI data integration, ANSI X12 and EDIFACT provide new versions of their standards about once every year and a half. These new standards can impact the form of data, the types of data, and the breadth of information available for exchange. Liaison Technologies for example, simply makes these new dictionary standards available in our products as they are released from the governing organizations. The same can be said for emerging data formats. As I mentioned in a previous blog, Liaison Delta recently introduced support for JSON. This new data format is now equally supported along with XML, EDI, database, and data files. It is a pretty significant feature that was included for no additional cost to our active clients.
I know there are several other reasons why maintenance plans are a great idea to maintain, but I want to highlight a reason we all often overlook.
(5) Security Compliance Audits
If you were thinking this before you read it, you are a superstar. It is likely true that you are concerned with emerging threats and/or you are responsible for running vulnerability audits and scans of your systems. You also know that software systems are usually not built from the ground up as a single system, but are based on specific programming languages, and can include core building blocks of code from other software companies that can drastically reduce development time, increase capabilities, and respect intellectual property rights. Customized code is added on top and the whole software architecture is tied together to make up the new, unique solution.
The software as a whole must continue to evolve across the entire range of components to protect against any of the building block systems going out of date or a new security threat invented by those that would do harm. As your security policies evolve in your company, this can result in a software or SaaS system being flagged for an audit check when vulnerabilities are uncovered. As an example, I have seen some software tagged as at risk because it was using an older version of Jetty. In order to eliminate the security vulnerability, the software development team responded by quickly updating the Jetty component into a new version release. But that vulnerability is only alleviated if the clients apply the software updates to their system.
Your business customers or suppliers may also implement their own risk reduction processes that can affect you as well. Target Corporation (www.target.com) is setting up an AS2 connection to one of our newest clients. The client created a self-signed certificate and sent the public key to Target. Up until recently, MD5-based certificates were accepted for exchange. But now, Target has requested that SHA1 certificates be used instead. For Liaison’s clients, our ECS developers anticipated this change, and had already been developing a new version of our certificate generator that will soon give our clients the choice of either MD5 or SHA1 formats.
There are many other reasons why a commercially available software package or service must retain a maintenance plan. The same is absolutely true if your organization builds your own software systems. If you have built your own system, then you too are required to ensure that your systems evolve to drive new benefits, eliminate issues, and shelter your company from vulnerabilities. You, like us, must apply consistent R&D to grow and nurture your software.
- Building Your Own Integration is just plain dumb.