Learning by Teaching - Helping new computer users
Over the last few months I've spent much more time helping family and friends to get to grips with their computers. For them, I hope, I've been able to guide them around some of the pitfalls of the computer world, and helped them to get more from their silicon. But in return, unwittingly, they have provided me with equally significant assistance.
I've been using computers since I was 9 years old. Starting using computers so young has had a profound impact on the way I understand and use computers. It has affected the way I talk, think, and work. As I try to understand why people find computers difficult to use this is a significant handicap, but one for which I have found an easy remedy. Help others.
I've come across many examples of what to us in the industry are trivial problems. Here's just a few I've met recently:
|How do you scan something from Photoshop?||From the File menu select "Import..."
Then in the submenu select "Twain_32"
|What on earth does Twain mean, and how is any user other that a technical expert meant to know that that is the correct choice? Most people only have one scanner, what's wrong with a "Scan" option?|
|Where do my files end up when I save them?||It depends where you specified in the Save dialog box.||This requires an understanding of the hierarchial filesystem. This is poorly understood by most people, and not even appropriate anyway.|
|What does default mean?||The standard choice. If you don't specify something else then the systems defaults to a setting chosen by the engineers who built it.||Quite different to the common meaning of the word default (eg to default on a loan). Another word should be used.|
The people who asked these question were educated intelligent people, who are relatively new to computers, but not complete novices. It's not that they are stupid, it's simply that software exposes the internal workings and industry jargon to such an extent that it completely confuses many people. This is absurd.
Examples like this appear whenever I help people use computers. They reinforce the fact that to most people these machines, which I navigate as my natural environment, are a foreign and frightening place. How many software engineers try to explain their work to their family? How many parents of software engineers say "Oh, we don't have a clue what our son does (for they are almost all male), it's something with computers". If those very engineers would try to explain what they do to their parents, they would rapidly learn that they need to spend more time in the real world. I know this from experience. A few years ago I worked as a software research engineer for British Telecom working on internet technologies. When I visited family I simply couldn't explain, in understandable terms, what I did. To explain any part of what I was working on would have required days of explanation. I have a T-shirt from the internet engineering task force, which has an in-joke on the front. It took me 45 minutes to explain the joke to my brother (he didn't find it especially funny). The more I had experiences of this kind the more I came to one realisation. The problem with computers is not that we can't get them to do all sorts of wonderful things, it's that nobody but the geeks can use or understand the stupid things.
The real answer to this problem is design. We need to design our software properly, so that it works the way people work. But that's not all. In the airline industry safety is not just the concern of a single group of safety experts, it's the collective responsibility of everyone from the agents who check in your baggage to the guys who maintain the planes. So it is with software. Usability is not just the concern of the interaction designers, it's the job of every person involved in building software from management to the system coders writing device drivers. Everyone needs to understand that we can, as an industry, write 14 billion lines of code a day, but if the software isn't usable we might as well not have bothered.
So how does a developer or a product manager gain the understanding to become sensitised to usability? As I hinted earlier, helping others can be a valuable education. It's very easy as an experienced computer user to forget how incredibly difficult computers can be to use. Developers, because they understand with great depth how computers work, often find it hard to see why others have such problems. But to gain a degree of empathy with users it is important for developers to re-experience those difficulties. Clearly, until we invent the mind-erasing device, this can't be done first hand, so the way to do this is to teach a novice. Really this is a win-win. The novice gets to learn how to use a computer from someone who really knows how they work, and the developer gets to understand what sorts of things users find difficult, and which concepts they struggle with. Many users for example never really grasp the concept of the heirarchial file system, a concept which most developers will probably tell you is trivial. Get them to try to explain it to a few novices though and they will rapidly learn how tricky it can be to understand.
Enlightened software companies might be interested in sponsoring computer literacy classes for their local areas. The public get free tuition, the company gets great publicity, but more importantly their developers get a rich understanding of and empathy for the users. By gaining this empathy developers can come to understand the importance of disciplines like interaction design, and the effort needed to design software that is truly usable. Some might even become interaction designers themselves. But even if they don't, any increase in the understanding software development teams have of the people who will ultimately use their work must be a good thing.
Managers too need to understand that users don't always understand software too well. Although they might not be so well placed to teach, they can at least observe novices. By seeing what sorts of difficulties novices have managers can see clearly the importance of good design. For them it reinforces that investment in good design is money well spent. They might also realise how long it takes most people to get used to the range of functions in software. It takes a long time, which suggests adding more and more all the time is not the right way to go. Quite the reverse, a point I make in another paper.
As an industry I believe we can benefit greatly by learning from those who supposedly know less than we do. Everyone in the industry could benefit from observing, in detail, how people use and understand computers. The empathy engendered might just help us design software with a more realistic understanding of what people want, and what they can understand.