Can you be too User Friendly?

User Friendly Software

I was reading some slashdot discussions today, and one of the comments got me thinking. At some point someone said something among the lines of:

Back in the day, most computer users could actually program their machines. Now most users can barely figure out how to click an icon without getting lost.

Of course back in the day most drivers were also car mechanics, and most pilots were aviation engineers. They had to be, to properly operate and service their machines. But each technology that enters mainstream, has to gradually become easier to use for an ordinary Joe. This is the natural order of things.

As the time passes, our devices become more convenient and easier to operate, and by extension they become more accessible to dumber and dumber end users. The question is, when do we stop? Is dumbing down the user interface in order to satisfy the lowest common denominator is really the best possible design choice?

Let me put this another way. In the past most of the user-space programs were simple CLI applications. You would accomplish complicated tasks by stringing them together into long command sequences. Users had to remember commands, and know how to combine them and mix them up in innovative ways.

In fact they could easily write their own little scripts simply by listing their commands in a text file. Once you know how to write simple scripts, you can easily make the the leap into programming. After all, a hello world program in Perl is almost exactly the same as in bash and the C version is only a tad more complicated. As it is, a proficient CLI user is only a few steps from being a developer.

GUI user on the other hand is most often a brain-dead mouse clicker. He needs shiny buttons, flashing lights and amusing animations to keep him occupied. And if there are more than 4 buttons on the screen at the same time his brain simply shuts down and refuses to cooperate.

I submit that it is perfectly possible to teach an average Joe to use CLI proficiently in about the same time it would take to train him to use a fairly complex GUI. It is just a matter of memorization and repetition. The learning curve may be a little steeper at the beginning but the overall learning process should should only be marginally longer.

What is the difference? CLI requires the user to understand what he is doing, an combine the effects small command line applications in an intelligent way to achieve desired results. It teaches him how to think like a programmer, and develops their problem solving skills.

GUI on the other hand requires nothing from the user. Most GUI’s are composed of sets of fairly static interface elements – each tailored to very specific tasks. Unlike CLI, these elements cannot be easily combined or chained together. User must manually navigate from one to another, clicking through multiple screens in order to accomplish something complicated.

For example, lets assume that both our hypothetical users are assigned a task of sorting files into separate directories based on creation date. CLI user will most likely sit down and spend few minutes hacking up a relatively simple script to accomplish this. A GUI user will first try searching for an appropriate tool in all kinds of utility menus, and then will give up and start dragging and dropping files to appropriate folders.

While CLI user is trained to avoid tedious tasks by automating them, GUI user is trained to expect the automation to be a built in feature. If it’s not then they blame UI designers but do nothing to solve the problem themselves. One type of user is trained to solve problems, the other is trained to have problems solved for them.

Each time we design a new GUI interface we are in fact constraining the end user to a specific set of options and actions he can perform. We are in fact dumbing them down ourselves.

Sad part is that current mantra in software engineering world is usability. Everything must be simplified, have a shiny GUI and be intuitive. Otherwise the product won’t sell. But is this really the best way to design software? Some applications obviously greatly benefit from a GUI interface. But I doubt that every possible piece of software out there just has to have it.

[tags]gui, cli, programming, scripting, software engineering, design, users, end-user[/tags]

This entry was posted in technology. Bookmark the permalink.



5 Responses to Can you be too User Friendly?

  1. ZeWrestler UNITED STATES Mozilla Firefox Windows says:

    you make a very valid point. briefly rethink your anti-bluej arguments and tell me if you are now even more anti object first teaching.

    imagine what the next big thing that’ll get dumbed down is?

    Reply  |  Quote
  2. Wikke BELGIUM Mozilla Firefox Windows says:

    The K.I.S.S. principle in fact :)
    Keep It Stupid Simple

    I myself am a programmer (Flex, for the interested)
    and i sometimes need to make a GUI
    these are very simple, sometimes i’m even told to move a simple button a bit higher so “the user finds it more easilyer”

    I hope, in the future, that there will be more sorts of GUI’s for Windows, like now in Linux
    so you can choose one according to your click game skills :P

    Reply  |  Quote
  3. Craig Betts UNITED STATES Mozilla Firefox Solaris Terminalist says:

    Being a UNIX sysadmin . . . I feel your pain!

    I have a few users with Phds that can barely operate solitaire. They see me come in and use the CLI to fix things and ask, “How did you do that? Can I do that to?” I get extremely frustrated trying to teach them and end up writting something up in PerlTK just so they don’t screw it up.

    I don’t think users are stupid as much as they are just lazy and don’t want to learn. They think they are above using the computer that way. I agree with your statement that they just expect the GUI to do the automation for them.

    In the early days, all computer users had some experience with programming, so there was a little bit of background on how computers work. That little bit of knowledge is no longer shared among the user community.

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

    Exactly – people just don’t want to learn these things.

    It’s kinda sad to think about it, but large percentage of population can’t even be bothered to figure out how to make the clock on their VCR to stop blinking 12.

    Reply  |  Quote
  5. Pingback: Terminally Incoherent » Blog Archive » UI Evolution UNITED STATES WordPress

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>