We are (or were) federal technologists who have modernized legacy systems, including COBOL mainframes. When we read that DOGE was planning on migrating the Social Security Administration’s (SSA) COBOL systems, we immediately had concerns.
The first step of modernizing COBOL is to understand why COBOL was originally used. But even the scope for this endeavor is currently murky. SSA’s infrastructure contains more than 60 million lines of COBOL, and changes every year because legislation changes. SSA has more than 4,000 technical systems, and it’s unclear how many of them touch COBOL.
AI is able to directly translate lines of code from one language to another, but the output will not be useful out of the box. You still need to understand what the system is doing first, so you can give the AI the right training data to be helpful. That is especially important for massive legacy COBOL systems, because each system is bespoke to each agency.
Even then, AI has a harder time keeping track of human logic and creative solutions across multiple systems. Both of which abound in any system that’s decades old, like SSA’s COBOL system.
It’ll take time and care to untangle all the logic, which includes understanding the original requirements in the legacy system and working with the people who know how everything connects. You need to understand what the original code is doing, especially between systems, before siccing AI on porting it.
Training people to read COBOL isn’t the hard part, because it’s actually very human readable. The hard part is untangling decades of legislated business rules and small codebase-level decisions to make things work. Very little of that will be written down anywhere. Instead, people are essentially the documentation in legacy systems.
It’ll be the employee who’s been there more than 50 years, who knows the benefits programs and technical systems inside and out, who is the only person able to validate how something is supposed to work. DOGE is currently making it extremely unattractive to work in the federal government, by offering early retirement for people, as well as firing scores of people without cause. What do you do when those people with deep knowledge are gone?
When modernizing legacy systems, moving the code actually doesn’t take up most of the timeline. What takes the most time is testing the new system and making sure the outputs are what you expect they are.
This is where working with COBOL is challenging. COBOL isn’t like other programming languages—it was created to allow non-engineers to work with business logic in technical systems. Critically, COBOL systems lack the infrastructure to support automated testing. And for a nationwide government system, you need to perform hundreds of thousands of tests to come anywhere close to covering all the possible use cases. It is completely understandable that a team of developers [sic] would want to get away from that workflow. But to migrate COBOL to another language requires, you guessed it, an extreme amount of testing.
COBOL has been around so long, that it thinks about data in a very different way than modern systems. To summarize an extremely technical explanation, basically, the math may be off when converting COBOL to something else, even its accepted modern equivalent business language Java.
Needless to say, the math being off isn’t great when the whole point of the system is to disperse more than a trillion dollars to more than 70 million people.
The only way to mitigate the unexpected math result is to take the time to rigorously test the new system against the original, compare the outputs, then tweak the code to ensure the outputs are exactly the same. It’s possible that this will need to be done for every single use case, and there could be hundreds of thousands of use cases.
Nothing DOGE has done so far gives us confidence they will migrate COBOL responsibly. Nothing tells us that they want to work with longtime SSA staff on understanding the current system. They don’t even seem to want to understand the current system at all, given their incorrect assumptions about how birth dates work in SSA.
DOGE leads at SSA have said that DOGE is “not there to solve problems or improve service — only to eliminate property, head count and find fraud”. The COBOL migration initiative is reportedly led by Elon Musk lieutenant Steve Davis, who is notorious for cost-cutting, overseeing layoffs at Twitter and finding line items to cut at DOGE. Musk himself has said that Steve Davis is “like chemo. A little chemo can save your life; a lot of chemo could kill you.”
(To be clear, a legacy system migration should not be like chemo at all unless it involves policy changes from Congress first, to streamline the requirements before migrating anything. But we have not seen any evidence of intended policy updates.)
It’s becoming more obvious that DOGE is likely getting SSA off of COBOL because they don’t understand the system, don’t want to understand the system, and want to start fresh with something they can control 100%.
With no fallback plan, there’s no estimating when or if services can be brought back if they break something. Botched multi-year migrations by banks (with smaller customer bases than SSA) have resulted in widespread service outages that take more than 6 months to fully recover from.
If services fail at a private sector company, people can choose another company to do business with. They might lose money with a bank, but they could choose another bank.
There is no other U.S. government. There’s only one SSA.
