Hari's Corner

Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then

The difference between 'user friendly' and 'intuitive'

Filed under: Software and Technology by Hari
Posted on Wed, Mar 1, 2006 at 21:11 IST (last updated: Wed, Jul 16, 2008 @ 21:16 IST)

Graphical user interfaces have been around for a long time and the current generation computer users generally like to think that "user-friendliness" is something to do with the fact that they use a point-and-click interface with lots of visual cues and all the functionality of a particular application accessible within a couple of clicks of the mouse button. They usually associate user-friendliness with a lot of cute little "wizards" which walk them through various tasks without them having to take any major decisions along the way (read: exercise their grey matter). Microsoft is probably responsible for this belief. However, computers have been around a lot longer than the GUI era. Without going to the punch-card/paper tape era, I must say that there was a time when learning a computer was all about learning verbal commands: special words that you typed into a computer terminal at a "command prompt" which echoed on the screen and gave you a desired result when you executed it (pressed the "return" key or similar). Learning to use a computer started with learning these basic commands. How to create/edit/delete files, create directories, start applications, list contents of a directory and so on and so forth. The more commands you learnt, the better you became at using the computer for various tasks.

It was a great way to learn computers. It was a linear, traditional method of learning. Computer instructors probably loved it that way. It got people to actually learn something before they accomplished tasks. Computers were generally perceived as academic tools first and productive only after you had a certain degree of knowledge with it. Because the computer merely stood facing you without doing a thing until you actually told it what to do. It was truly a dumb beast but one that could be used very well provided you knew what you were doing.

When GUIs first made their entry into the mainstream, it changed the whole thing. Particularly when Microsoft Windows 95 came out. It represented a kind of change to most PC users. No longer did you stare at a black and white terminal, but a coloured screen with icons, menus and windows. Dialog boxes replaced the traditional "type-and-execute" way of doing things. GUIs started becoming more and more powerful, offering a whole range of "widgets" like buttons, toolbars, menus, text boxes, lists, views, trees and so on. This radical change led to a complete revolution in the desktop market. First of all, users no longer had to learn much to operate a computer. It was about "point and click" - the era of user friendliness. The computer finally became a tool for the masses. The technological changes also meant that computers were more "interactive", no longer command-driven, but event-driven and multi-threaded. While the average user didn't understand this technology, he also was aware that it made life much easier. This technology drive however, didn't make things easy for the programmers. The increasing complexity of user interfaces and APIs meant that they had to start using powerful tools to simplify the process. This is where Microsoft started dominating the market. They could clearly tie down developers and users to their way of doing things by dictating how these APIs worked. Since the complexity of programming also increased, developers were pressurized into adopting Microsoft's solutions rather than working out their own.

Anyway, going back to the topic on hand, what has this to do with "user-friendliness"? I'll try to explain. Most people imagine that for an application to be user-friendly, they need to take care of the user in every conceivable task that the application is capable of performing. In other words, make it easy for the average user to do what he wants and find the functions to perform those tasks where he expects to find them. This has two problems. The first problem is of course that once you start designing an application with "user-friendliness" in mind, the application logic usually takes a back seat. The second problem is that such an interface actually becomes unproductive when you want to perform more complex tasks. Take the example of MS Word. Undoubtedly, it's the most popular Word Processor in the world today and it became what it is because it helped the user achieve what he wanted without necessarily making sure that such a result adhered to the program logic or document structure. As an example, take the ability to use multiple spaces, multiple tabs and multiple empty lines in Word. For a new user, this is a great feature because he can make documents look exactly the way he wants without bothering about structure. But most advanced users know that using spaces and tabs for alignment is sloppy and he should be using tables or page breaks. Now, the clever interface designer will probably make it impossible to break a document structure by using such sloppy techniques. Unfortunately, most users will complain that it's so difficult to use because you cannot type in things where you want them. But such a document will actually adhere to the document structure and in fact make it easier to maintain in the long run. For a one-time letter, it probably doesn't matter, but try creating a huge technical document using MS Word. It'll be a nightmare to make sure that it's structured because Word essentially doesn't help in creating structured documents. And hence you end up creating a huge monolithic document with no proper structure, with random visual formatting, without any logical formatting for certain kinds of information. Everything will be one huge block of text randomly formatted, randomly aligned and of course, with no way to navigate. A nightmare to maintain and keep up to date and consistently formatted.

The point is made, isn't it? User-friendly is actually trying to provide the average user what he wants without necessarily making sure that such a technique adheres to a certain logic or standard of design. On the other hand, an intuitive interface makes sure that every application feature is provided in the most logical place according to the program design, not the whims of the "average" user. Therefore, an intuitive interface makes it more difficult for a newbie to find ways to do more complex things, but actually allows the newbie to learn in a more logical way from ground up. It's like going back to the days of the command interface. You actually had much more power to do things because it wasn't tied down to a two-dimensional visual interface. Verbal commands could be extended a lot more because all it needed was typing in a prompt. Whereas the more level of power you add to a GUI, it becomes more cluttered, more complex and less intuitive. That's why we see those "tabs" and pages to arrange GUI elements into layers and help reduce complexity and improve intuitiveness.

The key here is to understand that user-friendliness is not the same as intuitiveness. Some of the most intuitive GUI applications are actually the hardest to figure out initially. However, they all have one thing in common - they are logical, structured and provide greater levels of productivity to users who actually care to learn how to use them effectively. And that's why most people crib about them... learning is something that they forgot way back in the days when Microsoft first introduced them to sloppy ways of doing things on a computer.

5 comment(s)

  1. Ah, written at last! Well done! ;)Good choice of examples: I suspect that most people can remember a time when they 'formatted' a Word document the 'easy' way, and then suffered for it later when they had to edit it.In fact, I regularly suffer from it at work, where most people create standard forms using periods for the "Write on the dotted line" sections - which works fine right up until you need to actually enter text in that field!

    Comment by Dominic (visitor) on Thu, Mar 2, 2006 @ 14:47 IST #
  2. Dominic, thanks :)Well, yes. You have written a number of excellent articles on this topic and so I felt inspired to write this piece as a result. The fact that most people don't understand the difference between user-friendly and intuitive.In fact, Blender3d is one of the most intuitive 3d software around. You wouldn't call it user-friendly, but it is extremely productive once you get to know the ins and outs.The Word example is a simple one. I could have enlarged on a bigger example, but that would have made the article very big indeed.

    Comment by hari (blog owner) on Thu, Mar 2, 2006 @ 15:46 IST #
  3. The way I see it, user-friendliness can be divided up into 3 sub-categories:1) Easy to learn. (For the first-time user)2) Easy to re-learn. (For the casual user)3) Easy to use. (For routine use)Usually software for Windows focuses on learnability, where Linux software focuses more on usability. Both are (in quite different ways) good at re-learnability. Windows because it is easy to learn in the first place, so starting from scratch is not a big hurdle. Linux because of man-pages and similar.An example would be how to unpack a .tar.bz2 file. If you don't already know the basics of tar, the man-page is rather intimidating, so you couldn't really call it easy to learn, but it is certainly usable once you have learned it. But the point of the example is that it is actually also easily re-learned, if you already know how to use a CLI and tar in general, and just don't remember the specific flag for bz2-compression - all it takes is a --help switch or a look at the man-page.

    Comment by Ole Hansen (visitor) on Wed, Mar 29, 2006 @ 09:22 IST #
  4. Argh, I hadn't realized my name would be linked to Windows XP.

    Comment by Ole Hansen (visitor) on Wed, Mar 29, 2006 @ 09:30 IST #
  5. Ole Hansen, thanks for the comment. Yes, that's a good post there.And yes, I use the browser detect plugin here on my blog. :p

    Comment by hari (blog owner) on Wed, Mar 29, 2006 @ 10:05 IST #

Comments closed

The blog owner has closed further commenting on this entry.