Why aging COBOL systems are hard to upgrade.

Hint: Crashing federal and state systems is not the fault of modern COBOL, which is quite robust and runs lots of mission-critical systems just fine.

The real problem is for decades management didn’t want to spend money on training or upgrading, and legislators thought it was clever to underfund government agencies. So they now there are cobbled-together systems with old code no one really understands, much less has documented. So, making changes can be seriously difficult.

IBM and Open Mainframe Project is mobilizing to help, with open source free COBOL training, Programmers Forum where employers can find COBOL programmers, and a Tech Forum to share knowledge.

Micro Focus COBOL (see image) is modern. “Utilize REST and JSON to build new web services. Create new user interfaces using Win Forms or WPF. Combine COBOL with C#, VB, and other .NET languages—all within one IDE.” Sounds good to me. Migrating decades old code and databases to it might be tricky, however is way better than a complete rewrite.

Here’s an example of the dysfunction. That $600 a week extra for unemployment is because changing the percentage amount on 50 state systems isn’t going to happen, probably because a sizable number of the states don’t have all the source code, can’t document all the places the percentage is calculated and used, and redoing it could break something. That’s not the fault of COBOL.

The situation is so bad that Congress has decided to give all unemployed workers a flat $600 extra per week in unemployment insurance payouts instead of calculating their bonus as a percentage of lost wages, as they originally planned to. Why? Because state’s have said changing the reimbursement percentage in their legacy software would take an estimated five months (or longer).

So, many state, federal, and legacy COBOL system have a 40+ year old code base in multiple versions of COBOL. Whee.

Ad hoc systems were added over the years using whatever was current at the time like FoxPro, Clipper, Access, Excel, etc.

There is black hole code. The data goes in, the correct answer comes out, no one knows why.

Current versions of all the source code? A HA HA HA. No, of course not.

Documentation for databases, tables, indexes used by the system and a programmer’s guide? We all know the answer to that.

FYI: California has tried twice to modernize its state payroll system and it was a catastrophe.

Example.
“Hey these management reports seem really important.”

“Yes, they are mission-critical.”

“Can they be updated or changed?”

“No, everytime we try it breaks.”

“What is is written it.”

“Access.”

“Access?”

“Um, yes. Access… And dBase III.”

That’s the problem….