Skip to main content

AI rises to the challenge with COBOL

AI rises to the challenge with COBOL
(Image credit: Shutterstock / Ryzhi)

From Connecticut to California, states across the country are in desperate need of COBOL - Common Business-Oriented Language - programmers. When the deluge of coronavirus-related unemployment claims began pouring in at the pandemic’s onset, many of the decades-old government computer systems responsible for processing those claims struggled and, in many cases, crashed.

About the author

Steve Brothers is President at Phase Change.

With nearly 17 million unemployment claims filed between March 15 and April 4 of 2020, the exceptionally large volume of traffic and number of requests the U.S.’s unemployment systems experienced put myriad states behind the proverbial eight ball since they don’t have the resources to maintain them. Consequently, the global crisis has left many state governments scrambling in search of COBOL-fluent coders.

Despite being one of the oldest of all programming languages, COBOL skills remain in high demand. Numerous states use systems that still run on older mainframe computers and require COBOL-proficient programmers to make changes to the existing programs.

Is the COBOL challenge really a skills shortage?

Part of the challenge, however, is that programmers familiar with the 60-year-old computer language can be difficult to find because the individuals who wrote all of the billions of lines of code still running these mission-critical applications are either aging out of the workforce or opting for a new career path. Plus, COBOL is not very well known among modern software developers since only a dwindling number of universities continue to teach the language as part of their computer science curriculum.

Since the challenge is often considered to be solely a skills shortage, organizations across industries are significantly investing in hiring young developers and teaching them how to write COBOL before tasking them with changing enterprise systems. Due to the unavailability of COBOL skills in the future, state governments and private-sector companies are now modernizing their systems because they believe that doing so reduces risk. However, maintaining and improving critical applications forces software teams to lean on the dwindling number of software developers who developed an expert understanding of programs, changes and challenges through years of experience - and replacing that specialized knowledge when it leaves an organization can also introduce significant risk.

Developers new to software applications typically require months - even years - of on-the-job training to become productive and proficient. But knowing how to write COBOL is not enough, and the language itself is not at the heart of the problem. To avoid making dangerous mistakes that put systems at risk, it’s important that developers comprehend what an application actually does and how changing code in one part may impact the entire system.

While the coronavirus pandemic compelled us to recognize the importance of the ever-shrinking COBOL workforce, the COBOL challenge extends well beyond unemployment systems. A 2017 Reuters report revealed that there are still 220 billion lines of COBOL in use today, 95% of ATM transactions use COBOL code and COBOL is even used to power 80% of in-person transactions. More than 70% of Fortune 500 companies, 92% of the U.S.’s largest retailers and 90-plus percent of both the world’s 100 largest banks as well as the globe's 10 largest insurance companies continue to rely on legacy mainframe systems using COBOL - and such systems still handle $3 trillion in commerce every day.

In many cases, mainframe modernization is a band-aid, not a cure

In spite of the fact that COBOL was the most commonly used programming language for mainframes, such systems have largely become unfashionable as tech giants emphasize the use of cloud computing to process data. Enterprise organizations have debated using limited IT resources to migrate legacy systems to the cloud. And without additional funding from the federal government, many states will struggle to modernize their existing systems to the cloud.

But modernization, even if the organization can afford it, will not ultimately solve the problem. Mainframe modernization is simply not a zero-sum game - it frequently has a substantively negative ROI. Regrettably, tackling the COBOL problem by migrating just moves the real problem to another platform because the problem is not solely a skills problem - it’s a knowledge problem and one that applies to all other programming languages too.

Frequently, modernization projects assume that everything in an existing application is correct and programmers can precisely capture its functionality, but there tends to be a significant amount of dead and inefficient code plus old business rules lurking within the system. Discerning the true intent of application functionality is no easy feat. In such scenarios, developers lacking knowledge of the system are reluctant to make changes and are basically moving a lot of dirt from one platform to another.

Even if the organization may gain some benefits by moving “dirt” to the new platform, modernization doesn’t solve all problems - and it doesn’t come without risks. As is the case with spoken languages, meaning risks getting lost in translation between different programming languages. The system becomes progressively more obscure and difficult to maintain, and the development workload continues to increase in the future.

Moving the knowledge problem to another platform can be quite cost-prohibitive, so what have the organizations actually gained?

Fortunately, artificial intelligence may now be leveraged to keep the code running correctly despite necessary changes and to bridge the productivity gap between departing developers and the people who replace them.

The power of AI

Regardless of which platform a system is running on, the key to maintaining a system or modernizing it is precisely identifying behavior written in the lines of code spread throughout the system.

Today, developers spend roughly three-quarters of their time searching through source code to identify the code that represents the functionality that the business wants to change or modernize. Instead of relying on aging subject-matter experts to pass along that specialized knowledge (an imperfect endeavor, if there ever was one), forward-thinking organizations are now employing advanced artificial intelligence tools to automate the identification of the specific lines of code that require attention - regardless of how scattered throughout the system that code is.

Specific behaviors are often entwined throughout the code repository, so developers must conceptualize what the code does at each step along the way to unearth the intent of previous developers encoded in the software and reveal the bug that they seek to fix. When AI knows in advance all behaviors, such tools are positioned to collaborate with the developer to narrow down to the code that needs to change, without searching through and understanding code to get to the specific lines in question. AI conceptualizes what the computation represents and leverages machine speed to quickly and efficiently point potential bugs out to developers, empowering them to make changes with confidence that the intended change won’t break the entire system.

After the AI identifies the code representing a behavior that needs to be changed, developers essentially "propose" a change without compiling or checking the code in. From there, the AI can confirm whether the change is isolated before moving onto the next step: guaranteeing that behavior will never change in the future. Bringing this back to state government unemployment systems, the code that controlled and managed data surrounding unemployment claims could have quickly and accurately been identified using AI. Governments would do well to investigate and engage this sort of AI to assist them in fixing clearly pressing problems.

In the end, it’s evident that mainframes won’t be replaced anytime soon. However, the improved productivity and efficiency that AI offers by reimagining code into concepts are crucial to developers working to maintain and improve the vitally important mainframe systems where bulk transaction volumes need to be handled simultaneously. Leveraging new technologies and software tools can help any organization reduce its risk and continue operating while new developers get up to speed.