“An information system that may be based on outdated technologies, but is critical to day-to-day operations. Replacing legacy applications and systems with systems based on new and different technologies is one of the information systems (IS) professional’s most significant challenges. As enterprises upgrade or change their technologies, they must ensure compatibility with old systems and data formats that are still in use.” - Gartner’s IT Glossary
A legacy system can be any element of a software, a piece of technology or an entire system that blocks or slows down the overall ability of the organisation to grow and adapt to the changing dynamics of the present market. Upgrading legacy systems can be quite a challenge, but this tough road must be walked upon once in a while to avoid greater losses in the future.
Hence, the costs might not be laid out on the table upfront, but a lot of resources go into keeping the legacy system working. It is not just the software updates that one has to be mindful of. Basic infrastructure changes are also needed every now and then as legacy systems mostly need a specific technical environment and hardware. Compared to the modern cloud databases, it becomes quite a tedious task to keep updating several scattered databases and storage sources of legacy systems.
In addition to this, as the technology gets more and more obsolete, the specific set of skills and expertise required to handle these systems are also difficult to find. The ownership would need to conduct staff training and retain specific talent to work around these.
Post update, it goes without saying that systems that are new and have the latest technology incorporated in them work better than older systems due to the massive technological advances that keep happening at the drop of a hat. For example, today's modern systems rely heavily on Third Party Integrations and APIs (Application Programming Interface) to access expertise in various dimensions. Hence, the newer technologies that crop up are made integration ready by default, a form of support that word mostly be incompatible with obsolete technologies. Connecting legacy software to a third party tool would require a monumental amount of custom coding, and would still stand a chance of not working as well as intended.
One of the greatest risks associated with using legacy systems is the lack of security updates provided by the vendor. Some problems cannot be dealt with the easy way, and tackling vulnerable systems by warding off impending viruses can be a difficult job when you’re left unassisted.
If one keeps making investments in progress in terms of legacy systems, minimal space for innovation and progress is left within the organisation. If a company is not open to adopting new technologies and business models, they are always risking stagnation and letting newer opportunities in the industry pass on untapped.
For example, with increasing digitisation and as one of the supposed impacts of COVID-19, digital wallets and digitised banking have gained ground and are preferred over cash transactions. In this case, if there exists a bank that does not provide adequate support for digital lending or transactions, they are bound to lose out on potential customers. A competitor's convenient website or a lightweight mobile app are tools that make it easy to lure away consumers.
Legacy systems modernisation approaches
Before stepping forward to the implementation of any legacy systems modernization techniques, it is important to assess one’s present capabilities and adaptation along with future needs and requirements.
Think about the parts of the legacy systems that are still working well after all these years and have stood the test of time. While it is true that systems need upgrades, it doesn't necessarily mean that every component needs to be changed. Or maybe it does - you will never know unless proper assessment is done about what is working well in the legacy system and what isn't.
Outline all the specific goals both theoretically and statistically that are meant to be achieved in this enterprise modernisation process. It needs to be seen less as an IT upgrade and more as a new business endeavour. There might have been certain blockages that prompted you to take this step in the first place. Assess all these blockages again to make sure that the problem which was meant to be solved is indeed solved at the end.
Is modernization really the solution to the problems that you are facing? If yes, how exactly will it impact these issues and what will be the process of resolution? Will the new IT enterprise contain the key components that will give you the flexibility and competitiveness that is needed to accomplish these goals? Since we are talking of huge investments in the form of upgrades, it is wise to refer to the big picture once.
What approach do you want to take? Depending on the issue, there may be several approaches to how you modernize the system. Is the software that you have based several applications of your business the cog? Or is the legacy software way beyond repair, and change cannot be brought about in the existing system? Different approaches will be required to tackle different dimensions of the problem.
(B) The process
Encapsulation / Retool
Encapsulation is a legacy system modernisation technique in which the code is left in its current environment and connected to the new presentation and layers via an API. This extends the functionality of the application by broadening its features. Encapsulation is based on 'wrapping', which provides a new interface to a legacy component hence making it more accessible to reach. Little changes are made in the code to minimise risk vulnerabilities.
Encapsulation is an economical process which is pretty fast to organise and execute, and hence is a good option to go for when the legacy system already has a good quality code and has a high business value.
If after assessment it is realised that the system is way beyond repair or will consume more resources than its actual worth, perhaps a wiser option is to entirely replace the system with a different tool or software than to invest in the said system's modernization, which is most likely to fail. If all else fails, a legacy system replacement strategy needs to be put in place.
The technique of rebuilding rewrites the application components from scratch, but in the process, preserves their scope and specifications. Here, the legacy elements are materially restructured and optimised into a cloud native environment. Although a full rebuild is the most tiresome and expensive route, it does deliver the maximum benefits and most businesses consider this is the ideal end state for upgrading legacy systems.
The replatforming approach ports the system's components to a new platform with minimum changes in the code, thereby retaining the same features. Changes in the code are made only so that it can adapt properly to the new platform. Migrations like these are suitable for a company that wants to preserve the core functionalities of the system while also being cost efficient. It is important to note that not all systems need elaborate methods to level up, and replatforming might work the best with some.
In the process of rehosting, the mainframe application is moved unchanged to another physical or cloud infrastructure. This involves the lowest cost or risk. Compared to re engineering projects that can take several years to conclude, rehosting is faster and keeps the underlying business idea intact. Hence, there are barely any negative impacts on the enterprise with the system operating in the exact same way even after an upgrade.
Code refactoring is the process of optimising and correcting the existing code, without changing the external behaviour of the code. In refactoring, some obsolete code is removed or replaced and the overall bugs and issues are corrected to maximise working efficiency of the system. It is a great method for solving technical problems and improving the components' features and structure. Read this complete guide on code refactoring to know more.
It also might happen that after a careful assessment of the system and its working, you might decide that it would be wise to retire the application and move the remaining users to alternate systems that your company already has in place, instead of investing in upgrading the legacy system. When a company chooses the retirement route, the system may contain information that is no longer required or relevant, or simply not that important to retain.
Challenges with upgrading legacy systems
Like any other monumental step impacting the lives of tens and thousands of people associated with it, upgrading legacy systems also come with quite a few challenges.
One of the biggest legacy system challenges is that if a company has a legacy system, they most probably have a bunch of legacy users as well. These users have learnt the technology, figured out the shortcuts, and probably put in place their own procedures to make the system work for them. There might be a certain resistance to change that these users might experience, since they have invested their time and effort into understanding the system over the years.
In order to tackle this problem, conducting surveys and inviting inputs from the users of your legacy system during the decision-making process can be a good idea. Your users may not understand all the technicalities of the system but owing to their experience they do know what they like and what doesn't work for them, and that can serve as essential information before undergoing a change.
The very reason companies stick with legacy systems for so long is because they have a very plausible risk to combat, which is data loss. When such huge amounts of data is being migrated, information loss is a huge danger.
Apart from users' adaptation to newer systems, another important facet of changing legacy software is that employees find it difficult to work through the changes without proper training. If not resolved properly, there can be a lack of interest among the employees towards the workflow hence severely impacting the overall productivity of the organization. The IT staff may also be inundated with phone calls and mails from clueless employees seeking assistance. To minimise disruption like this the timing and scope of the upgrade needs to be closely considered beforehand.
Spoilt for choice
More the choice, greater the confusion. Decades ago, when there were a very limited number of software and hardware vendors to choose from and the needs of organisations were much simpler, everything wasn't as daunting as it is today. With the current market flooded with vendors, trying to figure out which system is best for your company isn't an easy task. This fact only increases your research time and makes the assessment part a bit tedious and lengthier.
Well, challenging or not, a legacy system upgrade is something that one has to undergo at some point or the other to stay relevant and up to date with the current trends and opportunities. With increasing software vulnerabilities and risk factors associated with obsolete systems, an upgrade should be on one's books in the near future.
Akanksha is a writer more by personality than by profession. Believes in the unpopular opinion that Kindles are better than books. Also believes that even inanimate things have their own personalities - tea is all things bright and summery, coffee is all things cold and suave.