Old MacDonald had a stack overflow

Once upon a time, in the early days of software, there was something called “documentation”: if your program somehow went awry, you were obviously unhappy with the situation, but at least there was an explanation of what had just happened.

Today, however, you’re left to twist in the electron wind:

One of the things the guy in his garage had to do, in order to even have a shot at success, was to go through all his error messages one by one and make sure every one of them accurately described what went wrong, in a way that the user could speedily fix or at least address the problem, with confidence, ALL OF THE TIME. All five hundred of the goddamn things, or ten thousand, or however many of them there were. Not like they were professionally edited or anything. Some of them had appealingly rustic little grammar errors in them, but there was some good old honest-to-God work involved in not confusing or annoying the user, because the user was the customer. Think of a hotel maid doing her best not to completely screw up the room, so the hotel doesn’t get a bad rating on the social media … even though her English is broken, she puts priority on it, and these small-business or one-guy software shops put the same priority on their error messages for the same reason.

Our standards with regard to error messages have slipped to an abysmally low depth. It’s like, nobody even stops to question it any more. The application burbles out some bit of nonsense … “web site does not exist” or “you do not have permissions,” or something else that doesn’t even bear a passing resemblance to what’s really busted. Or what we had going on at work this week, “Error 126.” You take this little string of characters, which amounts to nothing more than a — let’s call it what it really is — SIGNATURE. You take it and Google it and open up some “knowledge base” pages with comments from others who have run into the same error. From that, you figure out what’s really going on. The software publisher might as well insert random snippets from children’s nursery rhymes.

I got a wonderfully inscrutable — yet perfectly understandable — error message from a printer last week:


Bad hammer coil! Bad, bad hammer coil!

The numbers probably would have run out to 130 had there been space on the display panel. A call to tech support yielded up a “Wha…?” An actual tech was dispatched, on the sensible basis that they weren’t going to send out a new shuttle (manufacturer’s suggested retail price, about that of a Nissan Versa) on spec, and the truth of the matter was ascertained.

And that truth was weirdly complicated. There’s a teensy bar magnet superglued into the top of the dust cover. What it’s there for, I haven’t a clue. And at the moment, it wasn’t there anyway: ten years of vibration and dust and more vibration had loosened its hold on the plastic cover, and the magnet made a beeline for the first metallic object within the gravitational field.

Which was the cooling fan for the hammer bank.

Shuttle overheats, inscrutable message is generated, printer shuts down to Not Ready.

Then again, this printer is a decade old. Its younger sister on the platform is prone to coming up with uninformative information like “HALT CW1ZX,” which I tend to interpret as “Cycle the power and hope it goes away.” Sometimes it even does.


  1. jsallison »

    29 November 2013 · 7:46 pm

    larnt me some COBOL from an instructor whose day job was programming for the city(ish) of Lawton. His habit, he’d been there a looong time, was to have separate error screens for each branch fail, more accurately each fail input a unique code on a generic error screen so that seeing the code told him just what f’d up. He just had to get the user to recreate the fault, and tell him what the code was. Saw it in action, simple and elegant.

  2. CGHill »

    29 November 2013 · 8:24 pm

    Our tall midrange box at work is fairly ept at spitting out plausible error codes, as IBM insists, but the sheer number of possible errors — error code format is aaannnn, which allows for something like 175,760,000 codes — means that mostly you’re hoping that the one that comes up is one you’ve seen before. (I have a couple of dozen memorized, but no more.)

  3. McGehee »

    30 November 2013 · 9:00 am

    Eventually all error codes will boil down to automatically displaying the browser page of the nearest store where you can replace the machine.

RSS feed for comments on this post