Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then
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)
Comment by Dominic (visitor) on Thu, Mar 2, 2006 @ 14:47 IST #
Comment by hari (blog owner) on Thu, Mar 2, 2006 @ 15:46 IST #
Comment by Ole Hansen (visitor) on Wed, Mar 29, 2006 @ 09:22 IST #
Comment by Ole Hansen (visitor) on Wed, Mar 29, 2006 @ 09:30 IST #
Comment by hari (blog owner) on Wed, Mar 29, 2006 @ 10:05 IST #