Many years ago at my local high school, I started to dig into a Star Trek program written by a very bright student turned developer in that you could end up with more survivors on your ship than you started with. Depending on the weapon used during battle (sonic destruct was an all-too-easy go-to favorite to cause this) and the shield strength facing the enemy ship(s), you would go from 450 people on board to something on the order of 1.75342E+07 or some other ridiculous number. Talk about a population explosion issue!
So there I am poring over about 7 BASIC+ programs printed out on heat thermal paper (yes I still have them) that used CHAIN statements to help manage memory issues (8k max – yeah, 8k). So why did I care about this bug so much? I mean it’s just a game, right?
Why I cared was because that student turned programmer for a living had arranged for a prize too good to be true – a set of DEC-10 programming manuals to be given to the school who could find the bug and prove it was the bug so that he could fix it. I can just see you all laughing about this saying “just find them on the web and download them”. Maybe I should mention that this was when ARPANET was just being built. Maybe I should mention that the browser was still about 17 years away from even being invented, let alone unleashed. Back then, a printed manual cost about 40-50 dollars USD and good luck getting your hands on one unless your parents were in the programming biz (mine weren’t). I wanted that latest version of the DEC-10 BASIC+ manual bad because DEC had added some really cool stuff to the language and which was NOT yet implemented in the HELP command (so much for that help). Yeah, online documentation wasn’t that great back then either.
All of a sudden I hear a knock on the storage room door. Our 300 baud dial-up terminal (yeah – 30 characters per second) was located in a 8 foot by 10 foot storage closet with just a single light. “Just let me sign off and I’ll be ready to leave” was my reply to the knock of who I assumed was the lead math teacher (female) who was always wanting to leave too early in our humble opinion.
“Son” boomed a voice from a voice range way too low for any of our math teachers at the time “, are you Bruce Hartley?
So I turned my head to the right and standing in the doorway is a police officer from the fine community of Greece NY all decked out in uniform with a flashlight shining it on me. I’m like “Oh crap, what the heck is going on and why am I about to get busted”
Ok, now you are thinking I was hacking the CIA or something and Mr. Policeman was ready to take me to visit our local jail in lieu of being transferred to the US Federal Prison system.
So my lawyer mode kicked into overdrive and I said “Can I ask why I’m being arrested and/or charged and if so what was my crime because I didn’t do anything”. “Nothing like that son, just glad we found you”.
Well as it turns out, he speaks into his large handheld radio that “I found him, he’s in the computer room” and then says “Son, do you know what time it is?”. You have to understand that this “room” that they had us use has no windows, one door, we keep it mostly shut to keep out most of the noise from the math lab, so I responded “3:40?”. thinking that it’s the end of the after school time slots for computer time signup.
He then moves his flashlight and heads out the door. Only then do I notice that the math lab is dark, VERY VERY dark and he walks over to the light switch and turns it on. I then look at the clock and it’s 6:30 PM – Oh CRAP!
So then I realize why the officer is there – my parents had called the police and reported me missing because I didn’t come home from high school. And of course the police ask what time I normally get home and was told “well he is always staying late in the computer lab and gets home about 4:15 pm. So naturally where did they look first? hint – it wasn’t the local bus station. Didn’t hurt the police station was just down the street from the school so why not check there first and of course the computer room was a natural place to look for me.
So it turns out that due to a foul-up of epic proportions on which teacher was to cover the late shift in the math lab that day, no one was there to remind the students to pack it in for the day. And since one didn’t have a clue as to what going on outside (sensory deprivation anyone?), one could not tell that it was way past going home time and more like dinner time (and I was late for that too).
Wish I had a picture of said “room” (try storage closet), but I think you all can picture the scene.
So what’s the point of this? If you aren’t careful and a Star Trek program creates more new people than a new large US city, you might not make it home for dinner on time. Ha ha, very funny story Bruce, what’s the big deal?
Here’s the big deal about bugs, a more serious bug might be that jets crash when software improperly tries to cause a plane to climb at a stall rate when bad hardware sensors send the program bad data and no one thought to account for checking limits of incoming data.
Computer systems quality matters, it needs to be taken seriously for everything and attitudes like “the pilots can just shut the subsystem down if there’s an issue” can literally get people killed (it did). And I’m sure many of you have worked overtime on a bug that shut your systems or subsystems down and caused you a lot of grief.
The best bugs are the ones that are never created followed closely by the ones caught at various phases of your software lifecycle. So it behooves us all to have processes in place to ensure software quality isn’t an afterthought.
This is hopefully a start of a series of blogs I hope to write about software development and quality so that is why I’m passing on this story to start with. And by the way, I got started with computers in 4th grade when a hardware bug shredded a disk drive subsystem on a custom one of a kind school library book catalog computer developed by Eastman Kodak as a pilot project. Yea, a bunch of elementary school kids were used as free testers and some of us formed a computer club after that. That computer lived by the way, the bug was found and fixed and a new disk drive subsystem and disk was installed.
So now all all of you are saying “Forget the darn bugs and moral of the story Bruce, so what happened? Were you grounded? Were you arrested? Did the town of Greece, NY get a million new residents? “We just have to know!”
Two weeks later I brought into school a brand new DEC-10 Basic+ manual with the latest newly added features to share with all my fellow students. And the math teachers had a new policy about ensuring everyone was out of the lab when the last one left for the day. And Greece, NY never had to deal with 1 million new residents. And best of all, I wasn’t arrested or grounded.