When an old Windows computer crashed in Paris’ Orly airport, it grounded flights for several hours. In this case, depending on the 23-year-old Windows 3.1 halted 72 planes per hour.
Leaving legacy systems in your business can be a gamble. There’s room for discussion, of course. NASA’s Orion spacecraft, destined for the moon in 2025, uses the IBM PowerPC 750X hardware because in space, reliability is king, and this 14-year-old IBM tech is reliable. But NASA would never leave the system unchecked. They’ve got 0.3% of the U.S. government budget ($22.6 billion), plenty to divert a chunk to maintaining their legacy systems.
Dragging legacy systems along each year is a costly business. IBM suggests that companies are reluctant to modernize their systems because of cost, a shortage of programmers fluent in legacy languages, data privacy concerns, and the risk of failure if executed poorly. However, companies won’t be able to afford to lose customers and opportunities much longer.
Software isn’t akin to an overgrown garden where it will inevitably grow. Leave your code to its own devices and it doesn’t just become unruly, it breaks. Maintenance is nonnegotiable, but at some point, maintenance costs can dwarf upgrading costs. That’s where adding GenAI to the mix is promising.
Here at BairesDev, we see our fair share of legacy upgrades. Sometimes the core project can be app development, but in 7 out of 10 projects, our devs will also dabble in some migration to make the data work or reduce crash rates. Most commonly, we see data migrations, such as MongoDB to PostgresSQL or on-prem to cloud services.
Since 2021, there have been a flurry of migrations to microservices. The core reasons? Scalability, reliability, and the growing financial burdens that come with legacy maintenance. Now that GenAI is ramping up its capabilities, we can see a well-defined market for using it to dispose of legacy systems more efficiently.
In this article, we’ll first explore the 3 looming reasons legacy code needs to be addressed: security of systems, access to features, and the retirement of a generation of developers. Then we’ll suggest how to leverage GenAI to update the systems at 3 stages of a migration process.
Updating Legacy Systems to Enhance Security
Generally speaking, there’s some form of legacy tech buried in every business. Maybe it is an alarm system from the ’90s or an ancient Excel time sheet tracker. However, where it gets alarming is counting how many of the large systems depend on dated code, like COBOL. This programming language came into the world in 1959, making its debut for the U.S. Department of Defense. Reuters found that 43% of U.S. bank systems are built on COBOL, while many U.S. government agencies, including the IRS, have depended on COBOL for almost 60 years. This is problematic because the less a system is updated, the more fissures appear for hackers to break through.
Security patches are how developers tie up the loose ends or the vulnerabilities. But like any patchwork blanket, less of the original structure remains each time you sew a new fabric over a tear. Consequently, you’re left with a codebase that becomes increasingly fragmented and structurally weakened, a far cry from its original, more unified, and stable architecture.
The U.S. Office of Personnel Management (OPM) hack is one case of a security breach caused by relying on the legacy COBOL system. The data breach exposed the personal data of around 18 million current and former federal employees. As well as security risks, you can also forfeit access to new features available with tech upgrades.
Modernizing Systems for Greater Accessibility
There was a time when Blackberry dominated the cellphone industry … until it didn’t. The main issue arose when customers began demanding applications. Blackberry’s 1990 Java operating system proved too finicky, glitchy, and inaccessible for external software developers. They missed the opportunity to open Blackberry’s doors to external software, limiting what it could offer consumers.
Instead, consumers turned to Google’s Play Store and Apple’s App Store—software marketplaces with infinite app options at their fingertips. A virtual catalog catering to whatever digital needs users had. Blackberry’s internal features weren’t nearly enough to satisfy people.
Apart from our insatiable need for new digital treats, in the last 50 years, tech has leapfrogged to meet accessibility requirements. Markedly, responsive web designs and mobile native apps allow people to access services on the go. If our government agencies are running dated code, it’s harder for the developer to get the service to render correctly on a smartphone. This essentially limits access or forces users to head to a desktop for citizen services. Sticking with legacy systems can also hinder businesses from embracing lightning-fast cloud computing, for instance.
As Legacy Coders Retire, GenAI Addresses Urgent Modernization Needs
As technology ages, so do developers. As of 2024, the average age of a COBOL developer is estimated to be over 60 years old, indicating that many are on the verge of retiring. At the same time, reports claim that there are 800 billion lines of COBOL code still in use by many industries. Young developers are left grappling with what the left-behind legacy code means. Like a precarious game of Jenga, developers can be left wondering, if they were to edit one line of code, would the whole system go offline?
The widespread presence of legacy code, coupled with the retirement of the developers who coded it, highlights an imminent need to eliminate legacy code. Migrations have always been a delicate process, spurring a large market for migration tools. Now GenAI can be an even more dynamic tool for getting us out of the legacy software cycle.
GenAI in the Comprehension Stage of a Legacy Migration
A technology migration must begin with a comprehension of the current setup. DevOps’ best practices recommend writing thorough documentation, but there are many instances where developers leave behind nothing but puzzling code.
A developer in the comprehension stage of a legacy migration has to work out what a previous engineer did. GenAI can help developers understand code unaccompanied by documentation, acting as a translator for interpreting legacy code. It can help unravel the logic and dependencies of the system, even when there’s no knowledge-sharing from past developers. In sum, where there is incomplete documentation, AI can translate and interpret older code.
How to Use GenAI to Build Dynamic Refactoring and Migration Plans
GenAI can create dynamic refactoring and migration plans by conducting simulations to analyze dependencies and exploring various what-if scenarios. This approach enables developers to make informed decisions, just as policymakers would when dealing with complex issues. Of course, migrations occur in non-production environments to prevent catastrophic downtime instances.
Navigating a legacy migration is like tackling a complex Sudoku puzzle, where trying out a solution can lead to errors that force you to backtrack. Similarly, in migration, while many paths may seem viable, some lead to dead ends, requiring developers to retrace their steps. With GenAI, developers can project the consequences of code changes and migration steps, making the process more efficient and reducing the risk of unexpected issues further down the line.
Watch an IBM specialist dive deeper into different ways GenAI contributed to legacy systems’ modernization. Although it is addressed as “app modernization,” this same information applies to all legacy software, from reverse engineering to code debugging.
Reduce Testing Time with GenAI
GenAI can be an asset for navigating the legacy migration testing phase. Its capacity to juggle multiple scenarios reduces the developers’ time spent on testing scenarios. Integrating GenAI allows for simultaneous testing, providing real-time support and suggestions for optimizing migration processes. The intricacies involved in testing during migration can be overwhelming, with numerous variables to consider and potential pitfalls to avoid.
By enhancing developers’ capabilities with real-time insights and proactive issue identification, GenAI improves the migration process’s accuracy and efficiency. This ensures a smoother transition to modernized systems.
Mitigate Risks and Maximize Opportunities
Legacy systems need urgent modernization to mitigate vulnerabilities, introduce new features, and ensure compatibility with cloud-compatible tools. GenAI emerges as a transformative solution, offering efficiency and reliability in legacy migrations. In your project try using it to interpret code outline dependencies without documentation. It is also useful for conducting various migration simulations for smoother upgrades.
Be aware of potential risks like intellectual property infringement. You must also conduct thorough due diligence to verify the accuracy of GenAI-generated data. Having your developers as the ultimate decision-makers will prevent a loss of human oversight.
Using third-party AI solutions that consume sensitive business data may jeopardize information. For instance, Azure OpenAI is powered by the same technology behind ChatGPT, but it gives companies more control over how their data is used. Mitigating risks with the best GenAI practices will also make for smoother legacy upgrades.
If we’re successful in employing GenAI as a more powerful migration tool to ones currently on the market, we could free ourselves from the next generation of legacy systems altogether.