The International Data Corporation defines a legacy application as “a software application that is considered obsolete or based on outdated software or infrastructure”. But there are many still in use today. And some of these systems aren’t compatible with modern operating systems, hardware or programming languages. Legacy modernisation is the process of transforming these applications to make them to make them easier to update, able to respond to changing business needs, and more affordable to manage and maintain.
There are many arguments for modernisation of legacy systems – such as cost, sustainability, harnessing benefits of up-to-date technologies, and more. There are also arguments against modernisation. One of these arguments, is that if you already have a working, reliable and functional system, why would you change it? However, saying “if it ain’t broke don’t fix it” doesn’t cover the personnel issues associated with some legacy systems. So instead, ask the question: if it does break, who can fix it? And even if it isn’t broken, who can maintain it?
This point was recently illustrated by the unemployment system in New Jersey. With the COVID-19 pandemic, they experienced a 1600% increase in claims. This overloaded their COBOL-based legacy system. The Governor of New Jersey needed to put out a call for volunteers who knew how to program in COBOL to help.
COBOL is a programming language that is over 60 years old. Considering to the pace that technology is updating, this is practically ancient. Despite this, three-quarters of organisations report that COBOL remains one of the most prominent languages in their mainframe estate. But the talent pool for developers who know COBOL and other legacy languages is becoming smaller. This creates problems when it comes to maintaining, supporting, fixing, or updating these systems.
Legacy language skills are at risk of going extinct in some workplaces. As the employees who know how to program in these legacy languages retire or move on to more modern technologies for career progression, they take their knowledge with them. Also, most universities aren’t teaching legacy languages like COBOL. This creates major issues for companies that depend on legacy systems for critical applications, as they need developers with these skills to maintain their systems. According to Advanced, 89% of large businesses are worried about talent shortages when it comes to maintaining and managing legacy IT systems.
In addition, almost one-third of organisations say that their developers don’t want to learn legacy language skills. This isn’t surprising. The skills required in software-intensive jobs, like programming, change faster than those in any other industry. Developers need to be able to conquer new skills to keep up, not old ones. Over a quarter of organisations worry that they will lose developers to competitors that are using more modern technologies.
The combination of workers with these skills leaving the workforce, and newer developers not learning them, means that developers that have knowledge of these legacy languages are becoming rarer. This paints a bleak picture for the future of applications that use legacy languages. And this without examining other issues associated with legacy applications, like maintenance costs, or the difficulties faced without appropriate documentation (which is unfortunately not uncommon in these systems).
So, what do you do if you have a legacy system that relies on legacy languages? If you want to continue with these systems as is, there are a few options. You could try to recruit staff with the knowledge to manage the systems, but these talent pools are shrinking. Or you could retrain staff, but this can be expensive, especially if you use more than one legacy language in use. This also relies also on them wanting to learn the languages. And even then, they’ll eventually retire too.
There is now a shift towards modernisation of legacy applications. This year, 86% of organisations reported they had modernised over half of their legacy applications. But how do you go about it? The answer to this questions will be different for different applications. And organisations don’t need to stick to only using one approach. But if the use of legacy languages is the main driver, rebuilding might be the way to go, as it most directly addresses this issue by rewriting legacy code.
Rebuilding applications involves rewriting part or all of the code in an application. Organisations can start writing the software again from scratch, or rewrite components of the application, piece by piece. Rewriting legacy applications is the second most common method of modernisation currently used by organisations. Fully rebuilding an application can deliver huge benefits. Developers can add new features and functionality, and take advantage of modern technologies like cloud computing and containerisation. The main drawbacks with this approach are generally the time and cost involved. But there are technologies, like low-code platforms, that can help simplify and accelerate the process of software development.
Legacy languages and legacy software play an important role in businesses’ software landscapes. But finding developers knowledgeable in these languages is difficult, if not impossible. That’s why dealing with technical debt by rebuilding applications on a modern stack is an important part of IT strategy. This is where low-code solutions can help by providing a quicker way to turn legacy applications into modern web applications.