Book of the Civilized Software

Dec 11, 2008 18:28

I swear, I will do another post about programming in Prolog. I was on vacation, and I fell off the map a bit myself with work being crazy. Now it's not crazy, but I'm still getting back in the groove from vacation.

On the topic of software design and programming, I want to elaborate on this idea I had: We need an Emily Post of software. It's not good enough that software be well designed, in must also be polite.
What is "polite" when it comes to software? Well, what is polite when it comes to people?

Many of the same things we expect from civil people we should expect from our software. Polite people don't nag you. They don't interrupt you. They don't waste your time. They don't bore you with details, and they especially don't bore you with intimate personal details*. They clean up after themselves. You can trust them not to blab your secrets, or let them slip through carelessness. In general, you can expect a polite person to be careful and considerate of those around them.

Using a computer, we're exposed to all sorts of rudeness, and not just from message board trolls. Alert boxes that interrupt our task. Applications that cough up complex gobbledygook only useful to the developer when an error occurs (talk about TMI) or provide nothing more than a cryptic, "An error occurred" message. Applications that make you click through six screens to do a simple task, or remember complex command or dig through complex menus to do simple tasks.

There are all sorts of rules and guidelines about how and why you should design a UI and application behavior. There's a strong (and positive) trend towards less is more thinking, even though it's much harder to do. And that's a factor of being polite to the user. No, not just polite, considerate.

It goes back to the Emily Post "Ms. Manners". The UI guidelines that people use are the rules of etiquette. It's the instruction manual that tells you to put the fork on the left and your napkin on your lap. It tells you the steps to be polite, but the steps aren't what matters. What matters is being a considerate person, or in this case, writing considerate software.

No discussion on this topic would be complete without a list of impolite vices that we see in software.
The Nag never trusts that you know what you're doing. "Are you sure?" "Before I do that, can I get your password?" "Oh, I don't know- click OK to continue."
The Boor wants to be the center of attention, and will throw up message box after message box, modal dialog after modal dialog, until it has your undivided attention. Like the Nag, this one's going to be disruptive, but for entirely different reasons.
The Elitist is smarter than you are, and knows it. As proof, this menu structure that's "completely transparent to anyone with a brain" is incomprehensible and meaningless to real people. If you can't figure the application out, obviously you're the problem.
The Nerd isn't an Elitist- on purpose. But the Nerd wants to do something obscure and complex for you- and just can't think of a way of explaining it to mere mortals, so you're just going to have to figure it out.
The Exhibitionist wants to make sure that everything you could ever want is in front of your face all the time. They'll crowd their screens with options and information until you start reaching for a magnifying glass to read the captions.
The Shrinking Violet is the exact opposite of the Exhibitionist. In an attempt to be polite, they won't tell you anything, and you have to be gentle and pick through app until you find the options you were actually looking for.
The Jack of All Trades can do it all- whether you want it to or not. Crowded with features, simple tasks become impossible. Hard tasks, however, suddenly become incredibly easy.
The Big Brother isn't malware, exactly. At least, you don't think it is. But behind your back, it's phoning home. It spies on you, and reports your movements for "customer assurance" purposes.
The Inconsiderate Dickhole doesn't care about you, doesn't care about your computer, and doesn't care about what other applications need or do. Maybe it's careless, maybe it's malware. But it doesn't care, and will do whatever the hell it feels like, damn the consequences.
The I Know Better knows what you want to do- even if you didn't tell them to do it. You meant to, really.
The Cooperative Clippy wants to help. A lot. A real lot. Like a kid who really wants to help you paint the bathroom, it's going to beg to help, ask to use the roller "for a little while" until you either give in and give it a chance to splatter paint everywhere, or send it to its room.

So- what other Bastards of Software are there? What apps do you use that you feel could be a good example of one of these kinds of Bastards?
*He says to LJ-land, where TMI is practically part of the URL

bastards of software, programming, software design

Previous post Next post
Up