Application & Data Migration Blog Posts | Mobilize.Net

Calling all cobalt programmers

Written by John Browne | Apr 6, 2020 10:38:04 PM

You know you're in trouble when your critical legacy system is so old no one remembers the name of the language...

New Jersey's legacy COBOL system

New Jersey state governor Phil Murphy made a public call for "Cobalt computer skills" to update their 40+ year old legacy systems, particular their employment security system. 10 million Americans filed for unemployment compensation in the last 2 weeks, and there's no reason to expect the number not to grow significantly for a few more weeks. New Jersey reported a 1600% increase in the number of new filings since the pandemic started, and their legacy mainframe systems can't keep up.

The systems that many state governments use for critical functions like unemployment insurance are--sometimes--decades old. And that means they were written in petrified programming languages like COBOL. Languages so old that the only living people who actually have experience are themselves old, old, old. 

In the case of the coronavirus, those programmers Governor Murphy desperately needs are almost certainly in the "most vulnerable" category--because of their age--and should stay home to stay healthy. 

On a similar front, as the pandemic accelerated, the US government asked airlines to gather additional information from incoming travelers to help block potentially contagious fliers. The airlines were like, "nope" because it would take months and months to modify their legacy software systems.

And somehow Facebook manages to do a couple of updates per week. Microsoft rolls out updates to developer tools monthly. Some companies deeply invested in CI/CD make updates every single day. 

Software engineering has come a long way since the heyday of COBOL and big iron. But so have cars and telephones, to name a couple. And just like you wouldn't want a daily commute in a 1973 Buick (unless you're a masochist) or rely on a Princess phone for communication, those mainframe and client-server desktop systems are anachronisms. 

I think my mother had one of these.

Digital transformation allows institutional agility

The combination of internet, mobile devices, agile development, public cloud, IoT, API adoption, and CI/CD has created a revolutionary transition today lumped together under the name Digital Transformation (DX). And a core component of DX is software engineering agility, where release intervals shrink from years to days or weeks and CI/CD means code can go from check in to customer deployment in minutes. "Move fast and break things," is how Facebook's mantra went. Find a bug? A fix can be literally minutes away--verify the code, check it it, and the system will run the regression suite and publish it to the production environment.

Badda bing, badda boom.

Legacy systems can't do this; they are prisoners of their ancient environments, languages, and platforms. Somewhere in a data center in New Jersey, there's a mainframe computer running a COBOL program with some critical value hard coded. Maybe it's the maximum payment amount, or time interval, or some other required value. It's something the State of New Jersey desperately needs to change. Not next year, not even next month. Today would be nice. But--as you and I both know--that requires a non-trivial effort to get the source code, understand the source code, make the changes, compile and link the code, verify the change doesn't break anything, modify input screens, verify those, and so on. 

Non trivial, and certainly not quick.

Legacy systems block agility

Forget about the pandemic for a moment. The world is just changing faster every day. Changes that require rapid response from organizations large and small. And increasingly we see institutions--public and private--caught in painful circumstances because they couldn't respond quickly when rapid change was needed. As more and more information, processes, and abilities have been converted to instructions in software, those systems become the gating factors for agility. Keeping up with the pace of change while shackled to the leg irons of legacy software applications is impossible. One falls further and further behind.

The entire world is currently focused on the coronavirus pandemic, as it should be. More than any time in living memory organizations need agility to respond to this rapidly changing threat. Some industries are in virtual shutdown, while others like healthcare, shipping, logistics, and certain manufacturing sectors are in overload. New Jersey's challenges are hardly unique. General Motors is retooling to build ventilators, and reaching throughout it's supply chain to source parts, which are being made by auto-parts manufacturers retooling to build ventilator components. Shortages of consumer goods like food and toilet paper are not the result of hoarding as much as from the inflexibility of the entire value chain. Not since World War II has the United States faced such a dire need for rapid economic change.

Cherry trees blooming at the University of Washington quad, prior to social distancing.

Digital transformation starts with legacy modernization

The cherry trees are beautiful this time of year, and a few years back I asked my expert gardener friend when was a good time to plant one. "The best time to plant a tree," Jim said, "is ten years ago. The next best time is today."

The same thing is true for modernizing legacy applications. Year after year people kick the can down the road, and eventually that procrastination comes back to bite them. I'd be willing to bet the CIO and IT management of the State of New Jersey right now is really really wishing they had modernized that unemployment insurance system before now. Instead, when they need agility more than ever, they're stuck with an obsolete system written in an obsolete language, hoping like hell they can find COBOL programmers to help them out. 

When this is all over--and it will be, at some point--I wonder if they'll reconsider their IT priorities in light of this recent experience? 

How about you?