Mainframe 101 · Part 05

Designing and Developing Applications for z/OS

From Blueprint to Production

Zubair Idris Aweda 9 min read Interactive

Application Designing Overview

Designing an application for z/OS starts with understanding the problem you're solving — but the mainframe context adds considerations shaped by decades of running the world's most demanding, least forgiving workloads.

Understanding the Workload

The first question is almost always: batch or online? Batch work leans toward efficient sequential processing and checkpoint/restart. Online work (CICS/IMS) leans toward response time, concurrency, and resilience under unpredictable load. Many real applications blend both.

VSAM or Db2? A Quick Decision Helper

Data design is foundational — get it wrong and you fight the data layer for the application's entire life. Answer the question below to see which shape fits your access pattern.

Data Layer Decision Helper

How does your application mostly access its data?

Integration & Modernisation

Very few new mainframe applications are built in complete isolation. A common pattern: wrap existing logic behind modern interfaces rather than rewrite it — using z/OS Connect to expose a proven COBOL program as a REST API.

"Wrap, don't rewrite." A COBOL program that's correctly processed millions of transactions a day for twenty years encodes edge cases nobody currently remembers. Wrapping preserves that proven logic while giving new applications a modern way to consume it.

Non-Functional Requirements

Availability

How the application behaves during planned maintenance, or recovers mid-transaction after a failure.

Security

Access control via RACF, and encryption both at rest and in transit — designed in from the start, not bolted on later.

Performance

CPU efficiency matters financially — processing cost is measured and billed with real precision on this platform.

Application Development Overview

Once design is settled, development looks familiar in some ways and distinctly its own in others.

Writing the Code

The traditional route

Working directly with datasets and members on the mainframe itself — still common, and still an essential skill for any mainframer.

IDz — Eclipse-based IDE

Brings a modern, graphical experience to COBOL and PL/I development — syntax highlighting, integrated debugging, project-based navigation.

Zowe-powered modern tooling

Exposes mainframe datasets, jobs, and USS files through modern APIs and a CLI — letting developers work from an editor they already know.

Who Does This Work?

"Mainframe developer" means different things depending on where someone sits. Click a role to see what it actually covers.

🖥️
Systems Programmer
💻
App Developer
🗄️
DBA
🔌
Integration Dev

Summary

Good design means understanding your workload, your data, and your non-functional requirements. Good development means writing clean, testable code, managing it in version control, and deploying it through a controlled, repeatable pipeline — the same instincts that apply anywhere, just applied within a platform built specifically to run workloads the world can't afford to get wrong.

ZIA
Zubair Idris Aweda
Software Engineer · Technical Writer