Marc Breault Ramblings

I have many interests ranging from religion to NFL football. This is a place where I ramble on about whatever I feel like rambling about.

Saturday, February 15, 2025

Why People are 150 years old in SSA systems

 When Elon Musk said some people were 150 years old in the social security system I immediately understood what the reason was and after consulting some tech boards, my suspicion is realized.  The system is written in COBOL and a farily old version.  Many older systems use impossible dates to indicate dates that are unknown or blank.  A few years ago, I worked on a system where the date was 01/01/01.  Apparently, the old coders many years ago decided 1875 was the impossible date they wanted.  Why would they do this?

 

Back in the old days, data quality was not that great and there were a lot of blank birth dates or mistyped birthdates.  There are many reasons for this which I won’t go into.  Systems with a null birthdate tended to crash.  For example, if you had something like this:

 

       IDENTIFICATION DIVISION.

       PROGRAM-ID. DATE-CHECK.

 

       DATA DIVISION.

       WORKING-STORAGE SECTION.

       01 INPUT-DATE        PIC 9(8).

       01 BIRTH-DATE        PIC 9(8) VALUE 19900101.  *> Assume birth date is retrieved from the system

 

       PROCEDURE DIVISION.

       MAIN-PROCEDURE.

           DISPLAY "Enter the input date (YYYYMMDD): ".

           ACCEPT INPUT-DATE.

 

           IF INPUT-DATE < BIRTH-DATE THEN

               DISPLAY "Error, wrong birth date".

 

           STOP RUN.

This is what COBOL looks like assuming birth_date has been retrieved from the system.  Now if birth_date is null (blank) it’s crash time.  So rather than put check for null code everywhere, coders used to put impossible dates so the code would not crash and so users would know that birth_date was not reliable.  This is a problem with ALL older systems that deal with people, and not a result of government incompitence.

 

Elon should know this so I can only think he is deceiving everyone.  Any programmer who has worked on older systems knew immediately why 150 year old people were in the system.  Americans need to understand they are being misled and lied to.

 

Oh and I am thankful to the Almighty that I do not have to write COBOL.In the very old days, you had to position each line of code in the right spot.  You didn’t just write code in lines but certain syntax had to start from position 10, others from position 4.  That was a throwback to punch cards.  If government employees have to work with that, they deserve our compassion, not our ridicule.

 

 

I thought I would write a little more about the dates in the social security system.  Social Security was first introduced in the US in 1935.  We got the idea from Bismarck, but that’s another story.  There were no computer systems then.  It was all done on paper.  In 1956, the SSA bought an IBM 705 mainframe and computerization began with the technology known as magnetic tape.  In the 1960’s, the SSA got more updated IBM computers.  In the 1960’s, SSA began using IBM System/360 and IBM system/370 computers.  I cut my programming teeth on the IBM System/370 165 computer in the 1970’s.  With those computers, card punch was king.  Data entry and some programs were written on card punch machines.  Thus, between the manual processing at the beginning, and the gradual transfer to computers and the use of magnetic tape (paper tape) and card punch, there were a lot of errors in the data.  Keep in mind too that databases as we know them today did not exist.

 

The relational database was invented in 1969 by Edgar F. Codd who was a researcher for IBM.  But IBM did not take him seriously because they had what we used to call hierarchical database models back then.  It was not until 1979 that Oracle introduced a commercial relational database (RDBMS) and the decade of the 80’s saw its nearly universal adoption.  IBM did not release one until 1983, 14 years after their own researcher came up with the idea.

 

As I said, this meant that the data quality was poor to adequate.  This is the problem with any old computer system because the original data was imported from paper, or keyed in one record at a time.  The language of choice for businesses in the 60’s and 70’s on IBM system/360 and System/370 computers was COBOL (Common Business Oriented Language).  Many banks today still have COBOL programs running.

 

I was shocked to learn, but not really, that SSA continued using IBM system/360 and System/370 computers up to 1982.  Wow, talk about antiquated.  They desperately needed to upgrade but doing that without disrupting SS payments to millions of Americans proved really difficult as it would be for any system.  One company I worked for was in the same position in 2006.  They went bankrupt after I left because they could not maintain functionality for their customers while upgrading from older computers.

The old COBOL language for the IBM computers did not have exception handling.  Modern languages do.  Modern languages have code like this:

 

Try

{

                //Some code

}

Catch (Exception ex)

{

                //error handling code

}

 

Or if you are bored, your catch clause might look like this.

Catch (Exception wtf)

{

                //Error handling code

}

 

The purpose for code like this is to catch an error and do something about it so the program does not crash.  Those familiar with the old blue screen of death know all too well what happens when errors are not caught properly.  Well, old COBAL did not have catch code so if there was an error, it was crashville.  As I said in my previous post, null date fields were a common cause of crashes and still plague IT today. 

 

My understanding from the tech boards is the impossible date people put in to avoid crashes was 5/20/1875.  I don’t know why that date was chosen.  But when I used to put in impossible dates, I celebrated my birthday and put in 9/20/1635 or something like that. 

 

The fact that SSA still has COBOL code lines them up with many banks.  Upgrading IT systems, especially ones that go way back, is hard and expensive.  If anything, this shows that the US has let its systems run down and has not committed enough money to upgrade them properly.  Join the club.  This happens in private companies all the time.  Just ask Southwest Airlines how that’s working out for them.              

0 Comments:

Post a Comment

<< Home