Too many businesses are reluctant to upgrade their software, and it’s holding them back long-term. Let’s find out more.
The recent article on Finextra by Digiterre highlighted a challenge we see all the time.
While the piece focused on the positive changes in productivity that the new ‘working from home’ normal has brought us, it also noted, ‘more limited test automation of legacy platforms.’
Productivity for innovations is wonderful if you can implement the upgrades and the testing required. In this article, we’re going to look at the consequences of this difficulty, and how you can overcome it.
A familiar story
It’s a situation most of us have been in at one time or another. You’ve spent valuable budget on the latest enterprise software and gone through the lengthy implementation process. The application has been performing brilliantly for the last six months,
and you’re happy. Then, your vendor tells you there’s a new update available. What do you do? Most business owners will take a pass on the upgrade.
Fast forward two years, your software is still working well, but you know there have been significant technological advances in enterprise software during this time. There are solutions on the market with features that your enterprise software simply cannot
deliver. You expect that your competitors are gaining benefits from these new solutions, but what about you? Can you risk the disruption to your business that upgrading your software will cause, no matter how effective it is?
The cost of inaction
Many of the businesses we talk to sit on upgrade versions of vendor’s software for 2-3 years. They can’t spare the resources or the time from across the business necessary to make it work. It’s seen as an incremental project, not worth the time investment
for short-term, incremental benefits.
However, incremental benefits add up. In the long-term, the reduction in capability businesses face can be substantial. Eventually, they are forced to make the leap, but they have missed out on all the marginal gains while they sat on their hands.
If you can put in place a plan to maintain, enhance, and upgrade your software, you can reap the long-term rewards:
- Life-cycle extension to your software;
- Reduction in the time allocated to upgrade projects;
- Wider team resources released;
- The agility to adapt or build new client-facing solutions.
Three steps to success
So, how do you overcome these challenges? You need to understand that planning for upgrades is a fundamental part of the product lifecycle.
Here are three approaches to consider so you can incorporate upgrades into whatever stage of your platform development;
1 – Starting from Scratch
If you’re in the privileged position of just starting the process to develop the next generation of software for your business, this is the moment to consider how you will deal with upgrades. Whether you are planning to build in-house or take an off the
shelf product, you must incorporate release management and testing into that process.
Often, we see that existing legacy software frameworks have been manipulated over so many years, that understanding and testing the broader system is beyond the business’ capability without significant investment.
A more acceptable alternative is a greenfield approach. When you can develop a new, separate, or loosely integrated subsystem, you are able to address many of the solution update challenges through proprietary technology improvements.
2 – Focus for off-the-shelf software vendors
If you’re already running on, or planning to take, an existing system from an off-the-shelf vendor, you should be aware of the challenges that come from being reliant on an external partner.
Understandably, software vendors do not talk much about their testing and update implementation processes. They’re not the most exciting conversation topics. Vendors would much rather focus upon the latest innovation and how they’re outpacing their competitors
in the market. However, without the capability for existing clients to upgrade easily and take advantage of this innovation, they’re only focussing on the next new client win.
Talk to your vendors – put pressure on them to place a greater focus on how you can integrate this technology quicker. Get them to understand how highly you value testing and upgrading processes. It will allow you to take advantage of the new, business-driving
3 – Upgrading an existing system
Focus on testing
When implementing a new upgrade to your system, the key stage is testing. To sign off any new version, we need to replicate a wide variety of your business processes from algorithms, data integration, reporting, workflow, and more. The scale of this testing
program is often the biggest barrier to taking on upgrades.
Automating the Testing Process
One of the biggest challenges to the testing process is manual intervention, often involving teams of individuals from across several sectors of the business.
Through an upfront investment in time from these individuals, from accounting to trading, and technology you can automate many of these processes giving you the capability to upgrade when you require.
There are many approaches to removing the manual involvement and therefore accelerating the testing process. Ideally you want a test system that contains a model of your system requirements with less data but that tests all your edge cases. If your product
has tools that allow you to automatically run that test system you have a way of automating your tests. Normally you can re-use import/export routines to achieve a large chunk of that manual work.
Depending on the products functionality you should be able to work through this approach:
- Identify the key business processes required to be replicated;
- Create a new blank database;
- Develop a test system in your platform to run your business processes, for example;
- Creating new database entities;
- Create history of transaction operations;
- Run calculations, algorithms, and custom processes;
- Run Reports;
- Exporting data;
- Export this test system to an import file in the stages you need it to be processed in;
Now whenever you want to test a new version of the product you can automate the following steps:
- Run the import file (Created in step 4 above) on a new blank database;
- Compare this new database with the one developed in step 3 above
If all the data is the same then you know your data, calculations, algorithms, processes, reports, etc that you care about are still behaving consistently.
Your ability to automate the above steps depends heavily on the capabilities of the tools provided by the vendors product. Where possible you may need to incorporate proprietary technology to fill gaps or apply pressure to the vendor to open-up more of their
tools to facilitate these steps.