Should people adapt to computers?

There seems to be an interesting argument going lately. The topic that spurs this discussions is: “Should we expect people to adapt to complex user interfaces, or rather adapt user interfaces so that they are easy for people to use?”

Scott at LazyCoder.com thinks that we as developers should always strive to make software as easy and intuitive as possible. He seems to completely reject the opposing view that certain level of complexity can’t be avoided. While I agree with Scott’s sentiment, I think that this issue is more complex than that. You can’t make something easy to use without trading off power and flexibility.

Let me define this problem more formally. When designing software there are many variables that you have to deal with, but let’s look at just two. Ease of Use and Power seem to be very closely related. In fact their relationship can be best described by the following graph:

Ease of Use vs. Power

At the point (0:10) – maximum power, minimum ease of use we would have something like a library or service with a public API as it’s sole interface. Is it easy to use? Of course not. You need to read the API specification documents, you need to figure out how to use it to do what you want it to do. But it is extremely flexible – it can be used in hundred’s of projects, in conjunction hundreds of other libraries and applications. It is entirely up to you on what do you use it for, and how do you combine different API calls to achieve new and unexpected effects.

On the other hand point (10:0) represents the opposite end of the spectrum: extreme ease of use, and almost no power or flexibility. What would be a good example here? The embedded software that runs the GPS unit in your car, or the ATM at your bank. It is extremely easy to use – you communicate with it by pushing big, self explanatory buttons on the screen. But what can you do with it? Not much… Or rather, precisely what it’s designer envisioned it to be used for.

I said it before, and I’ll say it again – GUI design kills flexibility. GUI applications do only what their designers wanted them to do, and nothing more. As you add flexibility and power to your GUI application, the complexity increases – and you end up with applications like Photoshop – which require certain level of skill, and practice to use.

It’s interesting that Scott decided to ask about this:

Is that really the point? Whatever the developer decides is what’s right? People should adapt to the computer, no matter how poorly designed, rather than adapting the computers to people?

The ironic part is that the attempts to make the software easy to use, are exactly that – decisions made by the developers on what is right for the user. These decisions might be made based on usability studies, focus groups and etc. But who is to say that what is right for your Grandmother is also right for you?

If you aim to maximize the ease of use you end up with a dumb application that appeals to the lowest common denominator, but it is to limited for a power user. When you make a general purpose application it is best to aim for the middle of the graph – you want to be somewhere around (5:5) where you get decent usability, and decent functionality and complexity.

Still, we really need the whole spectrum. Some applications will have to be notoriously hard to use because of their complexity. And some applications will have to be overly simplistic, because of their nature and function. If you cover half my graph with your hand and say “this side is bad, always try to end up in the opposite one” you essentially exclude whole domains of potential niche problems that you might have wanted to solve.

Not everyone wants a point and click interface – and it is not always appropriate. Case in point, my recent post about netcat.

[tags]ease of use, power, usability, flexibility, functionality, lazycoder[/tags]

This entry was posted in programming and tagged . Bookmark the permalink.



10 Responses to Should people adapt to computers?

  1. Rob UNITED KINGDOM Netscape Navigator Mac OS says:

    In a word: bullshit. This is exactly the claptrap that bad engineers keep spewing as an excuse for producing terrible interfaces.

    The vast vast majority of interfaces are bad just because they are bad. A bad interface doesn’t make a program more flexible or more powerful. It just makes it worse. If you’ve got a command line program that takes an option “-q” for “verbose output” and “-v” for “terse output”, that’s not some compromise between competing constraints—it’s just bad design.

    Are there cases where flexibility and power directly conflict with interface usability? That’s not a rhetorical question—I’d honestly like some examples. I can think of lots of cases where different users would rate interfaces differently in terms of usability, but this is *not* an example of the balance to which you intitially refer. I expect there is often an inverse correlation between interfaces targetted at casual users and flexibility/power not because these are balanced against each other, but because of an obvious third factor: a product aimed at a casual user should have an interface appropriate for such use, and the target market probably doesn’t place too much value in flexibility and/or “power” (whatever that term means).

    Reply  |  Quote
  2. Ricardo INDIA Mozilla Firefox Windows says:

    I agree with Rob here. I think that UI design has nothing (or has little) to do with Power and Flexibility.

    If you want an easy UI with power and flexibility, you can just design it in such a way that it will address such issues. I think many of Microsoft products do a great job in that regard. If you think of Word, for instance, it’s pretty straight forward to use it. If you want, you can just start writing…

    But if you need more power, you have it. You can customize almost everything about Word and even develop small applications in it using VBA. The dumb users in most cases, won’t even know that VBA exists…

    The social aspect of an UI is crucial as well. For instance, Luke, I don’t think your graph can be plotted because a 10:0, 5:5 or 0:10 values might differ in different communities. As you said with another example, a 5:5 UI for you may be a 10:0 UI for me because I may have different values, experiences, and expectations regarding a particular piece software and its UI.

    Answering the question from the title, though, I think that it is necessary for people to adapt to computers. They already did (or are doing) because they need a set of knowledge to understand at least basic functions of, say, an operating system and its standards.

    So, I guess the question we should ask is: should people adapt to new and unknown set of standards and functions of my software? And by people, I mean the targeted people of my software.

    Reply  |  Quote
  3. Luke UNITED STATES Mozilla Firefox Ubuntu Linux says:

    [quote comment=”5586″]A bad interface doesn’t make a program more flexible or more powerful. It just makes it worse. If you’ve got a command line program that takes an option “-q” for “verbose output” and “-v” for “terse output”, that’s not some compromise between competing constraints—it’s just bad design.[/quote]

    Good point. Can’t argue with that. This was not necessarily what I meant though. I didn’t say powerful applications must have poorly designed interfaces – I said their interfaces will be more complex, and therefore harder to learn and get used to due to the nature of the application itself.

    [quote comment=”5586″]Are there cases where flexibility and power directly conflict with interface usability? That’s not a rhetorical question—I’d honestly like some examples. I can think of lots of cases where different users would rate interfaces differently in terms of usability, but this is *not* an example of the balance to which you intitially refer.[/quote]

    I guess when I say “easy to use” I pretty much mean “even a caveman could do it”. In other words, have as little options and buttons, and never, ever make the user think. Everyone should instantly grasp what each button is doing, without experimenting or looking it up.

    Every feature and every button makes it more difficult to grok the application. For example, compare MS Paint and Photoshop. Both have interfaces that were well designed. But Paint is just easier to use.

    Now take Paint.NET – a logical extension of MS Paint to include stuff like Layers, filters, masks and etc. It is already harder to use – the interface haven’t changed that much, but since there are more features, and the layers change the core functionality you must get used to it.

    As you add features, you end up with PhotoShop. It’s interface is not bad – it wouldn’t be so popular if it was. But when I first used it, it took me about 5 minutes to figure out how to draw a simple line. :P

    What you are talking about is the quality of the interface which includes things like consistency, good toolbar and menu layout, putting most frequently used features in easily accessible places, giving user adequate feedback and etc.

    So, is Photoshop or FlashMX easy to use for a complete novice? No, they are not. Their complexity impacts their ease of use. There is a learning curve involved. But they do have solid and institutive interfaces that do become easy to use over time.

    [quote comment=”5587″]The social aspect of an UI is crucial as well. For instance, Luke, I don’t think your graph can be plotted because a 10:0, 5:5 or 0:10 values might differ in different communities. As you said with another example, a 5:5 UI for you may be a 10:0 UI for me because I may have different values, experiences, and expectations regarding a particular piece software and its UI.[/quote]

    But, wouldn’t you say that there is some lowest common denominator of usability? Something so simple even ones grandmother who never touched computer before could figure out in a matter of minutes? That’s my 10:0 interface.

    Reply  |  Quote
  4. Ricardo INDIA Mozilla Firefox Windows says:

    Luke said:

    So, is Photoshop or FlashMX easy to use for a complete novice? No, they are not. Their complexity impacts their ease of use. There is a learning curve involved. But they do have solid and institutive interfaces that do become easy to use over time.

    They aren’t hard because of the UI but because of the complexity of their functions. The same applies for a programming language environment. It’s not that the UI is difficult but the language itself and all that is inherent to it is for a newbie. If you think of an ATM, that would be pretty hard someone who lived in a society where there is no money or banks. The UI of them is easy for us because we already know the possible operations and we know what to expect.

    I don’t think there is a common lowest denominator. Ones grandmother who never saw a computer probably wouldn’t know how to turn on a computer. At least I got some people like that when I was teaching Windows and Office to them many years ago.

    Again, if you think of Word (and most good word processors), it’s really easy to use for someone with at least type writing experience. And if you want, you can learn the more complex features as you go.

    Reply  |  Quote
  5. Ricardo INDIA Mozilla Firefox Windows says:

    Another example: if you know how to use Photoshop, you can pretty much use many of the other editors out there because they share many common functions.

    Once you know what an photo editor can do, you pretty much can figure out its interface if it is an easy and well designed one.

    Reply  |  Quote
  6. Luke UNITED STATES Mozilla Firefox Ubuntu Linux says:

    Yes, but by learning what a photo editor can do you in a sense “adapt to the computer”. The designers created certain interface that is not immediately intuitive, and you must learn it to use it.

    The original point I got from Scott’s article is that we should make all applications intuitive and easy to grasp. The you should be able to look at the UI and it would be immediately apparent what it does.

    Also, I do not agree that Word is easy to use. It is easy to type a simple essay with it, but if you are trying to do anything beyond that, things get very complex very fast. Troubleshooting Word and Excel problems is pretty much 90% of what our helpdesk does these days.

    But yeah, all I’m saying is that some applications will have to have big, complex interfaces, and some can be kept simple.

    Anyway, good discussion. :)

    Reply  |  Quote
  7. Rob UNITED KINGDOM Safari Mac OS says:

    I’m quite skeptical of the equivalence between “good interface” and “no learning”. Go back and look a the documentation that came with the first Mac, and try to remember the mistakes people made. Using a mouse to move the pointer is a skill. Double-clicking to open things is an idiom. Scroll bars and overlapping windows are non-obvious interface elements.

    What made the Mac so great was not that you didn’t need to learn anything—to write a text document you really had to learn a *lot* more than the old text-based machines, where “push the ‘on’ button; type this command; type your document” were enough. It was great because you learned things that are naturally easy for people to learn and remember, and that you got great leverage from the limited skills you acquired. The reason that consistency is such a huge issue in interface design is because it multiplies the power of learning and minimizes the number of different things that need to be remembered. The Mac took the philosophy that it was all right to have a little more to learn to use the computer as a whole if it meant that the incremental learning needed to use a new application was less.

    But the real issue with the “easy=better” assumption is displayed by your Photoshop example. Does Photoshop have a bad interface? For someone who just wants to rotate their photos from portrait to landscape, yes. All the pallettes and toolbars are nothing but noise if that’s all you want to do–something like iPhoto has a much better designed interface. But if you’re going to spend hours tweaking photos then Photoshop has an incredibly good interface: the system has been optimized to make your workflow as efficient as possible, avoiding even a single wasted mouse click. Keyboard shortcuts allow you to change tools (permanently and temporarily), palletes don’t grab focus and float where appropriate, there is a graphical representation of layer information and change history…the list goes on. Different users have different priorities.

    And yet both iPhoto and Photoshop *could* have been given terrible interfaces. The fact that they were optimized for different tasks does not in any way diminish the fact that they were both heavily optimized at huge expense. Adobe throwing up their hands and saying “using Photoshop is painful—and that’s just how things are” is exactly the kind of attitude that gets software companies driven out of business. (Think every smart-phone manufacturer pre-iPhone.)

    Reply  |  Quote
  8. Luke UNITED STATES Mozilla Firefox Ubuntu Linux says:

    And that’s exactly my point – having to learn a new interface is not a bad thing. If you want to do hard core photo editing you will need to learn Photoshop. If you just want rotate and crop photos, then there are dozen simpler programs out there.

    I guess I probably oversimplified the stuff with that graph, and that whole rant. I pretty much agree with everything you said in this comment. :)

    Easy != Better – that’s exactly the point.

    Reply  |  Quote
  9. vacri AUSTRALIA Mozilla Firefox Windows says:

    Are there cases where flexibility and power directly conflict with interface usability?

    Yep – there’s a lot of commandline tools out there that are much more powerful and flexible because you can make them interact with other commandline tools. Turn them into a gui, and it’s easier to use, but you no longer have the flexibility you had at the commandline.

    Does Photoshop have a bad interface? For someone who just wants to rotate their photos from portrait to landscape, yes.

    Then they’re using the wrong tool. You can use Word to rotate your photos, and it’s the wrong tool as well. Claiming something has a bad interface because someone is using it incorrectly is a bit of a reach. If I were to use Excel to store recipes, it’d be possible, but terrible. But I really can’t complain about that because it’s not what Excel is designed for. An interface should be judged on what it was designed to do, not what individuals use it for.

    That being said, you go on in the rest of that paragraphs explaining how Photoshop has been made easier for the person using it as intended. So it is a case of easier=better after all.

    I think the issue is a bit of a nonevent in the case of massive software with giant dev teams, since such well funded software should satisfy both ease and function as much as possible. But if your resources are limited, then often you will have to make a choice – and then it becomes a real issue.

    Reply  |  Quote
  10. Matt` UNITED KINGDOM Mozilla Firefox Windows Terminalist says:

    This is kind of on a tangent, but one thing that bugs me about the image-edittors with more features (and more complex UIs) is that there never seems to be an option to grab a corner of the canvas, a selection, a layer or whatever and drag it in order to resize, rotate, skew etc.

    Haven’t seen photoshop (lack of monies, and lack of bothering to find the “free version” on a torrent tracker) but in Paint Shop Pro and Gimp, as far as I know, it always seems to go via menus or buttons then entering a number into a box.

    That said I don’t spend much time buggering about with pictures so if what I’m describing exists then I could easily have missed it..

    If anyone is thinking “Gimp can do that, feel free to correct me (but I don’t have PSP any more) otherwise maybe I’ll just stick to Paint for the times I just want to add or remove a bit from the edge of a picture to make it fit the dimensions for a desktop background :wink:

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>