Tag: modernization

  • Explanation First, Then Code Conversion: A Practical Guide to Mainframe Optimization

    Explanation First, Then Code Conversion: A Practical Guide to Mainframe Optimization

    Before you even think about code conversion, take a closer look at what you have—and let generative AI (GenAI) help you explain it. Here’s how to modernize your mainframe smarter, not just faster.

    The Real Challenge: Understanding Decades-Old Practices and Code

    If you’ve worked with mainframes for any length of time, you’ve seen it before: someone in the boardroom gets excited about “digital transformation,” reads a story about AI rewriting COBOL overnight, and suddenly there’s an urgent call to “move everything to the cloud.” But here’s the thing—mainframes aren’t relics, and the problem isn’t the platform. It’s the technical debt we’ve accumulated and the assumptions we make when we talk about modernization.

    Mainframes are, in fact, among the most modern, reliable, and secure platforms in existence. The real challenge lies in the decades-old practices, spaghetti code, and institutional knowledge gaps that have built up over time. And that’s what makes the dilemma of COBOL-to-Java conversion so tricky: what should move, what should stay, and what’s the smartest path forward?

    Let’s walk through a more balanced—and practical—approach to mainframe modernization, one starting with understanding and values explanation over blind translation, harnessing the power of GenAI to make the journey faster and safer for everyone involved.

    Why Mainframes Are Still Mission-Critical

    Despite what the “legacy” label might suggest, mainframes remain the gold standard for reliability, security, and transaction volume. Banks, insurance companies, healthcare providers, and governments depend on them every single day. They process billions of transactions, scale on demand, and deliver “five-nines” uptime that most cloud platforms can only dream of.

    But let’s be honest: the way many mainframe applications have evolved—layer upon layer of updates, urgent patches, and undocumented quick fixes—has made them harder to manage. The problem isn’t COBOL, the language is fine and easy to learn and work with; the problem is what we’ve done with the COBOL, its original architecture and the technical debt created by years of business-driven expediency.

    The Code Conversion Dilemma: Move, Modernize or Leave Alone?

    When it comes to mainframe modernization, there’s a natural temptation to see “COBOL-to-Java” as the one-way ticket to a brighter future. After all, Java skills are plentiful, Java tools are modern, and the cloud-native world loves Java. But that doesn’t mean every mainframe application should—or even can—be converted wholesale.

    Some applications thrive on the mainframe. They’re stable, rarely change, and benefit from the platform’s unique strengths. If they’re meeting business needs and running reliably, trying to move them off the mainframe may introduce more risk than reward.

    On the flip side, some workloads absolutely need to change fast, integrate with modern APIs, or scale horizontally. Here, code conversion or migration can unlock flexibility and accelerate digital transformation. The trick is knowing which is which—and having the discipline to act with intention, not impulse.

    Don’t Start with Translation—Start with Understanding

    Here’s where too many projects go off the rails: jumping straight to code conversion without first understanding what the code actually does. Mainframe systems often resemble a decades-long game of telephone—patched by generations of developers, with business logic buried under mountains of procedural code. Sometimes, the original authors have long since retired, and the documentation is cryptic (if it exists at all).

    Before You Touch a Line of Code, You Need a Map.

    That starts with inventorying your applications and their dependencies. What modules do you have? How do they interact? Which business processes do they support? And—crucially—which parts of the codebase are actually still in use?

    Visualization tools can help, letting you “x-ray” your environment to see data flows, dependencies, and forgotten dead code. But even with great tooling, you’ll need to extract and document the business logic—the real “why” behind every routine and module.

    Code Explanation vs. Code Translation: Why It Matters

    Let’s make a key distinction:

    • Code Explanation is about making legacy code understandable—turning cryptic COBOL into plain English so current and future teams know exactly what’s happening and why.
    • Code Translation is about rewriting that code into a modern language—COBOL to Java, for example.

    While translation grabs headlines, explanation is where the real magic happens. It’s about knowledge transfer: bridging the gap between decades of lost documentation and the future of your IT workforce. Without a clear explanation, translation risks turning one tangled mess into another—just in a different language.

    Documentation and visualization are vital here. Good explanation—whether created by human experts, AI-powered tools, or both—enables:

    • Faster onboarding of new developers
    • Fewer bugs and less risk during conversion
    • Easier future enhancements and troubleshooting

    Refactor Before You Rewrite

    Here’s a pro tip that can save months (and sanity):
    Don’t just translate COBOL to Java line by line. If you do, you’ll wind up with Java that’s just as convoluted as your old COBOL—only now it’s harder to debug because your Java team didn’t write it.

    Instead, treat this as a once-in-a-generation chance to refactor before the conversion. Clean up logic, modularize code, eliminate dead weight, and clarify intent before you begin translation. You’ll thank yourself later when your new Java application is actually maintainable.

    Generative AI: Accelerating (But Not Replacing) Human Expertise

    Generative AI is changing the game, especially in code explanation and (to a degree) translation. Stories like Morgan Stanley’s headline-grabbing AI-powered modernization show the promise—and the reality—of what’s possible.

    But here’s the big lesson: AI can’t replace the need for human expertise and business context. It is a tool that can automate some tasks to save time. Even the best AI can get you to a “working” translation, but human developers must validate, refactor, and optimize the results for efficiency, security, and compliance. 

    Where GenAI shines:

    • Automated code explanation: AI models can rapidly generate plain-language descriptions for modules, making lost business logic visible again.
    • Code visualization: AI-powered tools can map dependencies, call graphs, and data flows, giving teams an actionable blueprint.
    • Accelerated translation (with guardrails): AI can handle the bulk translation, but it’s up to the team to review, refactor, and ensure the result is “Java as a Java developer would write it.”

    Crucially, GenAI brings flexibility. Some teams may use custom-trained models to reflect their unique codebase and business logic; others may rely on curated public LLMs or on-prem solutions for compliance. The smartest organizations use a mix—always keeping humans in the loop.

    Finding the Balance: What Stays, What Goes?

    The “all or nothing” mindset—either move everything off the mainframe or keep it all as-is—just doesn’t hold up. The most successful organizations assess each workload on its own merit:

    • Stays on mainframe: Ultra-high reliability, security, or compliance needs; rare updates; existing skills available.
    • Moves to modern platform: Needs rapid iteration, cloud integration, or agility; technical debt is high; Java or modern language skills are abundant.

    Remember: the goal isn’t to chase trends, but to optimize for your organization’s real-world needs.

    A Checklist for Smarter Modernization

    Based on what works for leading enterprises (and what’s tripped up even the best teams), here’s a practical checklist for mainframe code conversion success:

    1. Inventory all applications and their dependencies—don’t leave room for surprises.
    2. Visualize code and data flows; identify dead code to retire.
    3. Extract and document business logic in plain English—use GenAI to help, but validate with experts.
    4. Refactor for clarity and maintainability before any translation begins.
    5. Assess security, compliance, and audit requirements for both source and target environments.
    6. Pilot automated translation on low-risk modules; learn and adjust before tackling mission-critical systems.
    7. Test rigorously: unit, regression, and performance tests are non-negotiable.
    8. Train your teams on new tools and languages—make the developers comfortable with them so they are part of their daily work.
    9. Tune for long-term maintainability and performance in the new environment.
    10. Govern the entire process, from policy to documentation updates.
    11. Engage business stakeholders early and often—business context is essential for prioritization.
    12. Iterate and improve—modernization isn’t a “one and done” project.

    The Human Factor: Still the Secret Ingredient

    No matter how advanced your tools, human expertise and business insight are irreplaceable. AI can speed up understanding and translation, but only people can validate, contextualize, and steer modernization in the right direction. Involve your domain experts, engage the business, and treat modernization as a team sport.

    Explanation First, Then Transformation

    Mainframe modernization isn’t about abandoning a “legacy”—it’s about transforming your organization’s most critical assets for the future. Start with explanation and understanding. Use GenAI to illuminate what’s hidden, bridge knowledge gaps, and accelerate the journey. But keep your eyes on the real goal: delivering business value, reducing risk, and empowering the next generation of technologists.

    Don’t let buzzwords or bandwagons rush you into a code conversion project. With the right preparation—and a healthy dose of human judgment—you’ll find the balance that works for your business, now and for years to come.

    Want to share your modernization story or compare notes? Let’s keep the conversation going. Mainframe isn’t just part of the past—it’s a vital platform for the future, and we get to shape what comes next.

  • Four Ways to Modernize Your Enterprise Monoliths

    Four Ways to Modernize Your Enterprise Monoliths

    In a perfect world, every application would run like Netflix–by which I mean every application would be cloud-native, microservices-based, containerized and, in all other senses of the word, modern. Unfortunately, not every application can be transformed in these ways. Some of the most important enterprise applications–like those powered by SAP or Oracle–don’t lend themselves to architectural transformations simply because the vendors don’t support that strategy. As much as organizations might wish that they could re-architect legacy apps from the ground up, the reality is that they just can’t.

    Fortunately, though, all hope is not lost if you have an enterprise app that you can’t containerize or “microservices-ize.” Even if you can’t “break down your monolith”–to quote the standard advice you’ll find if you read articles about how to modernize legacy apps–there are a variety of practical steps you can take to make legacy, monolithic applications look and feel (in most respects) like modern, cloud-native apps.

    Here are four ways to make your enterprise monolithic apps more cloud-friendly, even if they’re not technically cloud-native.

    Use Cloud Automation to Modernize Legacy Application Management

    Most enterprise apps are compatible with the cloud in the sense that you can host them on cloud-based virtual machine (VM) instances using services like Amazon EC2.

    By taking advantage of cloud hosting for enterprise apps, organizations can also leverage cloud automation tools, such as autoscaling policies and rules that automatically start or stop VMs. In this way, it becomes possible to deploy enterprise apps in a highly scalable, automated way. You get something that resembles Kubernetes-based orchestration, except your apps don’t actually run in containers on top of Kubernetes. They’re just monoliths that benefit from cloud automation tools.

    Deploy Load Balancers to Optimize Performance

    Load balancers, which automatically manage network traffic flowing to and from applications, are another critical tool that organizations can easily leverage when they migrate legacy applications to the cloud.

    Although configuring load balancers for enterprise apps hosted in the cloud is not a strict requirement, doing so can substantially improve application performance and reliability because load balancers help to ensure that requests are directed at application instances best able to handle them. They prevent situations where one instance of your application is overwhelmed with traffic while another sits idle.

    Again, this is something that platforms like Kubernetes also do for microservices apps. But, as I’ve explained, you don’t actually need your app to run as microservices to take advantage of load balancing. You can do it with monolithic legacy apps, too.

    Adopt an Everything-as-Code Strategy

    When your app lives in the cloud and is managed by cloud automation tools, it becomes possible to manage most aspects of application operations via code. Specifically, you can:

    ● Use infrastructure-as-code (IaC) tools to automate infrastructure provisioning and setup.
    ● Automate application configuration management using code rather than applying configuration changes manually.
    ● Codify operational processes, such as application updates and backups, instead of relying on manual operations.

    Practices like these, which enable a strategy known as everything-as-code, significantly reduce the amount of time and manual effort that engineers spend managing applications. They also provide consistency and minimize the risk of errors due to human oversight. And there’s no reason why you can’t leverage these practices for legacy apps as well as modern ones.

    Integrate Legacy Apps With Modern Toolchains

    If your enterprise app is hosted on-premises, you probably manage it using tools and processes designed solely for it. But when you move an enterprise app to the cloud, it becomes possible to manage the application using the same integrated toolchain you deploy for other applications and processes.

    You can, for example, take advantage of cloud-based monitoring tools to continuously collect data about application performance and generate automated alerts when something is wrong. Likewise, you can regularly create image-based backups of your application.

    This toolchain-based operational strategy is another way to streamline enterprise application management, even in situations where you can’t rewrite or containerize the application itself.

    Conclusion: Getting More From Legacy Apps

    Just because you have a legacy enterprise app that you can’t transform into microservices doesn’t mean you have to settle for legacy management and operational practices. Modern automation tools combined with modern operational strategies like everything-as-code make it possible to achieve an enterprise application management experience that closely parallels that of fully modern, cloud-native apps, regardless of which architecture your app actually uses.

  • More Java Apps Are Migrating to the Cloud

    More Java Apps Are Migrating to the Cloud

    A survey of 879 enterprise developers and architects from Vaadin, a provider of framework for building Java applications, found that, as part of modernization efforts, the pace at which Java applications are moving to the cloud is now accelerating.

    The survey found more than one-third (36%) of Java applications are already deployed in the public cloud. More than half of respondents (56%) are also already deploying some of their Java applications into Kubernetes or serverless environments. Nearly two-thirds (63%) said they planned to move more Java applications to the cloud over the next 24 months, the survey also found.

    Kim Weins, vice president of product and marketing at Vaadin, said the survey makes it clear that enterprise IT organizations are still highly committed to Java. Still, there is a clear shift underway in terms of where those applications are being deployed. More than a third of respondents (35%) said they have Java applications deployed on Amazon Web Services (AWS), while 22% have deployed them on the Microsoft Azure Cloud. Another 11% are running them on the Google cloud platform.

    This shift, however, will take time. Almost half (47%) of Java applications still need modernization. As a result, 63% of respondents planned to increase their investments in modernizing existing Java applications.

    Maintainability is the top-ranked motivation for modernizing Java applications (32%), followed by security (20%) and ongoing maintenance costs (10%), the survey found.

    The top three challenges in developing Java applications are building an intuitive and simple user interface (81%), upgrading the tech stack (81%) and ensuring app security (78%).

    There is also a shift underway in terms of the frameworks used to build and modernize applications using a more cloud-native approach. A full 70% of respondents use Spring today, but 50% also noted they are planning to increase their use of Spring Boot. Other Java frameworks used include Vaadin Flow, Quarkus, Hilla and React. While derivatives of Spring are the dominant framework, it appeared more organizations are at least evaluating other options, noted Weins.

    Most organizations are also integrating Java applications with modern tools for logging (72%), observability (61%) and single sign-on (53%), the survey found.

    The shift to Java 17 is also well underway, with nearly three-quarters of respondents (73%) using or planning to use it over the next year. More than a quarter (26%) are already on Java 17 or a later release. Another 21% are currently upgrading, while 26% plan to update in the next 12 months.

    Overall, the survey found Java is being widely used for both internal (64%) and customer-facing (62%) applications. Java is most often used to build full-stack Java apps (70%) and backends (69%), the survey found

    Finally, the survey found more than a third of respondents (38%) expected that finding and retaining developers would be a significant challenge in 2023.

    There are, of course, no shortage of options when it comes to deploying Java applications. Most organizations will deploy Java applications everywhere from the network edge to the cloud. The one thing all these applications will have in common is they will be written in a venerable programming language that itself has been modernized.

  • Busting 5 Common Database Modernization Myths

    Busting 5 Common Database Modernization Myths

    Modernizing databases is one of the best ways to improve database and application performance. However, many companies are hesitant to make major changes, even if they could lead to better outcomes. Why? Because there are prevailing myths about how database modernization projects fail to deliver on expectations. Five myths, in particular, seem to hold leaders back from pursuing modernization opportunities. We cover each of these myths in detail below:

    • Myth One: There is little performance benefit to modernizing databases in the cloud
    • Myth Two: Cloud databases won’t reduce my IT costs
    • Myth Three: I’m better off leaving my data on-premises for security and availability reasons
    • Myth Four: There’s not much I can do in cloud databases that I can’t do on-premises
    • Myth Five: Commercial databases aren’t compatible with cloud databases

    Fortunately, we’ve debunked these database modernization myths and can speak to the incredible benefits of modernizing databases on the cloud. We’ll use Amazon Web Services (AWS) cloud, specifically, as an example here, as it is a commonly used option for boosting database performance and innovation.

    Myth: There is Little Performance Benefit to Modernization of  Databases in the Cloud

    Modern cloud computing technology has advanced tremendously in recent history. With this advancement comes loftier expectations around database performance. And the truth is commercial databases are falling behind.

    Commercial databases are less scalable overall. They can struggle with latency issues, especially when supporting modern applications. Plus, finding enough processing power can be a challenge. Companies are still dealing with chip and RAM shortages related to ongoing supply chain disruption.

    Cloud providers, on the other hand, haven’t suffered as much. They buy components in bulk and have an overwhelming amount of equipment, infrastructure and memory for running cloud databases. Who benefits from this accessibility? Companies that have traded their on-premises infrastructure and commercial databases for the cloud.

    One of the best features of cloud databases is their on-demand scalability. Organizations can easily scale with customer needs. In contrast, on-premises or private cloud solutions bind engineering teams to their hardware. These constraints don’t exist for cloud users.

    Companies on the cloud can choose from a wide variety of plug-and-play solutions to optimize performance across decoupled services (AKA microservices). These microservices can each have their own database engines that scale as needed.

    Myth: Cloud Databases Won’t Reduce my IT Costs

    The second myth that holds companies back is the belief that IT costs won’t come down in the cloud. Theoretically, on-premises and cloud databases could be equally costly, but this is unlikely in real-world scenarios when you consider all factors.

    With on-premises databases, companies pay in full whether they are buying direct or through a private cloud. They also typically have to buy licenses with fixed pricing. Even if organizations don’t use the maximum resources available to them, they are still on the hook for the full cost. AWS doesn’t operate this way.

    On AWS, organizations only pay for resources consumed if they choose to go the on-demand route. IT teams can otherwise select from different savings plans if they are willing to make minimum volume commitments. Compared to fixed-price contracts, these approaches ensure that costs scale more closely with processing power. This level of elasticity is essential for modern companies that want to deploy modern applications.

    Myth: I’m Better Off Leaving my Data On-Premises for Security and Availability

    Outside of performance and pricing concerns, some still think that commercial databases are better from a security and availability standpoint. Yet, the cloud wins out here, as well. Cloud databases minimize manual work related to:

    • Encrypting data at rest
    • Encrypting data in transit
    • Defining port allowances
    • Preparing for compliance audits

    This is crucial because manual work opens the door for human errors. On-premises databases put these tasks on IT’s shoulders and make administrators responsible for ensuring data integrity. There is no room for mistakes, which is scary when managing complex applications. The good news is that cloud databases alleviate this pressure.

    For instance, Amazon Aurora maintains six copies of data across three availability zones. The solution boasts 99.99%+ durability with <30-second instance failover. Similarly, Amazon DynamoDB guarantees a reliability of up to 99.999%. AWS’ managed databases also offer 256-bit encryption with SSL certifications and rotating access keys.

    Moreover, the cloud provider offers an identity and access management (IAM) solution that simplifies authentication and role assignments for users and resources. AWS also lets users set up security groups, which take away much of the complexity associated with protecting cloud-based infrastructure.

    Myth: There’s Not Much I Can Do in Cloud Databases That I Can’t Do On-Premises

    The fourth myth that keeps leaders from modernizing databases is the idea that they aren’t missing out on much by staying on-premises. But the truth is that commercial databases fall short in significant ways when trying to elevate legacy applications. Most are monolithic by design, which is antithetical to the agile nature of the cloud.

    Organizations that want to deliver modern applications must have modern back-end infrastructure. Today, this means leveraging microservices–and having different databases for different application functions. Taking this approach allows organizations to scale distinct parts of their applications separately according to demand.

    Myth: Commercial Databases Aren’t Compatible With Cloud Databases

    The final myth that slows database modernization progress is the notion that popular commercial databases, like Oracle and SQL server, aren’t compatible with cloud databases. This isn’t true. Amazon RDS, for example, lets users run their Oracle and Microsoft SQL server workloads in a fully managed database service. Amazon Aurora is also fully compatible with MySQL and PostgreSQL databases.

    For the most part, cloud databases allow companies to continue using familiar code, drivers, applications and tools without having to do much refactoring. And should leaders decide to migrate away from commercial solutions altogether, there are import and export tools that help accelerate the process.

    Conclusion

    To summarize, much of the conventional wisdom around keeping commercial databases is outdated. The cloud offers a much more compelling and exciting path. Cloud-native solutions enable companies to take database performance to the next level without any added complexity.

  • How to Modernize Data Integration

    How to Modernize Data Integration

    In times of uncertainty, accurate real-time data becomes essential to informed decision-making. When the pandemic ends and businesses begin to reopen, this will be truer than ever. While there is no precedent for COVID-19’s impact on the economy, what is clear is that the enterprise is clamoring for more analytics than ever. Data engineering is at the heart of operationalizing the delivery of that data, wherever it originates and wherever it’s needed.

    To operationalize data flows, engineers must be able to collaborate with different personas, reuse peer assets, support data pipelines in production and, as platforms and business requirements change, evolve quickly and with confidence. The focus of data engineering can no longer be limited to ease-of-use and developer productivity. In today’s fast-changing world, we need to enable modern engineers to embrace DataOps. In doing so, they will be able to guarantee continuous data for fast, confident decisions by and for the business.

    Current Options Are Too Simple or Too Complex

    Current approaches follow either a “grab-and-go” mentality that focuses on simplifying ad-hoc access for first-time analysis, or lurches towards specialized coding for anything complex. Both of these approaches lead to ongoing and recurring headaches. Significant effort is required to debug data pipelines, rerun them and rework them every time a change happens. Today’s data engineers end up spending 80% of their time just keeping the lights on, leaving very little time for new value-added work.

    Using Intelligent and Responsive Data Pipelines

    Data engineers face mounting pressures and challenges, from an ever-increasing project backlog to an accelerating pace of upstream changes to the emergence of cloud data platforms driving re-platforming projects. To tackle these issues, engineers need a solution that allows them to operationalize their work by abstracting the “what” of the data—the business meaning and the logic—away from the “how” of the data—the technical implementation details that the business doesn’t care about. To achieve this, businesses need to think about data pipelines as dynamic, intelligent sources that can (and should) be capable of real-time adjustments.

    There are three ways that data pipelines can be considered smart or dynamic: they are easy to start and easy to extend; they are resilient to changes that occur over time and they are portable, supporting hybrid and multi-cloud environments.

    Companies that have focused on removing the “how” by developing intelligent and responsive systems free up their engineers to stay focused on the “what” – what are the outputs? Are the analytics providing the right ROI or information? They also make it easy to get started building pipelines through intent-driven design, removing tedious tasks for engineers and empowering ETL developers to self-service. This includes the repetitive task of managing data drift, whether it’s a schema change, a database version upgrade or a file format change. Smart pipelines handle such changes with minimal to no intervention required.

    Demand Continuous Data for the Business, Now

    COVID-19 has segmented businesses into have-lots, haves and have-nots. The have-lots have experienced unimaginable growth and, consequently, are generating incredible amounts of data. They have had to deliver better engagement with their constituents, optimize their product offerings and stop bad actors, fraudsters and cybercriminals from exploiting the unexpected surge in demand for their business. If they have risen to the challenge, you can bet that they have modernized their data practice and can deliver continuous data to all consumers.

    The haves and have-nots have generally been in survival mode, operating under short-term mindsets to reduce cost, consolidate as much as possible and wring out any waste. Depending on each individual situation, that may have meant staying on legacy platforms and postponing modernization efforts. Some have enjoyed cost savings by reducing consumption and negotiating with their vendors. Others have made a tactical move to the cloud, but simply as a path to lower costs of their data platforms. Only a select few have done the right thing and made the complementary investments in data engineering to reap the full benefits of their shift to cloud.

    As this pandemic comes to an end, the prospects for the haves and the have-nots will start to look more promising. If you have been focused solely on keeping the lights on and managing costs, you may have been mortgaging your future. This needs to end. Don’t wait. By modernizing your ETL to create more dynamic, real-time data pipelines now, your engineers can operationalize their work, deliver a new level of innovation and self-service to the business and demonstrate their true worth as data heroes.