Sunday, June 7, 2020

Pay Now or Pay Later

These past months have been unprecedented, having placed an unusual amount of load on unsuspecting systems.  These are the days that reveal the advantage of robust systems and the consequences of fragile systems.  Robust system engineering behave as a young willow tree when the winds of demand blow; 'bend, don't break'.  Resilient systems will survive the storm and in some cases thrive in it.  Properly designed systems prevail and demonstrate their true value in times like these. 

Like a high performance engine, or a professional athlete, properly engineered computer systems require an investment in building (time and money) as well as continuous maintenance.  Lack of maintaining these systems can have dramatic consequences; like this:

https://www.cnbc.com/2020/04/06/new-jersey-seeks-cobol-programmers-to-fix-unemployment-system.html

Unemployment systems built in the 1960's provide the digital heart to the social programs for entire states.  Departments who financed the building of such systems fall prey to complacency in maintaining them and are publically pants'ed and humiliated when the consequences of their actions hit the headlines. 

No bones about it, maintaining systems is expensive it's simply a manner of how you will pay.  The cost of tech debt, or system maintenance can be viewed like that of a mortgage payment....pay it monthly, or pay it in one solid balloon payment at the end of the term; either way, you'll be paying it.  New Jersey backed into a balloon payment after years of neglect.

There are no real easy answers to these decisions, modernizing a 60 year old software-intensive system is a difficult and complex task and it's easy to be seduced to think the right call is to simply stay-fast with the existing system and I can only suspect that's what NJ did. 

The decision to not modernize isn't necessarily the lower cost option either.  Mainframes are dinosaurs in this technology era and the maintenance of these systems likely fell to single-source high-cost specialty engineering houses like IBM billing out at upwards of $200/hr; pay now and pay later.

If NJ could roll back the clock and play out the ideal narrative the hardware system would be replaced to more modern architected systems and the near-mummified COBOL would be replaced with a more modern language.  Then, single-sourced high-cost hardware would be replaced with common hardware and engineering teams well-versed in modern programming languages would open the field to all kinds of talented personnel.   This is frankly the only course of action to preserve a future of this (and other like) system.  Changes like this don't happen overnight, it's a significant time and financial investment but it requires being done, postponement costs only add to the overall cost of system replacement.


No comments:

Post a Comment