Investigating the value and potential business benefit of
IBM watsonx Code Assistant for Z
By applying generative AI (gen AI) to the software development lifecycle (SDLC), businesses can improve productivity and enable greater flexibility and innovation.
For example, IDC research shows that software development and design is the business area that will be most impacted by gen AI in 2024.
According to IDC, gen AI is seen as vital for meeting strategic objectives, particularly in software development. Adoptions of gen AI can enhance IT organizations' abilities to deliver effective digital solutions despite challenges posed by mainframe and cloud-native applications, such as complexity and talent shortage. By integrating gen AI into development tools, vendors enable customers to expedite digital solution creation, tackle service issues, foster collaboration, and allocate resources more efficiently, but organizations must ensure responsible and sustainable use to avoid potential risks.
Often, people expect that gen AI tools will automate the work of all architects and developers. But this is not what we really observe. Where does this misconception come from?
One can easily be impressed by the elegance of answers provided by an AI model. The intelligence we as humans can inject into the generated artifacts feeds the impression that the model itself exhibits intelligence. This observation of intelligence drives the assumption of consistent quality of a model, just like how we would expect consistent behavior from another human.
In reality, the correctness of AI, including Large Language Models (LLMs), is partially by design. Sometimes generated content looks very convincing but is incorrect.
Models are based on statistics, not a deeper understanding of the world they operate in. Models do not “feel” anything and specifically do not feel accountable for the correctness of their generated content.
Now, does this mean large language models cannot provide value?
Despite not always being fully correct, answers generated by LLMS that are used in a human-in-the-loop approach are able to provide new ways of engagement and work enhancements that cannot be realized by traditional process improvement methods. Rather than supplanting human developers, these tools offer invaluable assistance, enriching the development process in multifaceted ways. By leveraging AI to navigate the intricate landscapes of mainframe application codebases, developers gain access to unparalleled insights and efficiencies.
Code assistants can be of great value to mainframe application modernization. Often, existing mainframe applications within an enterprise are monolithic and therefore extremely complex. This includes technical depth that results in high maintenance efforts, hardships to support business agility, and incompatibility with modern technology inside the underlying hardware or external stacks. Mainframe application modernization often poses huge risks, as changes made to the application affect core-business functions. The complexity of the application combined with a lack of high-quality documentation and mainframe technology subject matter experts makes modernization seem like an unsolvable mission.
IBM watsonx Code Assistant for Z helps at tasks such as code comprehension and understanding, auto-refactoring, code transformation, and validation of translation correctness, enabling developers to make more informed decisions and streamline their workflows. Moreover, the symbiotic relationship between human expertise and AI assistance lowers the bar of entry to unfamiliar technologies and languages by facilitating continuous learning and skill enhancement of developers and software architects. Rather than fearing obsolescence, developers should embrace AI as a collaborative tool in their quest to modernize applications, recognizing that the synergy between human ingenuity and AI-driven support yields superior outcomes in software development endeavors.
Therefore, we are continuously assessing the business value creators of IBM watsonx Code Assistant for Z, knowing it won’t solve all mainframe application modernization challenges with the click of a button, but will help to address the major ones.
watsonx Code Assistant for Z
is IBM’s code assistant for mainframe application modernization that leverages generative AI to help accelerate mainframe application modernization projects. Watsonx Code Assistant for Z increases development team efficiency and capacity by accelerating general developer productivity, broadening the developer pool, (e.g. leveraging a general pool of developers beyond application-specific experts) decreasing the reliance on scarce skill sets and decreasing time to productivity for new developers with reduced task complexity and AI assistance.
This helps to increase application modernization teams’ productivity, therefore increasing project output and/or quality with given recourses or reducing recourse binding for the projects itself, subsequently decreasing project risk.
Based on IBMs best practices for mainframe application modernization (Learn more: IBM Redbook: Accelerate Mainframe Application Modernization with Hybrid Cloud) a COBOL modernization through modularizing the monolithic application is always the first part of a project to ensure a selected and targeted approach, while being able to exploit the full value of the innovation of the mainframe. Therefore, let’s start assessing the benefits that a business can realize by using watsonx Code Assistant for Z in the understanding and refactoring phases of application modernization.
COBOL refactoring: Accelerating mainframe modernization and therefore decreasing the maintenance, complexity and technical depth of COBOL code while easing hybrid cloud integration.
Achieve higher application maintainability using watsonx Code Assistant for Z Refactoring Assistant. In the realm of modernizing COBOL applications, the technical maintainability of code is paramount, and watsonx Code Assistant for Z serves as a powerful ally in this endeavor. Unlike traditional translation tools, watsonx Code Assistant for Z functions as an architect's and developer's assistant facilitating the modernization activity through explaining, visualizing, and analyzing the code complexity and interdependency. Analyzing the complexity, maintainability, and interdependencies of multiple business services within mainframe applications, watsonx Code Assistant for Z enables organizations to identify and prioritize the most critical services for modernization, thereby accelerating time-to-value. Watsonx Code Assistant for Z helps the architect to more quickly understand a very complex and large mainframe application. Without this help, a developer would need to read and understand several thousand lines of code. Watsonx Code Assistant for Z breaks down this complexity by visualizing the application interdependencies to be analyzed by a human who can then select the services that should be modernized.
Once the target services are selected for modernization, refactoring becomes the next crucial step to achieve modular services. Modular services, characterized by fewer interdependencies with the overall monolith, are inherently easier to maintain, fostering increased agility. A small case study with an international logistics company revealed significant benefits, with modular services exhibiting 50-60% faster testing and a notable 58% reduction in maintenance effort compared to monolithic counterparts. Furthermore, watsonx Code Assistant for Z expedites COBOL refactoring by automatically generating self-contained refactored business functions, allowing developers to focus on enhancing the code instead of needing to find and slice needed and not-needed parts of the monolithic application.
Across an initial set of early adopting users and clients with different types of applications and developer skill levels, watsonx Code Assistant for Z was able to reduce the effort required for COBOL business service understanding up to 80% and refactoring by 15-66%.
Maintain and enhance institutional knowledge through accelerating skill-development with watsonx Code Assistant for Z
In the quest for long-term maintainability of COBOL code, cultivating a workforce with proficient knowledge and understanding of the application is paramount. However, many companies are grappling with an increased knowledge gap for their mainframe applications due to the aging codebase surpassing job tenures, leading to a scarcity of subject matter experts. Enter watsonx Code Assistant for Z, offering capabilities that help bridge this gap by supporting skill building with tools that are assisting the use of acquired skills along the learning journey. Watsonx Code Assistant for Z’s understanding capabilities simplify complex applications, facilitating comprehension even for early tenure experts. Moreover, code explanation helps to expedite developer understanding of code functionality, easing learning curves for both new and experienced developers navigating existing applications. By minimizing learning time and broadening the talent pool, watsonx Code Assistant for Z mitigates reliance on mainframe application experts, ensuring a more resilient and adaptable workforce in the face of evolving technological landscapes.
In essence, watsonx Code Assistant for Z plays a pivotal role in helping to ensure the technical maintainability of COBOL applications, facilitating a smoother application understanding and COBOL to COBOL refactoring, enhancing developer user experience and productivity, by reducing complexity and reducing the chores of repetitive tedious tasks.
COBOL-to-Java transformation: Increasing productivity, automation, and code quality within development teams
In the landscape of mainframe application modernization, particularly in the transformation from COBOL to Java, the use of a specialized model-based code assistant is supports developers in the tasks of code transformation.
This tool facilitates the intricate process of code transformation, leveraging a specifically trained large language model and algorithms to meticulously construct data structures and translate intricate business logic into Java, that developers can leverage for integration into their Java application. Unlike conventional approaches, this code transformation methodology harnesses the capabilities of gen AI, but tailored for the specific mainframe application modernization use case ensuring the resultant Java code adheres to well-architected standards, thereby eschewing the limitations of line-by-line converted "JOBOL.”
The benefits are manifold. Foremost, developers experience a significant uptick in productivity, as the code assistant expedites the transformation process, mitigating the time-consuming manual efforts traditionally associated with such endeavors.
Without any tooling, the developer has to write Java code from scratch, depending on a complete and correct understanding of the existing application architecture and COBOL code. Manually designing and implementing Java classes and translating COBOL paragraphs to Java methods.
With watsonx Code Assistant for Z, the initial proposed set of Java classes as well as variables is generated for the developers, from which they can decide to use, adjust and further improve them. That can reduce the total time for a developer to get to a designed Java business function from COBOL, by reducing the time to construct the initial draft version of the Java business function, so that the developer can focus on improving the suggestion. Especially for an early-tenure application developer or non-mainframe application expert, improving a Java function and contributing to the project becomes more approachable.
Therefore, the tool serves as a catalyst for skill acceleration, enabling faster onboarding of new developers and broadening the talent pool, thereby circumventing the perennial challenge of skill scarcity in mainframe application modernization initiatives.
Furthermore, with the validation assistant automating unit test generation and conducting comprehensive functional testing, the watsonx Code Assistant for Z is designed to fortify the semantic equivalence of the transformed Java codebase by validating the semantic equivalence of the COBOL and Java business function. This approach not only enhances developer productivity right within their integrated development environment (IDE) by automating repetitive testing tasks but also ensures heightened quality assurance, thereby instilling confidence in the reliability and robustness of the modernized application and reducing risk for implementation.
Within first observations, we could see around 60% effort reduction for Code Transformation when leveraging watsonx Code Assistant for Z.
In essence, there is a huge potential for value to be exploited by leveraging a generative AI-enabled code assistant for COBOL-to-Java transformation in mainframe application modernization, as it serves as a linchpin in expediting the transformation process while simultaneously helping to improve the overall quality of the modernized application landscape.
Decreasing maintenance effort of the Java code through a selected and targeted modernization approach.
Following IBM’s best practice for mainframe application modernization while leveraging watsonx Code Assistant for Z is expected to lead in a higher quality Java that is easier to maintain.
There are two main drivers impacting the maintainability of the Java:
(1) The quality and complexity of the COBOL the Java is generated from
The complexity and quality of a COBOL service directly impact the future maintenance of a Java service based on that COBOL. Simply translating a COBOL monolith often yields minimal business benefits and can prove even more challenging to update and maintain than the original COBOL program due to its lack of adaptability. With IBM's approach to mainframe modernization, supported by watsonx Code Assistant for Z, the modernization process becomes highly targeted. The initial application understanding is ensured through the assistance of watsonx Code Assistant for Z during the understanding phase. This results in the company's ability to make informed modernization decisions based on a fit-for-purpose approach. By transforming COBOL to Java using a modular COBOL business function and leveraging watsonx Code Assistant for Z Refactoring Assistant, the resulting code becomes significantly easier to maintain and less complex than the original business function within the monolith. This improved maintainability extends to the Java business service derived from the transformed COBOL business services.
(2) How the Java is generated
Line by line translation vs IBMs approach to translating COBOL to Java does not only imply that the code should be executed within a Java runtime environment vs a COBOL runtime environment, but additionally enables Java developers to understand, maintain, and extend the Java-based components. This requires more than a line-by-line translation from one language to another. The translation needs to reflect COBOL defined structures and business logic into logical Java classes, object structures, and methods implementing the defined business logic. The generative AI capabilities of IBM watsonx Code Assistant for Z generate Java code from the refactored COBOL code. The Java code produced is aligned with defined and constructed Java classes designed to co-exist and integrate with the existing IBM Z runtimes, data sources, and transaction monitors. This enables interoperability and integration back into the base COBOL application. Java code generated by IBM’s fine-tuned AI model is optimized for the IBM Z runtime and leverages the corresponding Java APIs that can exploit z/OS middleware and is not line-by-line translated “JOBOL” (Java-coded COBOL logic).
The generated Java code is a starting point for the developer to further iterate ad enhance the code into their Java application through watsonx Code Assistant for Z. The application developer goes through the Java code, resolving remaining syntax issues and applying specialised enhancements, specific best practices and make any necessary updates prior to the supported validation phase taking place right within the IDE.
With well-architected Java from the original COBOL business function generated with the click of a button, total developer time to write and tune the services decreases, resulting in increased developer productivity.
Further, code validation ensures the semantic equivalence of the generated Java business function with the COBOL business function, helping to ensure Code quality and reduce error rates as well as (unexpected) efforts for troubleshooting and fixing. IBM watsonx Code Assistant for Z Validation Assistant offers auto-generated test cases and automated testing, improving developer productivity and faster time to value.
Enhancing developer experience
IBM watsonx Code Assistant for Z elevates the developer experience by offering a seamless user interface, minimizes the time spent on tedious tasks through automation, and liberates developers to focus on critical and creative work. As developer engagement is closely tied to a great user experience, the efficiency gained from these tools not only enhances job satisfaction but also fosters a deeper sense of engagement with the work, by focusing on creative work instead of repetitive tasks. Consequently, by prioritizing tools that improve developer well-being and efficiency, companies can bolster talent retention by ensuring their developers feel valued and empowered in their roles.
Summary
IBM watsonx Code Assistant for Z can help increase developer productivity and experience, allow non-mainframe-experts to support application innovation, and achieve increased business agility and operational efficieny through mainframe modernization while lowering overall project risk.
Experience the difference for yourself and take the next step towards accelerate your own or your companies mainframe application modernisation journey. Get a feeling of how an AI-assisted developer modernisation experience can look like in this video or sign up to see it live and in action.
IBM watsonx Code Assistant for Z is part of the IBM DevOps Portfolio to transform mission-critical applications for hybrid cloud environments with stability, security and agility.
Learn more!
To learn more about how watsonx Code Asssitant for Z can accelerate your application modernization journey, join our webinar on a developer's journey of modernizing a COBOL application with watsonx Code Assistant for Z.
Authors
Stefan Liesche
IBM Distinguished Engineer
CTO IBM Z Hybrid Cloud Modernisation - watsonx Code Assistant for Z
liesche@de.ibm.com
Lousa Muschal
GTM Product Manager
watsonx Code Assistant for Z
louisa.muschal@ibm.com