What to learn for Mainframe Modernization?

There are several dimensions to mainframe modernization and visiting my previous blog will help you put this question to the right perspective

You may not have to learn all of these to pursue a career in modernization. However, in today's "quick execution" world, it is important to know the dimensions and choices available to a legacy application. The end state or modernization option chosen is completely dependent on the current and future business vision, architectural vision etc. of the organization.

I have tried to classify the topics (techniques) to acquire the skill sets needed to perform the various modernization methods listed in my previous blog. The dimension that your project(s) takes might determine what you may need to learn. Most of these things may be associated with a specific product/software when you try to do a web search for further reading. My 2 cents will be to concentrate on the "technique used" to solve a problem than the nitty-gritty if you are especially trying to "get a feel".

UI choices:

  • Screen scraping - old technique but still very effective for stable applications
  • Separation of business layer and presentation layer - This typically involves breaking down a monolithic code containing both screen functions and business functions into separate modules.
  • Building wrappers around existing screen logic and exposing the contents of the screen as RESTful API - It is a variant of screen-scraping but more standardized

Integration:

  • Build standard data/information exchange middleware layers between mainframe and non-mainframe applications - ex: Kafka, MQ, RESTful services etc.

Data Analysis:

  • Real-time analysis of the transactional data in mainframe which aids decision-making for the business.
  • Analytical workload migration outside mainframe
  • In-platform migration of not-so-popular analytical programming languages to popular languages (Ex: EzTrieve to COBOL)

Co-existence/Hybrid Cloud:

  • Change data capture between mainframe database(s) and non-mainframe database(s)
  • Establishing JDBC connections to mainframe database to let non-mainframe applications access mainframe data
  • Comparison/testing framework for co-existence

Workload improvement:

  • Modernizing batch processing
  • Exploring new hardware, compiler, programming language, database and transaction server features & implementing them
  • Finding the right target platform for executing the workload based on its nature & migrating it.

DevOps:

  • Cultivation of agile development practices
  • Understanding why DevOps tools are important and what changes they can drive
  • Exploring VS-CODE capabilities for MF development along with ZOWE can be a good starting point for embarking on the DevOps journey.

Re-Engineering/Migration:

  • Documenting the legacy application functionality.
  • Understanding the tools available to aid inventory analysis and reverse engineering
  • Tool aided migration from legacy languages to modern languages
  • Building in-transit architecture and migration strategy

When exploring any of these topics, I urge you to think through the lifecycle of the modernization from requirements all the way to production deployment. Most of the modernization projects have issues in having a proper testing framework or pattern. Even the "most successful" modernization case studies could not create a fool-proof testing framework that can be "used everywhere". That's some food for thought.

Note: The views expressed here are based on my experience and are neither exhaustive nor may be in line with definitions of modernization available in the market.

Comments

Popular posts from this blog

What skills to develop to become an architect?

What resources are available for learning?

Do I really have career growth if I continue in mainframe projects?