The Source for Java Technology Collaboration
User: Password:



Joshua Marinacci

Joshua Marinacci's Blog

Point, Click, and Drool!

Posted by joshy on December 01, 2003 at 09:14 AM | Comments (14)

When reading discussions about Unix versus Windows versus Mac, I often hear people complain about the Point, Click, and Drool user interface. This is usually directed at the Mac, but I've heard it refer to Windows and even KDE before. These people imply (or sometimes simply state) that powerful computers are hard to use and that these easy to use computers are for mindnumbingly stupid people who can't be trusted with pencils, much less normal computers.

This belief is predicated on two core postulates:

  1. That ease of use and power are inversely proportional(it's not)
  2. and
  3. If something is too hard to use it's because the user is stupid.
I bring this up because it pervades more than just the OS wars. Many people, many programmers included, feel this way, and it is often used to disparage usability efforts, sometimes subconciously. Dispite disagreeing with this mentality, I completely understand it. And that's because I used to believe it too..

It was my sophomore year. I was a young computer science student, eager to program anything. I hacked on my then ancient 286 box, playing with cool windows utilities and dos apps. By the end of the year I had saved up enough to buy a 486SX and start playing with Linux. I was in geeky heaven. I know how to do lots of cool things with brain power alone, telling all others that if they couldn't figure out how to use a computer then maybe they were better of not using one. Computers were for computer experts. Sure, most people could get buy with Windows or a Mac, but they weren't using the true power of the computer and never would. I was pretty smug.

Then something happened. I became a user assistant in a computer lab. I had to help students when their inboxes were locked and machines couldn't print. I had to fix all of the annoying little things that go wrong with computers. The things I never deal with either because I unconciously avoid them or I unconciously fix them.

The thing is, I couldn't chalk their difficulties up to stupidity. These were all intelligent students who had to pass the same stringent requirements to get in to school that I did. It was simply that they weren't in to computers. Pretty much by definition, since anyone who was truly a computer freak like me would have their own computer and not need to be in a lab using the free ones. These people were all very smart, but were doing other things with their talents besides learn how to mess with computer. They could have learned, but they all had better things to do with their time.

This was a big wakeup call for me. My entire perception of computers turned around. Computers are here to serve man, not the other way around. If a computer system is hard to use then it must be the fault of the computer, not the user. That was the quarter I switched my specialization to GVU: Graphics, Visualization, and Usability.

So to the people who complain about Point, Click and Drool, remember that the people who want those systems are the people who are experts at something else, like car mechanics and heart surgeons. People with better things to do than deal with my crummy user interface.

In my opinion, the best computer program is not the one that is so incredibly powerful, but the one that is so easy to use, is simply disappears.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • As true for APIs as for computers
    This reminds me of some of the comments in your Swing has failed blog, that basically said Swing has to be hard to use in order to be powerful, and those that find it difficult to aren't worthy to even try. Exactly the sort of attitude you describe here.

    It also reminds me of an old Apple slogan that went something like, "It's not how powerful it is. It's how powerful it makes you." All the power in the world isn't much use if it's near impossible to use (unless, of course, the goal is to keep said power in the hands of the select "elite").

    Posted by: jimothy on December 01, 2003 at 09:23 AM

  • Re: As true for APIs as for computers

    Exactly. I'm glad that somebody is listening! :)


    This elitest attitude could be simply annoying, but I'm worried that it will become damaging. I went to Georgia Tech, an excellent university known for producing great engineers, not just great scientists. Theoretically the students should be learning how to tune into the needs of their customers and the industry, but many of them seemed to live in just as much of an ivory tower as the 'pure research scientists' we were supposedly better than.

    - Joshua

    Posted by: joshy on December 01, 2003 at 10:23 AM

  • This makes sense...somewhat...
    Hey, I agree with you about 86%. It's always been obvious to me that a userland application should be easy and intuitive to use. Even tools for developers should be.

    That said, I believe that the assumption of a certain level of knowledge and expertise can be a good thing. Setting the barrier of entry to a realistic level can be a sound approach.

    This is not an elitist attitude - or at least it's not elitist in a malevolent way. I have simply met too many developers or managers who shoot down tools because they don't have a nice gui, or require some learning.

    Conversely, I have seen the same people use 'easy' tools with ignorance and cause much damage to companies because their point-and-click techniques allow them to operate at a level boarding on incompetence.

    Some recent opinions I've observed: "Access is the most powerful database system", "XML is too hard to learn", "Unix is dangerous because you can delete things", "Postgres is old and useless because it doesn't have a builtin GUI on windows"

    The danger of these kind of ignorant statements above is they often spread easily amongst the unwitting. I have seen security sidestepped in favor of 'ease-of-use', as well as functionality and data integrity.

    I'm also wary of these point-and-click tools because the transfer of knowledge isn't there.
    Learning to click 'Next' five times doesn't teach much, but learning something like regular expressions can be applied all over the place. (XPATH, java, perl, cmd line etc).

    And something that has neutralized this issue somewhat is that most tools that would benefit from a gui have a decent one as an add-on, for example: mysql, linux distros, junit, javac, ant.

    The described attitude seems more like an early 90's phenomenon. I remember a developer telling me that a flickering window could easily be ignored for a CAD program.

    Now, with the barrier of entry much lower, better APIs and all, competiton seems to have driven much of that attitude out of the market, and everyone is about the user experience. But I might be wrong.

    I was wondering what inspired this blog, if you don't mind sharing.

    Posted by: d_bleyl on December 01, 2003 at 10:48 AM

  • Devil's advocate
    It can sometimes even be the case that too much usability is a bad thing.

    There was a study into cockpit automation[1] which described the "automation paradox" - which points out that we automate away the "low hanging fruit" errors, thus reducing the need for the user to learn to cope with failures. The result is that the first errors the user has to handle are the most severe ones, and we've made them less able to cope. In this case, an increase in usability (of common cases) actually led to a substantial increase in risk.

    I've seen the same problem described in industrial automation as well, but I can't think of an example of "normal office use". I'm not seriously trying to disagree with you here :)

    -Baz

    [1] Wiener, E.L. (1989). Human Factors of Advanced Technology ("Glass Cockpit") Transport Aircraft.

    Posted by: ba22a on December 02, 2003 at 03:00 AM

  • It's all about ease of use
    The X-windows users still do, but their debates have gotten quite one-sided as the Windows users have better things to do with their time :)

    Mostly the wars are now about how evil Microsoft is of course, and Linux users use that argument as a defense against their inability to take some of the things that make Windows easy to use (if Microsoft is bad their products must be bad too right?).

    Posted by: jwenting on December 02, 2003 at 05:51 AM

  • The complexity has to go somewhere
    I agree that computer programs need to be intuitive, natural, comfortable to use, conceptually clear. "Easy to use" is too subjective a term to generate a good debate.

    Has anyone started out a project thinking "I'm going to make this program really really hard to use"? Of course not.

    Why are those people who are "not into computers" using computer programs? They are into something, and that something lead them to computers.

    What if what they are into are inherently complex?

    Where should the complexity go?

    Posted by: weiqigao on December 02, 2003 at 06:05 AM

  • Devil's advocate
    This might be an example of "normal office use" (not as exciting as cockpits):

    A user builds queries with a gui and a wizard, but never learns SQL. Because the user has built thousands of queries with these tools, they are experts at using wizards, but not writing queries.

    The user hits a brick wall when the wizard fails to do what's needed. If the queries where written in SQL, the user would have a transferrable skill (to other dbs), confidence and experience to solve the harder issues, and at least the same speed as the wizard steps if not more.

    The risks include a dependency on and bias towards a single tool, and down-time (or perhaps inability) to solve the more complex problems, as well as potential opportunity costs.


    Posted by: d_bleyl on December 02, 2003 at 08:19 AM

  • Devil's advocate
    But if the wizard shows the generated SQL (which many of them can), users might get a gentle introduction to SQL syntax, thus learning the language "accidentally". And when users hit that brick wall, they can take what they learned from the wizards to run more complex queries. Necessity is also the mother of discovery. But in the beginning, a little hand holding may be necessary for all of us. Even java.net readers!

    Ah, yes, I will confess that I cut my teeth in HTML using Claris Homepage. Now, I generally hand code my HTML, and know the difference between well crafted markup and the automated fluff that tools often generate, but a tool or wizard can lower the learning curve to help get people started.

    Posted by: jimothy on December 02, 2003 at 09:02 AM

  • Good point...
    You are totally right.

    I believe that if wizard authors want to help users, they should consider the impact on learning that their tools have.

    For example, the MS Access SQL editor is completely unacceptable. It doesn't allow comments, it doesn't allow formating characters like tabs, no search and replace, and it generates unnecessary table prefixes and ( )'s.

    There is a school of thought that code gen tools need not generate pretty code. Like your example, there are plenty of HTML tools that generate ugly or unnecessary markup (HTMLKit actually has a plugin to remove the ugly and unnecessary Word tags!) . This is true for gui generators and lots of other tools.

    It just seems like most wizards could do a better job helping rather than hindering the user.


    Posted by: d_bleyl on December 03, 2003 at 09:06 AM

  • Re: The complexity has to go somewhere
    We have to remember that we aren't talking about 'computers' as in the computer itself, but particular pieces of software. There are plenty of complex tasks that software helps with. If a task is inherently complex then the software will be complex, but the software shouldn't add to the complexity. I've seen too many applications that make simple tasks complicated. That's the sign of bad software.

    Also remember the complexity is relative. What may be complex to one person is very simple to someone else because they already have the requisite background knowledge. I probably couldn't use software written for structural engineers because I don't know anything about how buildings go together. I have neither the experience nor the vocabulary. But a structural engineer would have no problem, provided the software exposed the task as much as possible to the engineer and kept itself hidden.

    People who are not into computer use them because they are told to, or because it's better than the alternative. The structural engineer may think that the software he's using is awful because the interface sucks and it crashes all the time, but compared to redrawing the blueprints every time there is a zoning change, it's easier to work around the problems in the software. This doesn't mean the software is good, just that it's good enough. I'd like strive for more than good enough.


    - Joshua

    Posted by: joshy on December 03, 2003 at 10:34 AM

  • Re: Devil's advocate
    True, they probably have not learned transferrable knowledge, but until they hit the wall they have saved a lot of time and money by not having to hire an SQL expert.

    Of course when they hit the wall they will either have to re-evaluate what they want to do or switch to a new tool/technology, both with significant consequences. It would be nice if the tool generated very human readable SQL so that when they do have to bring in an expert the expert can make sense of what's going on underneath. This is an example of where multiple layers of abstraction should play well with eachother. Unforunately, most code generators do what is easiest for the underlying program, not what is easiest for the human who may have to look at it later.

    - Joshua

    Posted by: joshy on December 03, 2003 at 10:38 AM

  • Re: This makes sense...somewhat...
    I don't think that competition has really driven that attitude from the market. I still encounter it, both in fellow programmers and in the form of products that are simply horrible to use (and I'm not just talking about software).

    Educating the developers and designers helps, but this problem will really be solved only when there is an economic incentive, either positive (people pay more for usable software, the Apple effect) or negative (you can sue if the software is defective).

    - Joshua

    Posted by: joshy on December 03, 2003 at 10:42 AM

  • A bad product is a bad product.
    Yes, there is still a bunch of garbage out there. I simply don't use it.

    Developers must empathize with and understand their users. Management should set the tone, create a well-rounded team, and encourage cross-training. Listening to users is paramount. Still, the market values technical skills over soft skills because they are more measurable.

    At the same time, if a developer possessing the described attitude is setting the pace, there is a process and structure issue.

    Posted by: d_bleyl on December 04, 2003 at 06:29 AM

  • Wrong design paradigm
    The reason computer programs are so difficult to use is that most designers have the wrong design paradigm. They get frustrated with the users, thinking 'Why can't the user learn just four or five simple rules? They could understand them and combine them in powerful ways that produce exceptional results'. The user's busy thinking 'Why would anyone want to understand how the system works? I just want to be told, step by step, how to do X. I don't care what powerful underlying rules enable X, I just want to be told step by step how to do X.'

    Anyone who has helped end users has encountered this 'just tell me every step - don't explain it' attitude. Psychologists have studied this and shown that MORE THAN 80% OF PEOPLE PREFER TO T HINK THIS WAY ALL THE TIME. You know what? It turns out that of the small percentage of people who like to program virtually nobody likes to think that way. They all prefer to know a few general rules and how to combine them....

    And so, they design in the wrong paradigm. Because they want a system with simple rules that combine in powerful ways, and the user wants a system that just makes it easy to remember the steps to do X, but not why those are the right steps.

    Slick GUIs do not necessarily make the system easier to use. Flying paper from one folder to another while the copy is in progress is an example of 'click and drool' badness (except that by now the animation looks antiquated; it looked pretty good when it came out in 1995/6). The problem with this excessive glitz is that it communicates no more information than the simple hourglass; it's simply eye-candy that can keep one amused if the total copy time is 3 seconds, but irritating eye noise if the copy will take 30 minutes. For long copies, an accurate progress indicator would be miles better.

    On the Mac, the effects are in many ways over-the-top in how glitzy they are. They're everywhere, whether needed or not. Many communicate information - in fact more of the Mac effects communicate really useful usability information than on windows - but some just look pretty. Probably most people simply find it hard to stomach paying for beauty, but perhaps at some subconscious level they are jealous of the beautiful machines that they can't justify buying...

    Well, that ought to be enough flame bait for anyone. Please focuse on the first three paragraphs in your responses.

    Posted by: anicolao on February 18, 2004 at 04:24 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds