It is getting progressively harder to find IT professionals with the right skills to maintain business-critical legacy applications. As the popularity of legacy programming languages fades and the few remaining knowledgeable programmers retire, a daunting skills gap is created, making it harder to fill roles needed to keep these applications up and running. Industries such as banking, insurance and government that heavily relied on their in-house mainframe or client/server applications are the ones experiencing the skills gap more acutely.
As Baby Boomers retire, institutional knowledge about how to support the in-house applications they helped develop and maintain walks out the door with them. In the event of a software crash, security breach, or even a simple new feature request, the shrinking pool of experienced legacy system support staff presents a critical risk for IT and the overall business.
Millennials and Gen Z developers were never trained on the mainframe, do not code in legacy programming languages, and typically have no interest in working with older technologies. Mobile, Cloud, IoT, Blockchain, Machine Learning are the interest and focus for their education and career development.
New Jersey’s response to pandemic highlights the skills gap challenge
A good example of how bad the staffing crunch can get, look no further than New Jersey. Faced with a critical shortage of COBOL programmers in today’s unusual circumstances, the state found itself struggling to support its legacy unemployment insurance system. As COVID-19 swept through the state causing economic disruption, New Jersey faced a 1600% increase in unemployment claims. The outdated application struggled under the weight of its technical debt as unemployed citizens desperately waited for their unemployment checks, albeit, with serious delays. The governor himself even made a public appeal for more programmers on every known media outlet.
“We literally have a system that is forty-plus years old…There will be lots of postmortems and one of them on our list will be: how did we get here when we literally need COBOL programmers.”
-New Jersey Governor Phil Murphy
COBOL turned 60 years old last year, and 61% of COBOL programmers are now over the age of 45. Much to the surprise of many analysts who have declared COBOL a dying language over the last few decades, it is still very much in use in many enterprise applications. According to Reuters, there are still 220 billion lines of COBOL in use today by businesses. The banking industry remains most heavily reliant on COBOL. In fact, 43% of banking systems are built on COBOL and the lion’s share of banking transactions (80% in-person; 95% ATM) run across COBOL systems. It’s no wonder banks feel reluctant about replacing these workhorse systems.
This is a bigger problem than COBOL
It is not just COBOL causing the skills gap crisis. Other mainframe and client/server legacy languages include:
Many large enterprises continue to rely on these enduring programming languages of yesteryear. Fortran is still used in scientific and mathematical computational applications such as applied physics, weather forecasting, and engineering. Pascal (and Delphi Object Pascal) can still be found in a few commercial applications and C/C++ in even more. Heavily used by programmers in the 1980’s, Smalltalk applications are still in use at some large corporations, including banks, insurance, telecoms, and public utilities.
Not only is it difficult to find knowledgeable programmers to support legacy applications, they are also piled high with technical debt that impedes a company’s drive toward digital transformation. Legacy applications create dependencies on outdated hardware and programming languages, making it difficult to create good online and mobile customer experiences. Legacy platforms were not designed for cloud-based applications, mobile devices, AI, IoT, and Big Data. And millions of lines of rarely-reviewed legacy code lurking throughout enterprise applications also leaves unintended doors open to cybersecurity risks.
Solving for the skills gap
For enterprises that still depend on legacy platforms for daily business operations, there are only a few ways to address this future, a growing shortage of developers with legacy skills: temporarily retain legacy programmers longer, train younger professionals to fill the roles, or modernize your technology stack.
TEMPORARY Band-Aid: As a stop-gap measure, enterprises can try to entice legacy programmers to stay longer or attempt to convince younger programmers to learn legacy languages. Both of these options are going to require cold hard cash to keep programmers engaged. Additionally, businesses will need a training program for the younger coders. Some companies have started apprenticeship programs to hire young people with IT aptitude and teach them both cloud-based and legacy coding skills.
“Modernization is an essential goal for organizations with legacy infrastructure and applications. Organizations need to take a holistic approach to address skills gaps, resolve legacy architecture challenges and quickly meet changing market needs.”
-Terry Thomas, Director IBM Power Systems Hybrid-Cloud Offerings
BETTER Fix: Pushing more professionals into old tech places a temporary Band-Aid on the problem as the risks and technical debt with legacy systems still exist. Many leading technology analysts recommend enterprises invest their resources into modernizing critical hardware infrastructure and legacy software systems now in order to pursue long-term digital transformation. According to Gartner Distinguished VP Analyst, Andy Rowsell-Jones, IT departments spend too much of their time—and 70-75% of their annual budget—supporting legacy systems, infrastructure, and operations. These resources would be better used to “develop disruptive technologies” and “create new business opportunities.”
BEST Solution: Assuming they choose modernization over the Band-Aid approach, enterprises still don’t want a solution that takes years to deploy—they need modernization at “warp speed.” The best approach to rapid modernization is found in microservices extraction. The typical modernization process is to upgrade the entire legacy application before the smallest bit of functionality can be run on the new target platform—an all-or-nothing approach. By contrast, with microservices extraction, it is not necessary to modernize the entire legacy application. Instead, the modernization platform can identify and extract full execution paths of critical business functions to migrate to the desired platform, while identifying other “dead code” to be removed altogether. The result is a modernized application with only the business functionality that is still relevant operationally.
Corporations and government agencies still relying on legacy applications developed with obsolete coding languages incur several levels of risk. First and foremost, these applications often cannot support the enterprise technology strategy—they lack cloud and mobile functionality and are not well suited to advanced analytics, robotics, and AI that will drive operations and the customer experience in the future. Legacy applications are riddled with technical debt, making them difficult to support and potentially exposed to security breaches. Finally, enterprises find it increasingly difficult to retain skilled programmers familiar with older coding languages and young developers have no interest in learning what they perceive as “dead-end” skillsets.
All of these risks create a compelling case for modernizing legacy applications and enterprises will want to find the fastest, least painful path to modernization. With its ability to migrate only the functionality that continues to be useful to an organization, without having to migrate the entire application, the microservices extraction approach conserves IT resources and reduces disruption, making it a superior modernization method.