Look behind the scenes of any slick mobile application or commercial interface, and deep beneath the integration and service layers of any major enterprise’s application architecture, you will likely find mainframes running the show.
Critical applications and systems of record are using these core systems as part of a hybrid infrastructure. Any interruption in their ongoing operation could be disastrous to the continued operational integrity of the business. So much so that many companies are afraid to make substantive changes to them.
But change is inevitable, as technical debt is piling up. To achieve business agility and keep up with competitive challenges and customer demand, companies must absolutely modernize these applications. Instead of putting off change, leaders should seek new ways to accelerate digital transformation in their hybrid strategy.
The biggest obstacle to mainframe modernization is probably a talent crunch. Many of the mainframe and application experts who created and appended enterprise COBOL codebases over the years have likely either moved on or are retiring soon.
Scarier still, the next generation of talent will be hard to recruit, as newer computer science graduates who learned Java and newer languages won’t naturally picture themselves doing mainframe application development. For them, the work may not seem as sexy as mobile app design or as agile as cloud native development. In many ways, this is a rather unfair predisposition.
COBOL was created way before object orientation was even a thing—much less service orientation or cloud computing. With a lean set of commands, it shouldn’t be a complicated language for newer developers to learn or understand. And there’s no reason why mainframe applications wouldn’t benefit from agile development and smaller, incremental releases within a DevOps-style automated pipeline.
Figuring out what different teams have done with COBOL over the years is what makes it so hard to manage change. Developers made endless additions and logical loops to a procedural system that must be checked out and updated as a whole, rather than as components or loosely coupled services.
With code and programs woven together on the mainframe in this fashion, interdependencies and potential points of failure are too complex and numerous for even skilled developers to untangle. This makes COBOL app development feel more daunting than need be, causing many organizations to look for alternatives off the mainframe prematurely.
We’ve seen numerous hypes around generative AI (or GenAI) lately due to the widespread availability of large language models (LLMs) like ChatGPT and consumer-grade visual AI image generators.
While many cool possibilities are emerging in this space, there’s a nagging “hallucination factor” of LLMs when applied to critical business workflows. When AIs are trained with content found on the internet, they may often provide convincing and believable dialogss, but not fully accurate responses. For instance, ChatGPT recently cited imaginary case law precedents in a federal court, which could result in sanctions for the lazy lawyer who used it.
There are similar issues in trusting a chatbot AI to code a business application. While a generalized LLM may provide reasonable general suggestions for how to improve an app or easily churn out a standard enrollment form or code an asteroids-style game, the functional integrity of a business application depends heavily on what machine learning data the AI model was trained with.
Fortunately, production-oriented AI research was going on for years before ChatGPT arrived. IBM® has been building deep learning and inference models under their watsonx™ brand, and as a mainframe originator and innovator, they have built observational GenAI models trained and tuned on COBOL-to-Java transformation.
Their latest IBM watsonx™ Code Assistant for Z solution uses both rules-based processes and generative AI to accelerate mainframe application modernization. Now, development teams can lean on a very practical and enterprise-focused use of GenAI and automation to assist developers in application discovery, auto-refactoring and COBOL-to-Java transformation.
To make mainframe applications as agile and malleable to change as any other object-oriented or distributed application, organizations should make them top-level features of the continuous delivery pipeline. IBM watsonx Code Assistant for Z helps developers bring COBOL code into the application modernization lifecycle through three steps:
- Discovery. Before modernizing, developers need to figure out where attention is needed. First, the solution takes an inventory of all programs on the mainframe, mapping out architectural flow diagrams for each, with all of their data inputs and outputs. The visual flow model makes it easier for developers and architects to spot dependencies and obvious dead ends within the code base.
- Refactoring. This phase is all about breaking up monoliths into a more consumable form. IBM watsonx Code Assistant for Z looks across long-running program code bases to understand the intended business logic of the system. By decoupling commands and data, such as discrete processes, the solution refactors the COBOL code into modular business service components.
- Transformation. Here’s where the magic of an LLM tuned on enterprise COBOL-to-Java conversion can make a difference. The GenAI model translates COBOL program components into Java classes, allowing true object orientation and separation of concerns, so multiple teams can work in a parallel, agile fashion. Developers can then focus on refining code in Java in an IDE, with the AI providing look-ahead suggestions, much like a co-pilot feature you would see in other development tools.
We are generally skeptical of most vendor claims about AI, as often they are simply automation by another name.
Compared to learning all the nuances of the English language and speculating on the factual basis of words and paragraphs, mastering the syntax and structures of languages like COBOL and Java seems right up GenAI’s alley.
Generative AI models designed for enterprises like IBM watsonx Code Assistant for Z can reduce modernization effort and costs for the world’s most resource-constrained organizations. Applications on known platforms with thousands of lines of code are ideal training grounds for generative AI models like IBM watsonx Code Assistant for Z.
Even in resource constrained environments, GenAI can help teams clear modernization hurdles and augment the capabilities of even newer mainframe developers to make significant improvements in agility and resiliency atop their most critical core business applications.
- Part 1: “Mainframe application modernization beyond banking”
- Part 2: “Using collaboration (not migration) to modernize your mainframe applications with the cloud”
- Part 3: “Banking on mainframe-led digital transformation for financial services”
- Part 4: “Mainframe and the cloud? It’s easy with open source”
©2024 Intellyx B.V. Intellyx is editorially responsible for this document. No AI bots were used to write this content. At the time of writing, IBM is an Intellyx customer.
The post Modernizing mainframe applications with a boost from generative AI appeared first on IBM Blog.