Why is Email So Complicated? Reason # 114: Dumb Robots, Complex Vacations
Going back at least as far as the 1950's, experts have sought to reassure a panicky public that computers are no threat to human beings, and that the only way they can do anything is with excruciatingly detailed instructions, which we call programming. A program needs to be prepared, in advance, for any problems it might be called upon to solve, because it lacks the common sense that allows humans to improvise in the face of the unexpected.
"For every complex problem there is an answer that is clear, simple, and wrong." -- H. L. Mencken
This is certainly true of email robots, or "bots," which perform several small but important tasks on our behalf every day. Bots function as mailing lists managers, autoresponders, email-to-fax gateways, email-to-voicemail gateways, error reporters and collectors, and more. But although the functions they perform sound simple, they are nearly always complicated enough to cause trouble.
An excellent case in point is the familiar vacation robot. We've all seen or used these programs, which automatically respond to a user's email while he is on vacation or otherwise out of email contact. (The notion of being "out of email contact" seems increasingly anachronistic in our mobile age, but some people will prefer to be disconnected on vacation for a long time to come.) It's an apparently simple matter for a robot to respond to new email with a user-defined text, often humorous and playful:
"You are receiving this automatic notification because I am out of the office. If I was in, chances are you wouldn't have received anything at all." (*)
But like so much about email, the apparent simplicity is deceptive, as anyone who lived through the early days of email vacation messages will remember. A very simple robot would send a response to a sender every time he sent mail to the vacationer, long after the sender knew about the vacation and was expecting the messages to simply pile up for the recipient's return. Annoyingly, he might receive dozens and dozens of the same vacation message on behalf of the same user:
"I will be unable to delete all the unread, worthless emails you send me until I return from holiday on 4 Dec. Please be patient and your mail will be deleted in the order it was received."
These things tend to be less funny after the hundredth reading. Worse still, a sender can't always avoid that annoyance simply by refraining from sending mail to the vacationer; if that person is on a mailing list, every unavoidable message to the list could produce the same maddening response. Worse still, some mailing lists modify messages so that they appear to come from the list itself rather than the original sender. In such cases, vacation responses would be sent to everyone on the list. In the worst case, each message to the list could produce an obnoxious message to everyone on the list:
"Thank you for your message, which has been added to a queuing system. You are currently in 352nd place, and can expect to receive a reply in approximately 19 weeks."
Worst of all, in the history of stupid email robots, is the dreaded vacation loop. Two people go on vacation, and one of them sends out one last message to the other before leaving. Soon vacation messages are volleying back and forth as fast as the infrastructure will allow. One of them will return to a mailbox full of perhaps thousands of identical messages:
"I've run away to join a different circus."
while the other's mailbox will be full of a different message, repeated an equally absurd number of times:
"I will be out of the office for the next two weeks for medical reasons. When I return, please refer to me as Margaret instead of Steve."
However, long before either of them returns to work, a system administrator will have gotten involved to put a stop to the mail loop, most likely because it had filled up some system disks and brought a large bit of infrastructure to its knees. All of these things really happened, more than a few times. So nowadays every vacation package tends to come with a small database management system to keep track of senders it has already replied to, along with fairly complex logic for identifying bulk email to avoid replying to it. These systems are useful and efficient, but rather more complicated than they look. Personally, I think simple vacations are the best. I like to lie on the beach with a good book and a cool drink. But the bot that's telling my correspondents about my vacation better not be too simple, or there will be a mess when I return. I want it to be complex enough to tell you, exactly once, that
"My other vacation message is funnier."