Always Acknowledge a Request

I had a flashback to my early coding days this week, thanks to Dallas County. It then occurred to me it was the same issue that caused the Christmas miracle. (Summary: I signed up for a hydroponic garden from the city (well, I thought I was asking for more information), and after silence, it arrived. Out of the blue.)

This was caused by a computer system receiving a request and then not acknowledging it.

My wife signed us up for COVID-19 vaccines and got nothing in response. Silence. So, I assumed if questioned, I could just say I didn’t know (since I never got anything) and signed us up again. This time, we got an email acknowledging the entry, and telling us to sit tight for more information.

Obviously, somebody fixed the system so it would send a reply.

That’s when I had a flashback to 1983 or so. I’m working at a telecom company, doing systems programming, applications programming, operations .. (it was a small company.) There was a daily report that showed, actually, I don’t remember what exactly it showed, but it was really important to one of the finance people, a rather cranky old woman named Verna. (In my defense, I was in my early twenties, and I thought she was old, so she was probably 32.)

The problem that Verna had was that pretty much every day, the systems were out of balance, so there was a report for her to review. On the very rare occasions when everything was balanced (say, a full moon and a solar eclipse on the same day), there was no need for a report, so nothing printed. Everything had worked, so there was no out-of-balance report.

This was logical but it was also a problem. Since the report was usually a one-page report, if it didn’t show up on Verna’s desk, there was a possibility that everything had balanced out, but there was also a probability that the overnight operators had just misplaced it.

So, she said we had to print a report to say that there was no report.

Because I was young and foolish, and hadn’t received a hydroponic garden I had forgotten I had ordered arrive yet, I thought this was an insane request. Nonetheless, I was on call, so I found the source code, added a flag that was set to True (no report) at the beginning of the program, and got set to False as soon as something was out of balance.

At the end of the program, if the flag was still True, I added enough code to print a one-page report that said “Today there is no report.” Then, I forgot about it. Verna either got a report or she got a report that said there was no report. Peace in the valley.

Six months later, we had auditors come in. They were reviewing everything. I mean everything. They looked at the tape maintenance procedures, disk backup procedures, computer room access, and all sorts of procedures.

Then, they started reading source code. All the source code.

Two days later, one of the auditors came over to my desk. He looked puzzled. He said, “Uh, do you know about what the So_Verna_Wont_Bitch_Flag does?”

This is why people should not read other people’s code.

So, the auditor actually had to document that Verna had complained that was not a report that said there was no report, and I had to fix the original code to determine if a report had been created, and it not, print the “no report” report.

I may have been a wee bit cranky when I did the update, since I thought, “I’m wasting my time making a stupid program update to print a report that there was no report, specifically so Verna will stop bitching.”

The great thing about COBOL was that you could be very literal. So, I added the “So_Verna_Wont_Bitch_Flag”, and forgot about it. That’s the answer I gave him.

The auditor never asked me another question.

So, when Virginia registered with the county, nothing happened, which annoyed me no end. Did nothing happen? Did something happen and she threw the email out? Was I registered or not? When I registered a week later, I got an email. Now, I knew.

My assumption is that somebody in downtown added a So_Kevin_Wont_Bitch_Flag.

Well done.

Leave a Reply

Your email address will not be published. Required fields are marked *