Teamwork is the crux of business teams. Like business teams, CICS-based applications work together to perform business operations, such as preparing payroll. In this final part of our series on mainframe-related IT roles, John Klavon, recently retired CICS systems programmer at a financial firm, and Ezriel Gross, principal solutions advisor at Rocket Software, shared their take on the role and its importance to mainframe operations.
Klavon fell into computer programming after joining the military, despite his color blindness, which the military discovered during electronics training. It seemed like a natural fit since his father worked at IBM on the IBM System/360. Once out of the military, he started at the local mill and decided that he wanted to go back to school, where he finished his bachelor’s degree and earned additional college credits. Eventually, he was hired by a financial firm and has worked with mainframes for more than four decades in CICS systems programming and in management, until his recent retirement. “CICS is in my blood,” he says.
Gross started as a CICS systems programmer working for a financial institution in the mid- 1980s. In 1995, he became a CICS instructor for Circle Computer Group, a U.S. branch of the same company in the United Kingdom. Over the years, he eventually became the CEO of the renamed Circle Software, shortly before it was acquired by Fundi Software out of Perth, Australia. Rocket software recently acquired both companies, and today, Gross continues to support and train customers on IBM and Rocket CICS products from an applications and systems perspective.
Who Are CICS Programmers and What Do They Do?
CICS programmers can be categorized into two different groups. Systems programmers install and tune CICS, as well as maintain the product and authorize transactions that can be used. They also ensure that systems are processing the workload based on current service level agreements. If a CICS system becomes too busy, it would be their responsibility to detect that the system is not meeting its goals and determine the best way to get that system back on track. CICS systems programmers also install software packages to provide CICS with the support for security, database access, and message queueing to name a few functions.
CICS applications programmers design the programs that run the business of the establishment they support. If the CICS application programmers work in banking, the applications they write would serve banking functions, such as deposits or printing financial statements.
Aside from authorizing the right users, CICS systems programmers allocate appropriate resources, and pass database requests onto applications through a database manager. CICS applications in IBM’s mainframes are executed under CICS control using CICS services and interfaces to access program files and other resources.
Common CICS Systems Programmer Duties
- Manage systems support staff for mainframe, UNIX, and network.
- Achieve improved efficiency and cost reduction goals through efforts and expertise in multiple LPAR eliminations and data center consolidations.
- Provide working environments for developers and customers by constructing new CICS regions with connections to Db2, IMS, and MQ subsystems as needed.
- Conduct trouble shooting and debugging of problems and contact IBM or the correct vendor to obtain support and fixes.
- Administer and provide support for a wide variety of IBM and third-party vendor software for mainframe and PC platforms.
From day-to-day, the job is an adventure into the unknown, according to Klavon. “You may plan to work on one software product, but another product is having issues that need to be resolved first, so that’s where you focus your energy,” he says. “You may need to work with the coupling facility to ensure data sharing occurs between software or systems or you may need to work with the currently installed security package to ensure the validity of entries or resource control.” There are numerous software packages that can be deployed throughout the mainframe. “Many are used by different applications, and as a CICS systems programmer, you must know how these products use the packages and how they interact with one another when sharing data,” he says.
CICS Systems Programming Skill Requirements
Today’s students often graduate college with a computer science degree, if they are interested in working in the technology field. CICS systems programmers may also have a computer information systems, mathematics, or business degree. Some have master’s degrees and others have a high school diploma and on-the-job training. “Marist College and Robert Morris University are just two colleges with mainframe-focused programs,” but Klavon says, “sometimes a degree is not enough.” CICS systems programmers must spend 2-3 months training on the job to learn the ins-and-outs of their employers’ systems. This can include learning how to read a dump and how to identify bad code, even learning that CICS supplied support transactions take time.
For CICS applications programmers, learning through certificate programs, courses on specific programming languages, application development, z/OS, and other tools in programming are all helpful and can be done while on the job. Mentors in the office can sit with new programmers whether they are in systems or applications and show them the ropes.
“Some new systems programmers come in with big ideas and think they can update the system overnight, but that’s not realistic,” Klavon explains. For instance, when a company merges with another, CICS systems programmers must review what systems are in place at both firms and how the environments can be modified or merged.
“We must make sure we can manage these new systems. We must have naming standards, and there needs to be a concrete process for installing and tuning these systems, and sometimes this is across not just 10 CICS regions but hundreds at a time,” Klavon points out. “At my financial firm, each time a new system or CICS region was brought in, we had to review it and clean it up to ensure it worked efficiently for the good of the overall business.” After the cleanup process, “our systems very rarely had any problems,” he adds.
How Has the Role of CICS Systems Programmer Evolved?
In the early years of his career, Klavon says a CICS systems programmer could focus on reading internal dumps to identify specific problems and solve them. But now, the CICS systems programmer and other programmers have become the point men for their departments, morphing into jacks-of-all-trades. “People work long hours, and management adds new tasks to the list, such as disaster recovery and resiliency functions, which are operational functions, not necessarily system programming issues,” Klavon explains.
With older code running on faster machines, delays and other problems are likely to surface in business operations. According to Gross, CICS systems programmers are at the forefront of working through those legacy code issues, and in some cases, because financial transactions, for instance, are initiated by different applications or over the Internet, the volume of queries is no longer easily quantified.
These transactions are calling for data from the mainframe, but not every inquiry is necessary even if the mainframe is larger and faster and can manage the increase in queries. “The workload volume is then an unknown number that an application may not have been built to handle because it’s not just banks making queries anymore,” says Gross. “There are now aggregators and other third parties making queries even when they are unnecessary because no business transactions are being made.” However, Klavon adds, “You still need the equipment and the power to support those ever-increasing number of queries and still support the other services offered by your company.”
With all these applications being tapped for data, problems occur most often because these departments creating applications are not talking to one another. “These departments operate in their own silos,” Klavon says. “They create business applications to meet their operational needs but do not realize they are flooding the system.” Without collaboration and additional funding for mainframe updates and staff, many of these applications will eventually experience delays or failures, costing companies money.
According to Klavon, when CICS systems programmers, application developers, and systems analysts work together, systems can work more efficiently without doubling or tripling the workload for programmers. “With a systems architect to oversee the system and its components, ensure that silos are engaging with one another about the projects, and programmers are allowed to explain why certain things will not work, the result is a more effective, efficient operational system,” he adds.
Educating Future CICS Application Programmers
Gross also says that many of these programs were written three decades ago, and the application programmers who understand them are retiring and taking that knowledge with them. Going forward, enterprises need to capture that knowledge and pass it to the next generation of application programmers, which Klavon says is best accomplished in person.
Both Gross and Klavon say that many of those CICS applications are updated every 18 months, but backend systems also are affected and need to be modified. Without that industry knowledge, it will become harder for mainframe systems to keep up with data queries and application upgrades.
Gross says that IBM and others have created internships and other mentoring opportunities for technologists to gain CICS skills, but Klavon points out that the training is limited. “Even systems programmers with four or five years of work experience are not savvy enough to understand and make a decision on how to actually support the systems,” Klavon says. “They can do the projects. They can put the maintenance on. They can do a lot of that. But when I sit down and I ask them for suggestions about changes the system needs to run smoothly, they don’t think from a whole-process perspective. It’s because they are not aware, and it’s not their fault because they haven’t been around CICS programs and the mainframe long enough.”
“To make successful decisions,” says Klavon, “you have to know the layout, the landscape of the application, and how applications function on a normal basis.” Application programmers also need to test any solutions they consider implementing before unleashing them on the entire system.
Training for CICS or any programming position requires patience, critical thinking, and attention to detail, as well as the complete system picture. Klavon says that sessions like those at SHARE are a big draw for systems programmers because they can learn about CICS, the latest tools available for the mainframe, and how to troubleshoot potential issues when installing or maintaining the system. Like other aspects of the mainframe environment, teamwork and communication are essential to making upgrades and changes or adding new functionality to the system.