This is the first of two articles on the broad skill requirements that can help ensure success in enterprise computing. Read part two here.
According to a recent Wall Street Journal article, 80 percent of the world’s daily business transactions rely on COBOL
. With 220 billion lines of installed code, COBOL is still at the core of enterprise computing programming languages. However, enterprise computing is a lot more than just COBOL. What else does a mainframe programmer need to get, maintain and grow with enterprise computing?
To be successful in enterprise computing, a developer must have substantial skills in three main areas. The developer must:
- Have a variety of domain-specific skills—like COBOL, JCL, CICS, DB2, SQL and test methodology—and a working knowledge of different approaches to the system development life cycle
- Display basic effectiveness with strong verbal and written communication skills
- Have education, certification and experience. This includes the learning done in a degree program or the study and testing taken in certifications as well as the actual years of hands-on experience in a career as an IT specialist.
Figure 1. Three skill areas needed for success in enterprise computing
Many Different Domain-Specific Skills Apply
As illustrated in Figure 1, domain-specific skills represent the foundation of an IT specialist's career. These skills are needed to do specific jobs like maintaining the accounting system or developing a new CICS-based transportation and billing system. A careful review of job postings for enterprise computing reveals that domain-specific skills can be grouped into seven different categories.
1. General Programming
When the job has programmer/analysts in the title, enterprise IT personnel are called upon to turn detail designs into computer programs. Employers make it clear when a job includes coding programs. For some employers, programmers must also have the ability to analyze and review other developers’ code and recommend improvements when necessary.
In addition to developing new modules, programmers are often asked to provide a support role with existing programs, applications and services. Of course, not every programmer wants to work in a support or maintenance role. There are two programmer mindsets—development versus maintenance. Many new developers prefer to develop new programs and applications because they anticipate that this work will be more interesting and challenging.
2. Specific Languages
As research for this article, I set out to analyze current IT job listings. My goal was to accumulate around 30 listings, but after looking at a dozen or so, the trends were already apparent. For instance, COBOL showed up in every one of my listings for mainframe developer, software analyst and application programmer. COBOL became important because it was one of the first effective high-level languages, and through continuous internal modernization over more than 50 years
, it's remained the standard among mainframe enterprises.
Other long-used languages, like JCL, are almost as common as COBOL. However, in today's world, language support under z/OS is not only rich and mature, but also growing steadily to keep up with the need to interface with cloud services and other emerging software technologies. Other languages that commonly appear in job listings include Natural, Easytrieve, REXX, Java, PL/1 and SAS. There are also vendor-specific languages like SAS and general purpose languages like Java and REXX, as well as a mixture of interpreted and/or compiled software implementations.
In addition, programming language tools directly related to application development are well-represented in job postings. This includes Panvalet (source program library control) and Xpediter (interactive debugging tool), as well as protocols like FTP, HTTP, XML and SOAP.
3. Access Methods and Databases
If not stated directly, it is assumed that a programmer will know VSAM, including the basics of the IDCAMS utility
, as well as other IBM file utilities. Programmers are also expected to understand how to manage databases and remedy poorly performing data sets. Database use has become commonplace for enterprise applications, so practical knowledge of SQL
is also needed, along with details of different database software implementations like IBM DB2 and Oracle’s RDBMS. Familiarity with utilities like File-AID for DB2 are also desired. Some employers also request IMS DB skills in conjunction with IMS TM, combining database and transaction monitor proficiencies. Job posters often seek database professionals who are skilled on both IBM DB2 and IBM IMS DB.
4. z/OS Including TSO and ISPF and Discipline Tools
Enterprise application programmers are expected to know z/OS basics, including the use of TSO, ISPF and SDSF
. They also need firm grounding in concepts like JES and batch jobs, started tasks, address spaces and virtualization
. Familiarity with key products is also important, and this software aligns with IT disciplines including security (IBM RACF and CA ACF2); performance (IBM Application Performance Analyzer); automation (IBM Tivoli Workload Scheduler and ASG Zeke for job scheduling); and incident, problem and change management (IBM Control Desk and ChangeMan ZMF).
It isn’t enough to be able to program; you must also need to know how to get the program out of test and into production, and then be able to provide production support using the approved software tools as necessary.
5. Transaction Processing Monitors and Other Middleware
CICS skills are still highly valued among enterprises that rely on transaction processing monitors. Similarly to COBOL, CICS has a long history of constant internal modernization
. IMS TM, a message-based transaction monitor, along with IMS DB, is a sought after skill combination. IBM WebSphere MQ, WebSphere Application Server and integration with .NET framework [[LINK: https://www.microsoft.com/net ]] are in demand skills as well.
6. Methodology: SDLC and Test Methods
Familiarity with system development life cycle methods
is a firm requirement. While waterfall and other legacy methods are still in use, agile methods
are becoming significantly more prominent. Testing is an important discipline as well. Programmers are expected to be able to clearly document work products—including test cases, expected test results and test data requirements—and collaborate with other test teams. In addition, they are expected to test, debug and refine their code. Knowledge of the full range of testing—unit, integrate, acceptance test and system—has become a common skill requirement.
7. Commercial Off The Shelf Applications and Industry Experience
Some employers specifically require knowledge of commercial off the shelf products like SAP (an umbrella of industry applications) or vendor products that support specific industries like banking, (e.g., Altamira or Hogan software). Apart from specific software, employers are also looking for enterprise programmers who have experience with the conventions of certain industries like credit card processing.
A Wide Array of Skills Needed
Not every employer is looking for every skill and experience with all the products mentioned, but, judging by the content of individual job listings, the requirements are still very broad. Thanks to feature-rich software and the propagation of open protocols, the current software environment is dramatically more complex than it was even a decade ago. It’s challenging to function effectively in today’s environments, and employers are seeking diverse skill sets accumulated over three to five years of work experience.
The second installment in this series will explore other skills needed to be successful in enterprise computing today. It looks at effectiveness skills, education, certification and experience.