Mainframe Path Start learning free
Applied10 min readLesson 1 of 3

Choosing a modernization strategy

Modernization is not one thing. For each application you choose whether to keep it, improve it in place, move it, rewrite it or buy something to replace it, and each choice trades cost, risk and speed differently.

Why modernize at all

Most large organisations run core systems written in COBOL over several decades. The code usually works and the platform is reliable, so the pressure to change rarely comes from failure. It comes from speed of change (a simple product change takes months), integration (mobile apps and partners need real-time access), skills (fewer people understand the oldest code) and cost (licences and processor usage). Good modernization starts by naming which of these problems you are actually solving.

The five common strategies

Consultancies and cloud vendors use slightly different lists (sometimes called the "Rs"), but most include the same core choices of modernization strategy.

StrategyWhat it meansMain benefitMain risk
RetainKeep the application as it is, maintain it normallyNo project cost or disruptionProblems that prompted the review remain
RefactorImprove the code structure in place without changing behaviourLow risk, done in small stepsSlow; does not change the platform or language
Replatform (rehost)Move the code with minimal change to another runtime, such as a COBOL runtime on Linux or cloudCan reduce platform cost quicklySame old code on a new platform; performance and batch behaviour can differ
RewriteRebuild the function in a new language and architectureModern design, wider skills poolHighest risk: hidden business rules get lost; long, expensive projects
ReplaceRetire the application and adopt a package or SaaS productVendor maintains the softwareBusiness must adapt to the package; data migration and customisation costs

Deciding application by application

A portfolio rarely gets one answer. Teams usually score each application on business value (how important and how often it changes) and technical health (code quality, documentation, test coverage, skills), then pick a strategy per application. Application discovery and analysis tools help here by showing how programs, copybooks, files and tables connect.

A common way to map applications to strategies
High value, good health
Retain and integrateExpose through APIsAdd tests and pipelines
High value, poor health
Refactor incrementallyStrangle piece by pieceRewrite selected parts
Low value, good health
Retain with minimal effortConsider replatform for cost
Low value, poor health
Replace with a packageRetire if unused

Why big-bang rewrites so often fail

This is why most current guidance favours incremental approaches: deliver value in small slices, keep the old and new running side by side, and switch over one function at a time. The next lesson covers the main pattern for doing this.

Measuring progress

Agree measures before the work starts, so the programme can show results rather than activity.

MeasureWhat it tells you
Lead time for a changeWhether the code is actually easier to change
Percentage of traffic on new servicesHow far a strangler migration has progressed
Programs and lines of code retiredWhether old code is really being removed, not just duplicated
Processor consumption of the old applicationWhether cost savings are real
Production incidents per releaseWhether speed has come at the expense of stability
Automated test coverage of critical pathsWhether changes can be made safely

Common mistakes

Starting with the technology instead of the problem

"Move to Java" is not a goal. Name the business problem first (speed, integration, cost, skills) and choose the strategy that solves it.

Choosing one strategy for the whole estate

Applications differ in value and health. Assess each one; a mix of retain, refactor and replace is normal.

Underestimating hidden business rules

Old code contains rules found nowhere else. Budget time to discover and test them before rewriting or replacing anything.

What you will see at work

Key terms

Check your understanding.
Take this lesson's quiz and save your progress. Free.

Take the lesson quiz
Strangler fig, APIs first and event-driven integration →