If it doesn’t just work, then it doesn’t work.


I’m passionate about usability, even to the point that my co-workers accuse me of whining.  I can’t really help it.  I have to applaud products and features that streamline a task, are intuitive, and fit well into the workflow.  And when a feature unnecessarily complicates the task, I have to call it out.  Poor usability goes against what computing is supposed to be about.  Way back in the early days of computing, BillG sold a dream to the world’s people.  That this newfangled invention called a ‘computer’ was supposed to make everybody’s lives easier.  It was supposed to boost productivity, make routine tasks effortless, and make complicated tasks easier (or possible).  We’ve come a long way since then, and I’m happy to report that computers have, for the most part, done that.  But as you already know if you work with a computer regularly, there is a lot more work that could be done.

There’s a funny thing about most computer users that we software folks don’t usually get.  Most people don’t get excited about technology for technology sake.  My dad doesn’t want to know that his data is on the C: drive, but his backups go to the D: drive.  My aunt doesn’t need to understand what it means to defrag a hard disk, or think about how big a buffer she need when burning a CD, and my mom doesn’t want to have to care whether she has the right media codecs installed.  As far as the average computer user is concerned, a computers should just work.  Any time they have to think about how it works, it’s not working properly. 

Making computers just work is one of the design goals behind Vista.  I won’t say we’ve succeeded, but there are some pretty good examples, such as wireless networking.  Want to connect?  Click on the network icon and it’ll show you a list of networks in range.  Click the network you want to connect (and enter a security key if you haven’t connected to this secured network before), and Vista does the rest.  A few seconds later, you’re surfing the ‘net.

Closer to home (for me), we’ve completely changed the way that you interact with audio devices in Windows.  In XP, you could open the control panel and set your sounds to your “Creative 123 audio chipset” or direct an application to record from your “SoundMax XYZ 987 codec”.  But most folks don’t understand what a ‘codec’ is, or think about their ‘audio chipset’.  Most folks don’t want to understand.  When I look at my ‘computer’ on the floor next to my desk, I don’t see an audio chipset.  I see a small 3.5mm hole labeled ‘Speaker’ or ‘Line out’, and so that’s how Vista presents them.  Instead of picking from a list of internal audio devices, you just say you want your music to go to the front panel headphone jack, and Windows does the rest.

In the future, you’ll probably read more about usability here, good and bad.  Building good human interaction into a program is a Hard problem, and lots of smart people are working on it.  It’s a problem space that I’m personally very interested in because, though I’m a programmer of some software, I’m a user of far more.  And if it’s difficult for me, I can only guess how it’s going to be for my mom and dad.

Comments (3)

  1. tzagotta says:

    But I think you are not mentioning the most interesting part – which is that not all users, or even use cases, are at the same technical level. I completely understand your ‘dad’ and ‘aunt’ stories, since I maintain computers for my relatives who want to be at the same level of abstraction as you describe – they want it to just work.

    But the problem is that the common approach for "solving" the usability problem is that the interfaces get "dumbed down," to where the salient technical information and settings get lost or buried. This then becomes the opposite usability problem for technical folks and those trying to solve configuration problems or fix bugs.

    In your piece, you mentioned wireless network settings, and I ran into a problem with Vista configuring the wireless network. I can’t remember every detail, but the overall experience was, OK, I plugged it in, entered my password/key, and it is not working. Now where I can find the status and the more "advanced" settings I had in XP? I was not able to find any helpful information or settings in the GUI to help me solve the problem. I did the "dumb" thing of removing the card and re-trying it a couple of times, and it finally worked. I’m not exactly happy with that experience, since I don’t know the root cause of the original problem, and I figure it will probably happen again some time.

    I would therefore encourage more and more "dual GUI" interfaces – basic and advanced – I think this is the best solution. Please, please don’t remove settings or information entirely because many users won’t understand it, because you will make it harder for those of us that do.

  2. Ryan Bemrose says:

    And in my next usability post…  Why removing user choice doesn’t improve usability either.

    You’ve nailed the other side of my position on usability.  Make the common scenarios easy, automatic, and foolproof.  Then, make the uncommon scenarios possible.

  3. Easy things should be easy, and hard things should be possible.

    — Larry Wall; second slogan for designing Perl (after "There’s More Than One Way To Do It")