Rational Developer for z/OS (RDz) is an Integrated Development Environment (IDE) for mainframe developers. A Graphical User Interface (GUI)-based tool that runs on the PC, it helps mainframe developers connect to the mainframe and most of the analysis and development work they normally do in the ISPF/TSO environment through a 3270 emulator.

Using RDz delivers significant performance gains over a 3270 emulator. Stemming from the multiple and concurrent views with context-sensitive editor windows, TSO/UNIX shell windows, DB2 windows, debug windows and job status windows, RDz provides multiple views into the mainframe. For example, one view can display a context-sensitive editor to edit a COBOL program; another view can show a context-sensitive editor to edit Job Control Language (JCL); a third view can be used to debug a program; a fourth view can be used to run a TSO command; and a fifth view can be used to run a UNIX shell command. Since a significant amount of work shifts to the PC, it can lead to lower MIPS usage on the mainframe.

But this developer’s dream comes at a price. There’s a learning curve and little to no support for third-party, non-IBM tools often used on the mainframe. However, IBM provides extensive support via free training, seminars, and a strong development community; these helped facilitate RDz adoption at our site. Our organization is a major mainframe development center supporting a global financial institution. We use all the major mainframe technologies such as batch COBOL, JCL, VSAM, DB2, MQseries, WebSphere Application Server, CICS, etc. We were looking at RDz to improve developer productivity and reduce MIPS on the mainframe.

Here’s the story of the adoption of the tool in our organization.

Plan

We conducted a pilot study to learn more about RDz, document its advantages and disadvantages, and train a small group of power users who would later become internal experts on the tool. We found clear advantages and disadvantages.

Advantages:

• RDz provides a rich GUI with multiple, concurrent views into source files, DB2 tables, a 3270 terminal emulator, TSO commands, UNIX commands, etc.
• RDz enables multiple, concurrent connections to different Logical Partitions (LPARs).
• RDz provides smart, context-sensitive editors you can use to edit different types of source code. The Context Assist feature assists with language-specific verbs (i.e., COMPUTE verb in COBOL). Also, regular ISPF editor commands still work in these GUI-based editors.
• RDz lets you edit and view multiple programs simultaneously.
• RDz provides integrated graphical tools for viewing and manipulating database entities and data. It displays pictures of relationships between different DB2 entities. This information can be exported into design documents. It supports connectivity to other databases such as Oracle, SQL Server, etc. DB2 commands run on the System z Integrated Information Processor (zIIP) and System z Application Assist Processor (zAAP), reducing the cost of MIPS. You can also run queries and retrieve data in tabular format. Java development can be concurrent with mainframe development; there’s no need for a separate IDE for Java development.
• You can run TSO and UNIX command line commands directly in their shell windows.
• Local and remote syntax checking helps develop code that will compile cleanly in fewer attempts than normal.
• You can edit Basic Mapping Support (BMS) maps for CICS using a visual or text editor.
• Sources can be copied from the mainframe to the PC, allowing work to be done in offline mode without any connection to the mainframe.
• RDz is built using the Eclipse toolkit, an open source toolkit on which several other tools are built. The look and feel are familiar to anyone who has used other Eclipse-based tools such as Rational Team Concert (RTC), another tool we’re now piloting.
• Some functions, such as editing and local syntax checking, now occur on the PC, as opposed to the mainframe, reducing mainframe MIPS and yielding overall savings.  
• The provision of multiple concurrent views, context-sensitive editors, easier analysis of data flow, local and remote syntax checks, etc. enhance developer productivity.

Figure 1 shows RDz and the multiple views the developer is accessing simultaneously. In the middle of the screen is the editor. One source is being edited, while other tabs show other sources that are open for viewing/editing. At the right is a tree showing the mainframe connection and the list of files that can be retrieved. In the lower half of the screen is a UNIX shell with command and result windows.

Disadvantages:

• Third-party tools such as Compuware’s File-AID, Serena’s ChangeMan, IBM’s InfoMan, CA’s SAR, etc. aren’t supported directly in RDz. This isn’t IBM’s shortcoming as such. But it’s a problem nevertheless because, like other mainframe shops, we do use a myriad of such tools. Since RDz is an Eclipse-based tool, a community of third-party developers is emerging to provide plug-ins that can be installed into RDz. Specifically, some vendors have a plug-in that can be installed into RDz much like an Internet browser plug-in. We’re using Compuware’s File-AID plug-in in RDz, which is offered free. Some products such as Serena’s ChangeMan have a plug-in that’s available for an extra licensing fee. Some tools (e.g., InfoMan and SAR) have Web access. But some vendors don’t yet have a solution.
• There’s a learning curve involved and a mindset change for mainframe developers who have been using a 3270 emulator for several years. We anticipated this slower adoption of the tool in our organization.

Implementation Challenges

Management decided to roll out the tools to the hundreds of developers across our organization. We trained each developer for a full day on RDz basics, and some underwent a second day of training on advanced topics such as DB2 access, BMS maps, etc. Some refresher sessions were conducted periodically to supplement the training.

Software installation consists of a daemon on the mainframe and a PC-based thick client. The PC-based piece can be implemented on each developer’s PC or on a centralized virtual server, which is accessible to each developer. The virtual server solution is preferable if the infrastructure in an organization is geared to support it. Administration and upgrades become easier. Currently, we have RDz installed on individual PCs. Ultimately, we plan to make it available on virtual servers.

We’re using the floating license server; this eliminates the overhead for administering individual licenses.

Offshore contractors accessing the mainframe through RDz need access to certain ports. Firewall changes need to be made to open up these ports. This applies to us and any site that outsources development work. Secure connectivity must be established between the outsourcing site and host site.

A companion tool to RDz is the IBM Debug Tool, used for debugging COBOL, PL/1, and Assembler programs. Using the tool in CICS regions is challenging, as only one debug tool can exist in a given CICS region at any time. If the IBM Debug Tool is to be installed, we suggest you uninstall the existing debug tool first.

Each mainframe connection and activity a developer makes is logged. We wrote a utility to read the log and produce statistics on tool usage. We use these statistics to monitor tool usage and reporting to senior management.

Conclusion

Several months have elapsed since our mass rollout of RDz. Some developers have adopted the tool more than others. While acknowledging the drawbacks, we’re also encouraging its use. Measurement of RDz usage and continuous management support have eased adoption. We’re still looking for some third-party tools to be used from the PC, either through RDz or a Web link.

We’ve learned that replacing an existing tool with a new one poses some challenges. Chief among them is ensuring that all the functions performed by the existing tool can also be found in the new tool or that workarounds are available. Also, dealing with people’s resistance takes lots of patience. We expect complete adoption of RDz, ultimately, and phasing away the 3270 terminal emulators.