By Allen Badeau, PhD
Some things, such as art or fine wine, age well. Others…not so much. Computer code falls into the latter category. Aging legacy code may be putting Federal agencies—and their missions—at risk.
How Legacy Code Hurts Agencies
Federal agencies rely on complex computer programs to administer services, track program enrollment and eligibility, process payroll and HR benefits, and perform other critical functions. Many of these programs are now decades old. According to the GAO, legacy systems costs agencies billions of dollars each year in maintenance costs and lost productivity.
As code ages, a number of problems can develop. Here are four of the biggest.
1. Security Threats
The security landscape is continually changing as new threats emerge. Legacy systems created in another era probably do not meet modern security standards. The operating systems for computers and other individual devices are updated on a regular basis to close vulnerabilities as they are discovered by the security community. But complex custom legacy systems used by federal agencies can’t be easily updated by the same methods used to push a new OS version out to a PC. These systems may be hiding numerous security vulnerabilities in older legacy code that no one has thought to update. New vulnerabilities can also be introduced when new functionality is tacked onto old code or when systems originally designed for stand-alone computing are connected into broader IT infrastructures.
2. Interoperability and Cloud Migration
Legacy systems now operate within a complex IT infrastructure that most of them were not designed for. As hardware and operating systems change and new systems come online that the legacy system must interface with, interoperability becomes a concern. Many agencies are also attempting to move legacy systems into a cloud computing environment so they are more accessible for a distributed workforce or client base. Maintaining interoperability with devices, operating systems and related software programs or preparing a legacy system for migration to the cloud may require substantial changes to the original code.
3. Code Bloat
Most legacy systems have undergone numerous updates over the years to introduce new functionality or address emerging security threats. Most likely, many different programmers or teams of programmers have been involved in updating code, each with their own style and approach. Later updates have most likely been made by programmers who had nothing to do with creating the initial code and may have limited understanding of the original intent and architecture. Over time, this leads to “code bloat,” resulting in increasing density, redundancy and inefficiency of the code over time. This is not just an aesthetic problem—code bloat has real costs in terms of computing power and memory requirements and the end user experience.
Old code can last forever, but old coders don’t. The generation of programmers that created legacy systems in older languages like FORTRAN, COBOL or C are now retiring. These languages are no longer commonly taught and supported, so younger programmers coming on board to maintain legacy systems may have limited experience with them. It can be difficult to find programmers with experience in older programming languages to update and maintain legacy systems. Older code may also lack enough documentation that would make it easier for new programmers to pick up where their predecessors left off.
The Costs of Code Modernization—and How AI Can Help
To bring aging legacy code into the modern era, the best solution is usually to migrate code written in outdated languages into a modern language. Traditionally, refactoring has been done by expert human coders who know both the legacy language and the new language well.
Manual code migration is time consuming and expensive, typically ranging from $65 to $350 per line of code. Complex legacy systems used by Federal agencies may contain millions of lines of code developed over a period of decades by many different programmers. Migrating one of these systems to a new language manually may take years of effort and millions of dollars—assuming human coders with the right expertise can even be found.
NCI has developed a new approach that leverages Artificial Intelligence (AI) to refactor code in a fraction of the time required by human coders and with 100% provable certainty. Unlike most automated refactoring programs, NCI Shai® (Scaling Humans with Artificial Intelligence) philosophy has led to the develop of the NCI Empower™ platform. NCI Empower uses many tools such as Holonic Technologies CodeIntent™ software to refactor applications based on the intent of the code. In other words, the AI can understand what outcome the code is intending to produce and recreate that outcome in any language and on any platform. Along the way, the software continues cleans up security loopholes, creates new documentation and tightens up the code so it is more efficient and easier to maintain. Using these AI tools, we can reduce code modernization timelines from years to weeks and slash expenses to a fraction of the cost of manual code migration.
Look for more in our next blog: The Importance of Intent. Interested in code modernization? Contact us to learn about the NCI Shai® philosophy and what our NCI Empower platform can do for your agency.