IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant for Z

What is the watsonx Code Assistant for Z?
IBM watsonx™ Code Assistant for Z is a generative AI-assisted product built to accelerate mainframe application modernization at lower cost and with less risk than today’s alternatives.

watsonx Code Assistant for Z provides an end-to-end application developer lifecycle that includes application discovery and analysis, automated code refactoring, COBOL to Java conversion, automated test generation and code explanation.

Developers can automatically refactor selected elements of an application and continue modernizing in COBOL, or selectively transform code to Java leveraging generative AI using a highly tuned state-of-the-art large language model.

watsonx Code Assistant for Z provides the flexibility to deploy its large language model either on-premises or as-a-service.

 

Personas

 

Deb the Junior COBOL Developer

Deb is a junior COBOL developer just a few months into her new role at a large insurance company. Eager to prove herself but often unsure where to start, she’s been handed a legacy application full of dense, undocumented code. She spends hours trying to understand it, toggling between outdated internal docs and hoping someone on her team has time to help. But senior devs are swamped, and she’s hesitant to ask again.

What she really wants is to feel like she can figure it out on her own.


 

Painpoints

Deb’s pain points - Deb is new to COBOL and often finds herself staring at legacy code she can’t make sense of. The documentation is outdated, and while senior developers try to help, they’re stretched thin. She feels hesitant to ask too many questions and ends up spending hours stuck on things that should take minutes. What Deb needs is a way to understand the code on her own quickly, clearly, and without second-guessing herself every step of the way.

 

Hill

Deb, the Junior COBOL developer, can seamlessly engage in a conversation with AI, getting quick and accurate answers to questions about her code without relying on senior developers.

 
 

The original code explanation experience

The original code explanation experience was where it all began my first opportunity to shape how developers like Deb would interact with AI in watsonx Code Assistant for Z. I designed a clean, side-panel interface that allowed users to view natural language explanations alongside COBOL code, without losing their place or breaking focus. It was about making complexity feel approachable, giving Deb the clarity she needed without overwhelming her.

At the time, there was no template for how this should look or feel. Every detail had to be intentional: where the explanation would live, how much space it should take, how the information would load, and how to make the AI output feel supportive, not intimidating. I focused on tone, structure, and readability because for a newer developer like Deb, trust starts with understanding.


This panel experience became the foundation for everything that followed. It gave users like Deb a sense of control and access, helping her move forward without constantly relying on a senior developer. As the experience evolved into chat-based explanations, the early design principles clarity, support, and empowerment, continued to anchor the product.

In May 2024, these efforts culminated at Think 2024 IBM in Boston, where I had the opportunity to lead the design of a special event demo prototype for watsonx Code Assistant for Z: Code Explanation. Built specifically to showcase how our AI could explain COBOL code in a way that’s clear, trustworthy, and grounded in real business needs, the demo was featured during two and a half days of industry discussion, innovation, and thought leadership.

Designing this wasn’t just about creating a side panel, it was about opening a door for Deb, and for developers like her, to make progress, build confidence, and feel seen in a system that can often feel overwhelming. That’s the work I’m most proud of.

“...this is great...very powerful.
— Kyle Charlet, IBM Fellow, CTO IBM Z Software

Follow Deb, the Jr. COBOL Developer, as she generates an explanation using watsonx Code Assistant for Z.

Try the interactive demo.

 

Empowering the Next Step: Transitioning from Side Panel to Chat

As watsonx Code Assistant for Z evolved, so did our understanding of how developers like Deb needed to interact with AI. While the original side panel brought clarity and access, it became clear that users craved even more flexibility and fluidity, especially as their questions and workflows became more complex.

This led to the transition toward a chat-based interface.

For Deb, this shift meant even greater empowerment. She was no longer just reading what the AI chose to show, but she could drive the interaction, clarify misunderstandings, and tailor the support to match her real-time thought process. It turned watsonx Code Assistant for Z from a helpful tool into a trusted coding partner.

By giving Deb a voice in the experience, the chat interface honored her curiosity, her autonomy, and her growth as a developer. It reflected the same core design values we began with clarity, support, empowerment, only now made even more dynamic, personalized, and human.

As the Lead UX Designer for watsonx Code Assistant for Z: Code Explanation, I was responsible for leading the full user experience design for the transition from a side-panel interface to a dynamic, chat-based interaction model.

While product management owned the overall business strategy, I owned and executed the UX vision: creating interaction flows, designing conversation patterns, prototyping new experiences, and ensuring that every detail from tone to structure, supported a more intuitive and empowering user journey.

My focus was on designing a system where developers like Deb could interact naturally with AI, ask questions, dive deeper into explanations, and build confidence without feeling overwhelmed. I worked closely with cross-functional teams, providing the UX leadership needed to guide the visual and interaction design while maintaining a strong user-centered perspective throughout.

This transition was about more than just adding a chat window. It was about evolving the relationship between users and AI, ensuring that as the technology became more capable, it stayed grounded in clarity, support, and human trust.

 

In-design Slash Commands for Chat

This feature is part of a larger upcoming upgrade to the chat experience, which I’ve been actively designing in close collaboration with development. I’ve led the UX side by defining interaction flows, designing how developers trigger and review AI-generated comments, and working through edge cases with engineering partners to ensure smooth behavior across different code structures.

Currently, I’m aligning with the core WCA team, who are reviewing the latest designs to ensure consistency across experiences. We’re approaching this as a shared effort, my role has been to shape the user experience end-to-end while incorporating feedback, identifying friction points early, and making sure the result feels cohesive, scalable, and intuitive for users like Deb.

For Deb, this upgrade makes it easier to take action on AI support directly within her workflow. Instead of copying and pasting explanations or manually referencing suggestions, she can now insert clear, context-aware comments right where she needs them. It gives her clarity without interruption and keeps her learning while building.

This isn’t just a UI enhancement, it’s a thoughtful evolution in how junior developers like Deb engage with and trust AI as a partner in their development journey.

 
 

Smart Targeting with @: Designing for How Developers Think

As part of our effort to streamline the experience in watsonx Code Assistant for Z, I explored new ways for developers to target code more naturally and confidently. The previous approach required users to manually reference line numbers or highlight blocks of code, a method that was prone to error, especially for junior developers like Deb. To improve this, I designed a context-aware system using familiar reference tags like @paragraph. This aligned with how COBOL developers already think about their code, and allowed Deb to quickly and accurately target the logical unit she needed help with, all while receiving visual guidance through autocomplete suggestions.

The goal was simple: reduce the need for precision, increase clarity, and support natural workflows. Whether Deb needed to comment on code or ask for an explanation, the experience guided her toward the right input format without breaking her focus or requiring documentation. This design not only simplifies the current experience, it lays the foundation for scalable, intuitive interactions across languages and use cases.

Alternate version – COBOL Paragraph Filtering

The command menu dynamically narrows to show only logical units of code (paragraphs) relevant to the file Deb is currently working in. This simplifies scanning and eliminates noise. Deb can start typing @paragraph, triggering an autocomplete list that lets her zero in on the exact code unit she wants to explain or comment on. She no longer needs to scroll through generic line numbers or memorize labels.

This change significantly lowers the cognitive load, supports faster task completion, and helps Deb build confidence in her understanding of COBOL’s structure.

Why It's a Better UX

  • Clarity: @paragraph is readable and intuitive. It’s easy to infer what Deb is targeting.

  • Discoverability: The type-ahead interaction and menu suggestions help guide newer users.

  • Consistency: It matches how COBOL is structured and how devs talk about their work (e.g., “check paragraph 740”).

  • Scalability: This pattern can expand to support other code constructs (@step, @procedure, etc.) for other languages(JCL, PLI/I).

COBOL Paragraph options in menu (click image to expand)

COBOL Paragraph options in menu, drill-down (click image to expand)

 

Designing Smarter Prompt Commands: Empowering Deb with Context and Confidence

As part of ongoing enhancements to the watsonx Code Assistant for Z chat experience, I designed improved slash command menu interactions to make navigating AI commands easier and more intuitive for users like Deb , a junior COBOL developer still building confidence.

Deb may know what she wants help with (e.g., inserting comments or asking for explanations), but the growing list of slash commands can be intimidating or unclear to new users. My goal was to reduce ambiguity, increase discoverability, and ensure that Deb always feels guided, not lost.

The Design Problem

Previously, the command menu was a plain dropdown with no supporting context, making it difficult for users like Deb to understand:

  • What each command actually does

  • How to properly format it

  • Which one is best for their current need

Command menu options - VERSION B - HELPER TEXT IN MENU OPTIONS (click image to expand)

Alternate version B – Descriptive Helper Text

In this version, each command option includes a simple, human-readable description of its functionality. When Deb sees /comment, she no longer has to guess, she’s told exactly what it does in plain language.

This helps Deb understand the difference between commands at a glance, removing guesswork and improving efficiency.

 

Alternate version C – Syntax + Helper Text

In this enhanced version, Deb sees not only the description but also example syntax for how to use the command, such as:
/comment <code reference> [optional input]

This gives Deb the confidence to take action without needing external documentation. It reduces trial and error and makes the interface feel smarter and more responsive to her workflow.

Command menu options - VERSION C - HELPER TEXT AND SYNTAX IN MENU OPTIONS (click image to expand)

 

Exploring Code Snippet Display Versions

As part of the ongoing design work for the /document command in watsonx Code Assistant for Z, I explored multiple output versions for how AI-generated documentation is returned within the chat interface.

The goal was to determine the most effective and flexible way to help developers like Deb review, insert, and take action on generated comments, without disrupting their workflow.

Alternate version – Comments + Code + Line Numbers (click image to expand)

Alternate version – Comments + Code + Line Numbers

This version displays the code with inline AI-generated comments and preserves line numbers, helping Deb understand where the changes are occurring in the broader file. It's great for users who need orientation within the original context, and it supports referencing or sharing code with others.

 

Alternate version – Comments Only

This version focuses exclusively on the generated documentation, stripping away the code and showing only the inserted comments. It offers a minimal, clutter-free view that’s great for quick reviews, especially if Deb already knows the structure of the code but wants to verify what the AI produced.

Alternate version – Comments Only (click image to expand)

 

Alternate version – Comments + Line Numbers (No Code) (click to expand)

Alternate version – Comments + Line Numbers (No Code)

This option shows only the comments alongside corresponding line numbers, helping Deb quickly assess which parts of the code are being annotated without rereading the logic itself. It’s ideal for high-level auditing or scenarios where visibility into structure is more important than detail.

 

Why Explore Multiple Versions?

Different developers have different working styles. Some want to insert immediately, others want to inspect and copy, and many need a view that aligns with how they currently read or navigate code.

Outcomes

These options have been reviewed in collaboration with WCA4Z Development and the Core WCA team. The outcomes were:

  • Offer the best-performing version based on user feedback

  • Stay in alignment with the core WCA team, fortifying consistency across the greater product experience

 

Slash Document Experience: Cupcake

When we began exploring how to bring AI-assisted documentation into the hands of COBOL developers, we knew we had to start small and with something simple, useful, and lovable. This experience was the result of many iterations, cross-functional conversations, and hands-on testing. It became our “cupcake delivery” the first delightful slice of a much larger vision that’s still evolving(cupcake, birthday cake, and then wedding cake). The cupcake is a small, delightful first delivery that provides real user value; the birthday cake builds on it with more features and refinement; and the wedding cake is the full, end-to-end experience.

Our primary persona, Deb, is a junior COBOL developer. She’s bright, capable, and still learning. Like many new developers, she often hesitates when reading legacy code, unsure of its intent. Instead of interrupting a senior developer or combing through outdated documentation, we wanted to give her a lightweight, intuitive way to learn and move forward without ever leaving her editor.

The slash document experience gives Deb the ability to generate documentation or code comments either for the full COBOL file or for a specific paragraph via the code lens. By simply typing /document into the chat, Deb can trigger AI to generate lightweight documentation summaries across her file. She can also use the inline code lens to document a specific logical unit. From there, she chooses what to insert the documentation as a comment or she can copy it to the clipboard.

This is distinct from /explain, which produces deeper, more detailed summaries that often require more time to read and digest. Developer feedback confirmed that /document plays a critical role in supporting fast, focused workflows, which is why our WCA4Z team owns it directly (while our parent team WCA focuses more on explanation).

I led the UX design for this experience from concept through delivery, shaping every tooltip, flow, button, and fallback message to build clarity and trust. We accounted for error states, inline previews, confirmation messages, and even a progression tracker, a subtle but critical addition that lets users know how much of a large file has been documented (directly informed by real user pain points).

This experience wasn’t meant to be everything. It was our cupcake: small, thoughtful, and genuinely useful. It gave users a glimpse of what’s possible and gave our team the insight we needed to take the next step forward.

 
 

Outcomes

  • Designed the foundational UX for AI-assisted COBOL explanation, used as the baseline interaction model across Watsonx Code Assistant for Z.

  • Helped junior developers like Deb onboard faster with a clean, non-disruptive side-panel experience that delivered clarity right inside the editor.

  • Led the evolution from static UI to a dynamic, chat-based interface, allowing users to ask follow-ups and guide AI responses in a more natural flow.

  • Introduced smarter slash commands with syntax previews, helper text, and targeted paragraph-level documentation, all built to feel intuitive and developer-friendly.

  • Designed flexible output options for generated documentation, including comment-only views.

  • Improved readability and comprehension through clear formatting, intentional typography, and accessible design across both panel and chat views.

  • Created interaction patterns like inline insert/copy buttons, enabling one-click integration of AI-generated content directly into code.

  • Ensured UX alignment with the broader Watsonx Code Assistant ecosystem to maintain consistency and scale design across tools.

  • Highlighted the design in a live demo at IBM Think 2024, where I led the prototype UX showcased during the event.

  • Received executive praise from IBM’s VP and CTO of Z Software for the clarity, usability, and product impact of the experience.


    Visit IBM watsonx Code Assistant for Z to learn more.

 

Top