Author
Sunil Baid
Sunil Baid

Managing technical debt and enabling legacy modernization

Managing technical debt is now practical and data-driven as hyperscalers evolve and AI tools become accessible. These advances improve the success of modernization programs, allowing financial institutions to transform core platforms with reduced risk. Modernization is now an ongoing journey of agility, cost optimization and digital maturity. However, the path forward is far from simple. Before large-scale transformation, organizations must first remediate underlying causes of technical debt to deliver sustainable value.

As per kyndryl’s 2023 survey, modernization is often selective rather than full off-mainframe migration. Rather than a full-scale exit, organizations often adopt a selective modernization approach by offloading specific applications or components to cloud or distributed environments. This strategy enables reduced mainframe workload, operational cost savings, and smoother integration with modern digital ecosystems, while preserving the reliability and performance of core mainframe systems.

This article provides insights into the technical debt challenges that exist across organizational silos. The article also explores various mainframe modernization approaches that can be leveraged to drive efficient, scalable, and low-risk mainframe transformation.

Understanding Technical Debt in Legacy Systems

Before diving into modernization strategies, it’s crucial to first understand the nature and origins of technical debt in legacy systems.

Drivers of Technical Debt

Impact

Monolithic Legacy Platforms

Core systems are built on tightly coupled stacks embedding business logic, rules, and channels making them difficult to scale, integrate, or modernize without significant disruption.

Redundancy Across Systems

Overlapping functionalities and duplicated data across business units result in inefficient resource use, data inconsistencies, and increased integration complexity.

Fragmented Architectures

Different lines of business often operate on distinct technology stacks (e.g., Java, .NET, COBOL), leading to siloed systems, inconsistent data models, and delays in enterprise-wide initiatives such as Customer 360

Outdated Tools and Skills

Continued reliance on end-of-life tools and rare skillsets (e.g., Assembler, PL/I) increases technical fragility and makes system maintenance and innovation more difficult.

Ignored Language Purity

Core systems are often developed using a mix of legacy languages (e.g., COBOL, Natural, Assembler, PL/I), causing long release cycles, increased maintenance burden, and complex onboarding for new developers.

Integration & Data Silos

Legacy systems rely on point-to-point integrations and batch processing, restricting real-time data exchange and creating fragmented, redundant data landscapes.

Steps for Sustainable Legacy Modernization

Modernization requires a deliberate, phased approach that balances innovation with stability. Here is how:

1.     Discover Technical Debt with Tool-Based Approaches

Advanced code and architectural analysis tools uncover complexity hotspots, unused code, and performance bottlenecks:

Commonly used tools beyond Sonar and Dynatrace for mainframes include:

    • CAST – Software intelligence for architecture analysis and technical debt estimation
    • Compuware Topaz – Visual analysis of application logic and data flows in mainframe environments
    • Strobe / MAT (Mainframe Application Tuner) – Performance tuning for legacy workloads
    • Natural Engineer, Predict, and Explain – Specialized tools for analyzing Natural/Adabas and cobol application
A success story in action:
With GCP as a target platform a leading European bank modernized its batch legacy system which holds historical data and processing features for special kind of loans, this application is hosted on GCP with complete refactoring of code base to Java from Cobol/Natual/ADABAS. Cloud SaaS offering included Automic integration using Automic Workflow Automation (AWA) agents for orchestration (batch job scheduling) and Automic File transfer(AFT) for file processing.
2.     Report the Technical Debt

Many organizations are implementing centralized dashboards that catalogue the technical debt across teams and systems, offering a unified view of existing risks and modernization opportunities. By integrating debt registers with product and sprint backlogs, teams can improve visibility, prioritize remediation efforts, along with broader business objectives.

Popular tools and platforms used to visualize and manage this debt registers include:

  • Seerene –Deep code analytics and debt quantification across development pipelines
  • Grafana – Customizable, real-time views of system health, code quality metrics, and debt indicators through API and data integration
3.     Select the Element(s) of Modernization

Once technical debt and its root causes are identified, organization must carefully evaluate and decide on the type of modernization strategy best suited to their needs. A robust and pragmatic approach is essential to ensure modernization efforts deliver maximum business value. Key modernization elements include:

- Monolith to Microservices / Modularization: Transitioning from tightly coupled, monolithic systems to modular or microservices-based architectures. This approach enables greater agility, independent scaling of services, and easier adoption of DevOps practices.- 
- Re-platforming or Rearchitecting: Moving legacy workloads through re-platforming (e.g., moving to a container platform) or rearchitecting to fully leverage cloud-native features such as autoscaling, serverless computing, and distributed databases.

- API-First Reengineering: Replacing outdated interfaces and point-to-point integrations with standardized APIs. An API-first approach enhances interoperability, promotes reuse, and accelerates digital channel enablement across ecosystems.

- Refactoring legacy components: Legacy components built on outdated technologies such as Assembler or PL/I limit scalability, slow down innovation, and increase operational costs. Additionally, maintaining these components has become increasingly challenging due to the shrinking pool of skilled resources, as expertise in these aging technologies is becoming increasingly scarce.

- Rewrite: Rewriting the batch application codebase in modern programming languages and migrating databases and files from mainframe or legacy platforms to distributed databases. Modernize smaller, low-dependency batch applications in a controlled manner. It's effective for non-critical batch processes such as reporting, reconciliation, or archival systems, where real-time processing and complex integrations are not required.
- Use DevOps to improve time to market without major changes to the core systems
Leveraging CI/CD pipelines and automated testing frameworks reduces manual effort, minimizes errors, and accelerates release cycles. This enables organizations to bring new features and services to market faster, with greater confidence and consistency.      

A success story in action:   
With test driven migration approach a leading European bank efficiently identified low-hanging opportunities and began migrating mission-critical Assembler programs to a 3GL despite having no in-house knowledge of the legacy code. The strategy enabled automated generation of approximately 150,000 test cases for a single component, achieving nearly 95 percent code coverage. Impressively, eight components were successfully migrated in just 1.5 years, without any major issues, deploying only two developers and one mainframe system test engineer.

Approaches for Modernization

Cloud and AI as the key enabler for mainframe modernization

Cloud platforms offer the flexibility and scalability to decouple legacy systems, supporting incremental and cost-effective modernization. AI technologies, especially LLMs, provide deep insights into applications, help map dependencies, identify modernization milestones, and reduce risks. This Cloud and AI-enabled modularization strategy ensures smoother transitions, improved team autonomy, and paves the way for microservices, cloud-native deployments, and continuous innovation.

Some of the common adoption patterns include: 

Topic

Enabler

Adoption strategy

Beyond basic “lift-and-shift” cloud migrations to more value-driven

Cloud

Re-platform to containers/managed services; rearchitect for cloud-native capabilities to enhance scalability and reduce operational overhead.

Rearchitect to fully leverage cloud-native capabilities like autoscaling, event-driven architectures, and serverless computing.

Hybrid Cloud and Vendor Exit

 

Cloud

Keep mission-critical workloads on-premises while moving digital workloads to public cloud. Architect for portability.

SaaS ecosystem integration

 

Cloud

Build in-house SaaS modules using PaaS and integrate with legacy systems via APIs/event pipelines. Enable smooth data exchange, improve interoperability, and accelerate delivery of digital services.

Migration Scoping

AI

Automatically map inter-system dependencies, data flows, application boundaries and dead code to minimize manual discovery effort and enable milestone-based planning, estimation, and risk profiling with greater accuracy.

Automated Language Conversion

AI

Translating legacy code (e.g., COBOL, PL/I) into modern languages like Java or C# with minimal manual intervention.

Automatic Test Case Generation

AI

Generating unit, integration, and regression tests automatically to validate functionality and ensure consistency across transformation stages.

Laying the foundation for Self-Contained Systems (SCS).

AI

With AI-driven analysis, organizations can more efficiently decompose applications into service-modelled architectures that can be transformed into Self-Contained Systems (SCS). These systems have clear boundaries and possess key characteristics:

  •  Owns its UI, business logic, and data,
  • Can be developed, tested, and deployed independently,
  • And integrates loosely through standardized APIs or asynchronous messaging.
A success story in action:
A bank modernized its legacy Fraud Shield Application (FSA) using AI by Replacing rule-based, batch fraud checks with real-time, ML-powered scoring engines, while using AI to rewrite legacy scoring logic in native Java and deploy it on a cloud platform and applying LLMs to extract business rules from unstructured documentation and legacy code for faster migration.

Shifting to platform modernization and legacy optimization

Enterprises are increasingly moving away from the notion that modernization requires a complete replacement of legacy systems. Rather than replacing legacy systems wholesale, enterprises are extending existing investments through cost-effective hybrid architectures:

Example Strategy:

  • Rewrite COBOL applications in Java and deploy on IBM Websphere, shifting workloads to cost-effective zIIP processors.
  • Build Java-based services that coexist with legacy code, integrating with modern digital front-ends without rewriting everything.

The approach allows organizations to preserves mainframe reliability while unlocking agility, efficiency, and cost savings.

A success story in action:
Nagarro helped a customer transform its Mainframe CICS services from COBOL to Java. The new Java-based services were hosted on the IBM WebSphere having. This approach enabled the bank to accelerate its time-to-market by implementing CI/CD pipelines. Additionally, migration delivered significant cost savings, as workloads running on the IBM websphere leverage the zIIP processor, which is substantially cost-efficient compared to traditional z/OS CPUs. Currently, 4 services of medium complexity have been transformed and rehosted.

Test Driven Incremental Legacy Modernization

A modern and risk-mitigated approach to legacy transformation involves incremental refactoring and validation, particularly for complex codebases written in languages like Assembler or PL/I. This strategy focuses on:

  • Component-level Refactoring: Break monoliths into testable components that can be incrementally modernized.
  • Test-First Migration: Building a robust test suite (unit, integration, and regression tests) before transformation begins, ensuring that functional parity is maintained.
  • Mainframe-Integrated CI/CD Pipelines: Implementing continuous integration and deployment workflows directly within the mainframe environment to:
  • Automate test case generation.
  • Enable parallel test execution for rapid feedback loops.
  • Provide real-time validation to developers during each migration step.

This test-driven, iterative approach reduces transformation risk, accelerates modernization velocity, and improves developer confidence while maintaining the integrity and performance of mission-critical legacy applications.

Enabling DevOps & Automated Testing

To reduce deployment friction and improve time-to-market, organizations are increasingly embracing DevOps principles and automated testing across legacy systems as described below:

  • CI/CD Pipeline Implementation
    Establishing robust Continuous Integration and Continuous Delivery (CI/CD) pipelines enables faster, more reliable deployments, bringing agility to even legacy-heavy environments. To enable CI/CD pipeline mainframe supports Topaz as IDE , Ansible z/OS as deployment manager, Jenkins and Azure as Pipeline orchestrator, ServiceWorks for creating and deploying integration points, IBM UrbanCode Deploy and Codestation as an artifact repository in Jenkin pipeline for automatic deployment and to support the DevOps principle of “build once, deploy many.”
  • Test Automation
    To complete the DevOps orchestration integration of Automation testing is the key lever, so inhouse automated regression test environments or IBM Test accelerator for Z could be integrated with the pipeline to support automated unit, component, integration, and regression testing. IBM provided tool such as zUNIT could also be used to automate unit testing.

 

Additional Strategic levers

  • Application Retirement & Rationalization
    Identify and sunset redundant or underutilized applications to reduce complexity, free up infrastructure, and lower maintenance costs. Consolidate functionalities into more modern platforms where possible.
  • Reskilling and Talent Redeployment
    Equip teams with skills in modern technologies (e.g., cloud, DevOps, AI/ML, containerization) to reduce reliance on legacy expertise and support long-term transformation goals.
  • Knowledge Management
    Institutionalize legacy system knowledge through comprehensive documentation, knowledge transfer programs, and internal wikis. This mitigates the risk of expertise attrition and accelerates onboarding of new talent.

 

Conclusion

Beyond “All or Nothing”, Legacy Modernization That Balances Risk and Value

"With the right tools, mindset, and strategy, even the most complex legacy systems can be transformed with one small step at a time."

Technical debt is no longer just a maintenance headache but a strategic roadblock to agility and growth. Cloud-native platforms, AI-driven code analysis, and automated testing make it feasible to tackle debt systematically with lower risk.

Modernization doesn’t have to be a full rip-and-replace. With incremental refactoring, hybrid architecture, AI-driven approaches, and skilled talent, even the most complicated systems can evolve securely, cost-effectively, and at scale. Financial institutions that treat technical debt as a strategic opportunity and not a sunk cost, are the ones that’ll build future-ready, digitally resilient organization.

At Nagarro, we help financial institutions modernize securely, incrementally, and intelligently, transforming their core systems one step at a time.

This page uses AI-powered translation. Need human assistance? Talk to us