Saturday 29 September 2007

Don't treat me like an idiot.

Software is a funny thing. Most developers think that humans are idiots, and that they can't be trusted with software. So, they shove in a load of dialog boxes in our faces and expect us to learn to have to click a further button in order to accomplish the task in hand.

In Designing the Obvious, Robert Hoekman JR points out that his trash can doesn't ask him whether or not he wants to put something into it. It's obvious, because slinging a ball of screwed up paper twelve feet across the office is a good sign that you want to dispose of it.

I can just imagine such a trash can designed by Microsoft, in that if any tiny scrap of paper so much as even graced the immediate space above the trash can, the can would suspend the rubbish in mid air, waiting for you to press something on a huge remote somewhere on your desk, just so that it could continue.

That's nonsense, you say. Well, try deleting anything on your Windows machine. The 'Are you sure?' message comes up. Well, am I? Yes, I am sure. That is why I clicked 'Delete'. I am not an idiot. Don't treat me like one.

Windows certainly likes to though. Unplug your Internet connection for a second - and you actually get a message telling you that it's unplugged. Well, thank you Captain Obvious. Plug in a new memory stick and it says 'New Hardware Found'. Obviously. Don't dumb me down, and don't treat me like an idiot.

It's surprisingly worse on the Internet. It's really nice to use such applications like Blogger and Gmail, because they scrap meaningless, modal dialog boxes. This post is being auto saved in case I am stupid enough to close the browser window, and the blog itself was easy to set up.

However, you do get applications that force a load of alert messages onto you because they have no way of preventing deletion otherwise. How about, actually, not deleting the item in the first place, so that I can undo deletion? Come on, this has been in desktop applications since the Stone Age.

This excerpt from ALA is a good example of what not to do in a web application:
In the game Guild Wars, for example, deleting a character requires first
clicking a “delete” button and then typing the name of the character as confirmation. Unfortunately, it doesn’t always work. In particular:


  1. It causes us to concentrate on the unhabitual-task at hand and not on whether we want to be throwing away our work. Thus, the impossible-to-ignore warning is little better than a normal warning: We end up losing our work either way. This (losing our work) is the worst software sin possible.


  2. It is remarkably annoying, and because it always requires our attention, it
    necessarily distracts us from our work (which is the second worst software
    sin).


  3. It is always slower and more work-intensive than a standard warning. Thus, it commits the third worst sin—requiring more work from us than is necessary.

Aza Raskin

Software should have forgiveness built into it. I should be able to undo any action, so that I don't lose my work. I don't want software to get in the way of what I'm doing, and I especially don't want to get frustrated because the site's designer decided that I needed 15 minutes to complete the task, instead of 5.

It's not OK for our users to be mindlessly clicking on OK buttons. We need them to feel empowered, not annoyed. I need to know that I can trust the web with my flaws - and if I make errors, I need to know that I can undo them. And I will only be able to do this once modal dialog boxes are extinguished, and deletion is easily recoverable.

Software that doesn't annoy me is software that is quick. It won't complain when I've just deleted 70 items instead of 7. It will make me feel more productive. Surely this is not hard to accomplish. We should be making applications that halve the time it takes to do a task, not triple it.

No comments: