Friday, 9 January 2009

There are two kinds of people...

In my experience, it seems that people approach computers in one of two ways. This is a generalisation of course, it's probably more like a sliding scale.  The two extremes of that scale are as follows:
  • there are those whose approach to computers matches the Microsoft Paradigm. They understand intuitively where things are on a computer, how to find things, how multiple-windowing works, how menus are organised, and have no problem that there are actually eight different ways of achieving the same goal. 
  • And there are those who don't "get it". They need to learn how to open Excel. They follow set ways of getting at the things they need. They write down the instructions for copying pictures off the camera ... they write down the instructions for playing a DVD through the Set-top box on the telly. If anything goes wrong they request help.
Most of the former (who are probably the main audience of blogs like this) will laugh at the latter. After all, Microsoft did thousands of hours of user testing to make sure their interface was as intuitive as possible. But I wonder if their user testing was restricted to the population of Redmond, who by-and-large fall into the first category.  Most of the former will also believe (mistakenly) that the latter just need to spend more time with their computer to understand it better. After all, this is how software is designed, written and shipped. 

Sorry, Group 1, you're wrong. The second category is actually the majority. People don't like computers. People find computers ARE hard to use. Even among software developers, I've come across people in Group 2. They might be fantastic at maths and at C++, and understand pointers at a level you only dream of. But they can't use a mouse, and they have a little Post-It note attached to the monitor that tells them how to start VC++.  Or they're a guru at their particular language, but struggle with the concept of migrating to a new language because it's not what they've spent the last 20 years learning.

It's time for the computer industry to radically rethink how software is written.  It's time for the Open Source Community to rewrite the whole concept of the Graphical User Interface: first of all to meet Engelbart's goals (see theRegister) and second to make computers actually easy to use. The vast majority of the population would thank you if we made computers easy to use - by which I mean there's one simple way of opening your word-processor, by which I mean that pictures automatically copy to your photo album when you plug the camera in, by which I mean that you can recall an email message up to five minutes after you've sent it (because the system hasn't actually sent it !)

There's a long way to go. But we're getting there. Simple things like entering a date. On every travel site I've ever been on (for a train, a plane or a hotel) you have to enter the date in the format that the system expects. Sorry, but that's just plain laziness. Have a play with RememberTheMilk: you can type in a date in almost any form : "Next Tuesday", "20-jan.2009", "October" (even some mis-spellings like "friiday" will work). It's not perfect: it doesn't recognise "middle of March" or "my birthday", but that'll come. And if you get it wrong, you don't get an error message ! I am actually amazed at the friendliness of this bit of code - which speaks volumes about the unfriendliness of the rest of them.

The great thing about people in the second group is that they tend to be good at interacting with other people. Therefore this group can teach those of us in the first group how to do computer interation. I fear that over the last ten years we've had the wrong crowd leading the development of the computer interface. It's time to change.

1 comment:

  1. My Pet Peeve is software which says

    You have 1 message(s)

    Hey! the software knows it's one, so should be able to work out that you don't need the "s".

    I'll even give you the algorithm for those programmers
    who are too lazy to work it out.

    "You have " + $num + "message" + ($num==1?"":"s");