Why COBOL Still Dominates Banking—and How to Modernize

May 16, 2024 | Digital Transformation Why COBOL Still Dominates Banking—and How to Modernize

In the world of high-speed internet and cutting-edge fintech, it might surprise you to learn that an over 60-year-old programming language is still the backbone of nearly half of all banking systems. Meet COBOL: the unsung hero behind 95% of ATM transactions and 80% of in-person banking activities.

Despite its age, COBOL's robust data processing capabilities keep the financial world turning, but with a looming skills gap and the relentless march towards digital transformation, the time has come to reimagine its role in modern banking. Buckle up as we dive into the challenges and solutions for bringing this legacy giant into the future.

COBOL was initially developed in 1959 as a programming language running almost exclusively on large mainframe computers. Commonly used for transaction-based processing, it continues to power many financial and administrative systems used by banks and the public sector.  

COBOL's ability to process large masses of data and perform business-critical tasks efficiently has enabled applications developed in that language to make it to the present day. The same cannot be said of the skills in this language, which are gradually being depleted, and it is increasingly difficult to find experts who can manage the maintenance of these types of applications despite the fact that they are still a strategic component in many systems.

The new challenges of digitization mean that many public and private administrations are faced with the need to rapidly modernize their legacy applications. Digital transformation is a process that must be accelerated, and legacy applications cannot be an obstacle.  

The strategy cannot be just to carry out a complete replacement of these applications right away, because in addition to certainly being an uneconomic approach, it could put the organizations' own data and processes at risk. Instead, application modernization should take place in different ways and in a phased manner. In summary, modernizing legacy applications means choosing between redesigning, rebuilding, or replacing “legacy” applications. 

On the other hand, the skills crisis is not only about the ability to program in COBOL but also, and more importantly, about the knowledge of legacy applications originally developed decades ago to which layers of changes have been added and whose documentation has been lost.

Let's look at the basic steps for modernizing a COBOL application:

  • Assess the architecture: before beginning any modernization process, it is important to assess the existing architecture of the COBOL application, identify areas that require improvement, and define the goals of modernization.
  • Decompose the code: the COBOL application may be a single monolith, so one of the first things to do is to decompose the code into smaller, well-structured modules. This will simplify the modernization process and allow existing modules to be reused. 
  • Upgrade the user interface: If your COBOL application has an outdated user interface, you may consider upgrading to the use of more modern web or graphical technologies. This may involve transforming the existing user interface or integrating with new technologies such as Angular or React.
  • Integrating with external services: If your COBOL application needs to interact with other systems or external services, you may consider upgrading integration interfaces using technologies such as RESTful API or SOAP web services.
  • Migration to a modern platform: In some cases, it may be advantageous to migrate the COBOL application to a modern platform. This could include using a newer COBOL execution environment or transposing the code to a more modern language such as Java or C#. However, this is a decision that requires careful evaluation of the associated costs, benefits, and risks.

    Obviously, before undertaking any kind of modernization, it is important to have a detailed view of the code structure and dependencies. At this stage it is advisable to have a software analyzer such as CAST Imaging, which with its software intelligence allows you to explore the existing architecture in detail and comprehensively and to understand the interactions and dependencies between components. 

Through reverse engineering of CAST Imaging, it is possible to: 

  • Visualize the layers and their interactions

CAST Imaging: visualization of layers and their interactions
  • Check whether the tables are accessed directly from the programs or via procedures 
    CAST Imaging: Check access to tables
  • Identify database dependencies

CAST Imaging: Identify database dependencies

Additionally, you can drill down to see table columns, database object properties, or source code and explore your application's end-to-end transactions, from entry point to end point, to determine the effects of any changes you need to make.

CAST Imaging: End-to-end transaction explorations

You can also navigate in detail to see all the objects associated with the selected transaction and isolate tightly coupled components as well as identify microservice candidates to design a gradual refactoring of the monolithic application: 
CAST Imaging: Identifying strongly coupled components

Modernizing COBOL applications may seem like a daunting challenge at first glance, but with the right strategy and tools, you can transform legacy applications into agile, innovative engines for organizations of the future.