02 May 2009

People are not idiots

So, I've been doing a bit of user interface design lately, and I've been thinking a lot about what makes a good user interface.

What I've realized is that my design philosophy has evolved over the years. I used to believe that every system needed an "expert mode" and an "idiot mode" to accommodate the needs of power users (I want complete control!) and casual users (I just want it to work!).

I think that over time I have been pressured in the direction of "idiot mode". It's as if "usability" only means "usability by unthinking beginners". I will stand for this no longer. My new philosophy, I have realized, is "people are not idiots".

I believe people will rise to the expectations you set for them. This is not an excuse for hard-to-use interfaces, and it is not a justification for overwhelming users with too much information. I am merely asserting that the elements which are good for "expert mode" and "idiot mode" tend to be similar, and that I firmly believe it is reasonable for a beginner to be expected to make some effort to learn how to use a (well-designed) system.

Configurability

What I learned first, I think sometime after my college years of hacking my dotfiles and customizing my linux box beyond all recognition, was that infinite customizability is really not necessary. Sure, it's fun to some degree, especially for bored teenagers desperate for a place to express themselves, but really, excessive configurability is generally not useful.

The place where this always comes up is when I find myself helping a friend with some computer problem, and I have to figure out how to use their customized system. Standardization makes it easier to help people and to communicate about the system. Which is necessary because computers are NOT EASY TO USE.

Granted, having a few different modes is useful and necessary, but just a FEW. The perspectives in Eclipse, for example, are great. I don't really need to be able to customize and adjust every little view window within the perspectives, but the ability to switch perspectives adds real value.

Presets

Something I learned while playing around with VST effects for audio software was this: flexibility provides freedom, but not value. Presets provide real value. Give me 100 degrees of freedom in some effector module, and after weeks of study and experimentation I might be able to come up with something nice. Give me 5 presets, and I can make something sound good from the beginning, then quickly play around with them and make my own improved versions.

I'm intending to implement a "presets" style interface in some of my software for work. It really puts some structure on variable-tweaking.

Abstraction

Last night I was helping a friend with Windows over the phone. The conversation went something like this:

Me: "Ok, now change the file extension"
Friend: "I don't see the file extension"

Me: *sigh* ... "ok, open windows explorer"
Friend: "What's that?"

Me: "Open a window so you can see folders and files"
Friend: "Ok."

Me: "Open the Tools menu"
Friend: "I have Vista."

Me: *searches the internet for explanations of how to do it in Vista*
Me: "Ok, do blah blah blah"
Friend: "I only have a blah blah menu"

Me: *searches for a more recent screenshot, makes some guesses as to what the menu might be called in Japanese*

Friend: "Hmm... Can I just rename the file?"
Me: "Probably not, but try it..."

Friend: "Ok, I renamed it. It still doesn't open"

Me: "Ok, never mind then. Go to blah blah menu and uncheck 'hide ...', um... "

Me: *struggles to try to remember how to say "file extension" in Japanese*

Me: "Hide, um... I think it has the kanji for 'child' in it. Hide that for known files'"

Friend: "Hide it?"
Me: "No, uncheck 'hide it'..."

Friend: "So, wait, not hide it? Um, actually there are a whole bunch of options here. Which kanji was that?" ...

... several more minutes of confusion ...

Friend: *finally stumbles upon the right option*
Friend: "Oh, ok, looks like it worked. I can rename the file now. Now everything works!"

COME ON MICROSOFT!!!

In a discussion with a coworker today, we both agreed that the first thing we do when troubleshooting somebody's PC is turn OFF "Hide file extensions". File extensions are fundamental to the functionality of Windows, and they are not something you can ignore! On top of that, just trusting an icon is a security risk...

But really, a description of the type of file should be a completely independent field from the name of the file. In a good design, there would be no extension at all in the filename. Sure, I understand that for backwards compatibility, Windows can't redesign that at this point... But the solution is not to HIDE the extension from users! PEOPLE ARE NOT IDIOTS. Show them how it works. Then they can use it on their own, and I can go to sleep.

"Help"

The last thing I have been frustrated with lately is "help". Seriously, people, who uses this? I have NEVER ONCE found any of these help features useful, and I know nobody who has.

Au contraire, it is so frustrating when I'm rushing to complete something for a deadline, or to catch my last bus, and I accidentally click on Microsoft "Help and Support" or MS Office help, or Dell's built-in "In case you didn't have enough help already - oh and just to screw with you let's put this icon where the Run icon usually is" Help.

Usually there's a split-second of dread as I realize what I just did, and as my hard drive starts grinding away and my CPU is instantly pinned to 100%, my PC unresponsive to my desparate clicks - Cancel! Cancel! Cancel!!!!!

It seems that every help system I have ever encountered finds the need to swamp my computer, indexing volumes and volumes of information on startup, or launching a web browser to download some useless web page (and probably send out a bunch of my personal information in the process).

Ok, so "help" is theoretically a good thing. Here are my recommendations:

  • Make it useful

  • Make it require multiple clicks to come up (but make it obvious how to access it!)

  • Make the opening screen LIGHTWEIGHT, and quickly cancelable, so that accidentally opening it doesn't cost me a $40 taxi ride


In Conclusion

So, this may come off as a rant against Microsoft, but that's just because I use Windows every day. And really, I've grilled Apple enough about how much iTunes sucks (oh, did I mention? It keeps trying to install a Japanese update over my English iTunes!!! Needless to say, I just stopped installing their updates at that point. Like I need any more of their bloat anyway! iTunes 4.6 was fine.)

And Linux? Usability...? :P

But what I'm saying is that we should stop trying to idiot-proof user interfaces to such an extreme degree. Give people warnings when they're going to do something bad* and then let them do it if they want. Systems today are imperfect, and sometimes the user needs to do things that weren't anticipated by the designer. It's overly pretentious to take the stand that the designer is omniscient and that the user is an ignorant fool.

*bad: adj. - having actual negative consequences, as opposed to, say, moving your thumbs.db file !!!!!!!

5 comments:

Anonymous said...

thanks for helping me dylan! by friend:)

Kern said...

The default hiding of file extensions has long been one of my great peeves with Windows. It's among the first things I change when I start using a computer.

You're absolutely right; if the the file type (and thus the application associated with it) is going to be encoded solely in the extension, it is FUNDAMENTAL to the way Windows works, and to understanding what your files ARE; it should not be hidden by default, or at the VERY least, should not be hidden so obscurely.

Dylan said...

Haha Kern,
Somehow I expected you to chime in on that one. :)

Philo said...
This comment has been removed by the author.
Philo said...

I couldn't agree more with your post.