From our recent survey, the results of which are detailed in the upcoming 2022 Mainframe Modernization Business Barometer Report, 90% of organizations surveyed had either started or completed a mainframe modernization project in the last 3 years. Prior to that only 10% focused on modernizing their mainframe workloads.
We spoke to one of the top experts in CA Gen modernization John Regan, Head of Development, Central Services at Advanced about getting away from the confines of CA Gen and into a modern environment. John has 25 years’ experience in application modernization and has been on the front lines with CA Gen projects as well as a mix of other technologies.
Watch the full discussion or keep reading as we’ve picked out some interesting views on CA Gen.
Why, at this moment in time, are organizations choosing to modernize CA Gen?
“The number one challenge with CA Gen is the shrinking pool of resources. Over the years people have either decommissioned, migrated, or gradually written new systems. The developers are getting older and retiring and less people are learning CA Gen.
Coupled with that, the licensing costs of CA Gen is a much higher as well as the mainframe maintenance itself – a perfect storm of increased costs from a shrinking pool of developers and increased costs from the operating environment itself.”
When speaking to clients, do they generally know how they want to modernize CA Gen?
“CA Gen generates COBOL on the mainframe and it’s why a lot of clients think that maybe it's a good idea to move to a COBOL based solution. However, the CA Gen language itself is not very COBOL oriented. In fact, it fits much better into a Java or C# kind of paradigm. It’s a much cleaner code, looks more like the original CA Gen and behaves and performs better. “
When it comes to modernizing CA Gen what are the most viable options?
“The beauty of Java and C# is that you can build from the CA Gen encyclopaedia itself. It’s a generator that produces maintainable, performant, readable Java, and C#.
A CA Gen application always has external action blocks to do things that you can't do in CA Gen. You will need a strategy for handling these. We've got a good strategy for migrating to Java or C# and it fully integrates with the CA Gen approach too. If there's a batch, then we've got some solutions for the JCL to handle that side too. It's no good just thinking about these things in isolation. You need a strategy that takes care of all the parts.”
“That’s why having a trusted partner, whether that's internal or external, who has been through a modernization process like this before is paramount.”
What is the one question that you need to ask any potential vendor?
“It’s important to pick a vendor who is going to work well with your culture and the way you operate. Your need to pick a vendor that fits in with your approach to IT projects as well as thinking carefully about how the parts of the project that are not done by a migration technology vendor is going to be done.”
“Ask the vendor “How do you produce modern code from my CA Gen application?” If the vendor doesn’t say they make it out of the encyclopaedia, you're not going to end up with good code. It must come from the original definitions that your developers made for the application. If it comes from things that CA Gen generated, that's not going to be good.”
How should data be handled?
“A lot of CA Gen customers already have a data warehouse in Oracle or SQL Server or something where they can replicate the Db2 data CA Gen interacts with. There’s nothing wrong with that - just expand to cover the whole scope of all the data and you're in business. Because it's relational to relational it's straightforward enough.
There are subtle differences between databases. So, we are experienced in all of those, we’ve migrated clients from Db2 to Oracle, Db2 to SQL Server, or NoSQL. In general, the new database vendors generally have tools to help with that process. So, we would use their tools as much as possible to do that work - they're built for that job.
We've got tools to migrate files because obviously if they contain a mixture of ASCII and mixture of text, decimal, and binary data, then they'll need to some special handling.