My look into the new washingtonpost.com design last week got me thinking about casual readers of the news (browsers) versus the news junkie (scanners) and it got me thinking about how one can present something that is usable for both classes of users, novice and expert, as they are sometimes referred to in the usability books. An emerging issue in system design with respect to human factors is making things easy to use, but yet powerful enough to leverage advanced things, which inherently provide some level of complexity.
I’ll take Canon cameras to start, since they advertise themselves with the tagline “so sophisticated, it’s simple.” Most people who take casual photos want a camera where they can turn the power on, point the camera at the subject, check the viewfinder, and click to take the pictures. Behind that level of simplicity is a light meter and a (small) computer that sets the aperture, ISO (sensor sensitivity to light), shutter speed — a whole slew of parameters. The camera makes decisions based on an algorithm embedded in the camera’s computer chip.
However, as casual photographers become amateur/advanced photographers, they want more control. They want to start setting some of the more advanced features manually: set the shutter to stay open longer to take a picture of the stars, set the aperture to sharpen the foreground and blur the background, turn off the flash in a museum, etc. These aren’t simple concepts relative to a beginner and the camera. In the case of the photographer going to set things manually, he or she in effect is taking the decision-making control away from the camera algorithms and putting it into their own minds and hands.
The issue comes in when we design systems that need to work for both novices and experts — and we can see that daily on our desktop/laptop computers too. Windows for instance, needs to be simple enough for newbies to use, but needs to provide enough control for the power users and us software engineers to use. I can’t tell you how many times I wished I could write a Unix-like script in windows to do some big file processing job, or how many times in Unix I wish there were a GUI to set this or that configuration.
I’m not sure if the approach is to design separate things for different user classes (novice versus expert), but I think sometimes we have to have systems that satisfy both user groups — otherwise it would be inconvenient/infeasible Some of the systems that I feel have bridged that gap well are:
- Mac OS X. GUIs are great for novices, but the BSD Unix back-end is great for experts
- Microsoft Excel. For some reason, programming doesn’t come easy to most people, but people can produce Excel spreadsheets that do some pretty amazing things
- The Web. Most people can learn how to make a web page quickly, but there’s enough power there to produce commercial/professional websites using the same tools.
I’m sure there are other examples, but these systems that can balance novice and expert needs seem to be notably successful (unsubstantiated claim on my part, but still an observation).
The design principle I follow as a result is to not shield/simplify information
for the user, but rather to present the user with the maximum amount of information (for the experts) but organize it well so it doesn’t confuse (for the novices). Yet another principle that is easy to state, but hard to execute — precisely why design is still very much an art.
Science is what we understand well enough to explain to a computer. Art is everything else we do. –Don Knuth
Comments
Actually even for someone as novice as myself, Excel cannot handle data the way I need it to – it is by far and away my most hated program.