Showing posts with label Usability Principles. Show all posts
Showing posts with label Usability Principles. Show all posts

Thursday, March 10, 2011

Visibility Principle

A user interface is only valued when the user interactions achieve their purpose. The first element of user interaction is what the user sees in the interface. Visibility is all about how clearly the user sees the state of the interface and all the possible actions. If the users cannot "see" how to use the interface, it is not adhering to the visibility principle of user interface design. Let's dive into some real-world examples and then follow-through with web examples.

 



Good visibility - car dashboard that is designed with everything positioned in a way that can be easily found and used.

 



Sleek design in this case compromises usability - auto-faucets have a great advantage of saving water, but its common challenge is "where to put our hands" to ensure timely hand-wash.




Style yes, visibility of main functions - a big NO! One of the most complex wrist-watch dial ever designed.



How many combinations!? Phew!

 



Most straightforward with high visibility - ATM.

Over to few web examples:

Employ commonsensical ideas like highlighting important parts of your web page on top center, avoiding dead-ends, and always suggesting users the 3 answers: "where he is", "what there is", and "where can he go next".

Suggestions?

Sunday, February 27, 2011

Boorish behavioral patterns

To many coders, application development is the more glamorous part of software development, as compared to building the user interface for the same. What most of coders ignore however, is that to the end-user, the user interface IS the system. And what most end-users want is a system, which is functional, intuitive, easy to use and has sensible defaults. Humans during their evolution from cavemen to the current society have come up with a number of rules, governing various aspects of social behavior. These are the rules that are commonly referred to as social manners. We argue that a large number of the behavioral patterns classified as “good manners” apply to software application interfaces also. Consequently, user interface designers who tend to ignore “good manners” run the risk of making their applications as bad or rude software citizens.

But what are good manners? Simply put, good manners can be summarized as show consideration, respect and care for others.  It is somewhat surprising then that, whereas most of the creators of various software and web applications are well behaved and possess good social ettiquettes, some of their creations are truly rude and obnoxious in their interactions with end-users. It seems that many computer applications do not follow the basic tenets of social interactions which are common knowledge. The disconcerting fact is that some of the usability issues that underly such rude behavior has been identified and understood for decades.

Some examples of rude interfaces are summarized below:

  1. Irrevocable Steps: This typically refers to instances when the system decides to take some irrevocable steps, with or without user consent. Automatically applying patches and rebooting the system is a concrete example. This is seen on windows environments, wherein the OS is configured to automatically download some patch from windows update without informing/intimating the user, and after the patch is installed, auto-rebooting the system. This is the physical equivalent of your futuristic car deciding to clean itself, suddenly change directions from your current destination to the carwash, throwing all the users out of the car and washing itself.

  2. Pushy Behavior: Application developers want end-users to use their software as much as possible. But when their desire to promote their software to desktop users translates to the software adding itself in a number of places, including the startup menu, desktop icon, task bar, right click context menu and changing the default application for a number of file types to use itself, it can be termed as pushy behavior. Real player, and before that Paint Shop Pro was notorious for such behavior.

  3. Pot calling Kettle black: While doing application design, it is the responsibility of the programmer to not just anticipate, but even expect incorrect inputs from the end-users, who often are not technically savvy. In a lot of cases, however, instead of designing the software to be robust and fault tolerant, the programmers blame the end-users via vague and rude error messages. An example of such is when the application attempts to confirm some obvious condition from the end-user eg - The infamous DOS error Abort, Retry, Fail?

  4. Cryptic error messages: The HTTP status codes comprise of a list status codes that webservers return as a response for any HTTP request. In fact, all the HTTP status codes are very terse and to-the-point, but what is more puzzling is when website designers directly throw these cryptic error messages to end users. A very common example is, when a web server throws a “404 - page not found” error. It is fairly trivial for the website designers to put out a more graceful error message, or even re-direct it to a generic error page having a more polite error message.

  5. Threatening error messages: These are error messages that threaten the end-user with some sort of destructive behavior (typically data loss). That this is a very rude behavioral pattern for the application goes without saying, but what is worse is that the programmer has anticipated the condition that causes this error message, and instead of fixing the root cause, added a threatning error message to the end-user. eg - “Continuing with the operation may cause permanent data loss and cannot be undone. Yes/No?”

  6. Contract breaker: Windows GUI applications (typically) have a contract with the end-user that exiting the main window will close the applications. Applications that fall in this category satisfy the exit contract but keep running in the background hogging memory or CPU. Adobe is a prime example of such behavior.


We will be exploring some more such examples and analyzing their underlying patterns in upcoming posts. Please watch this space for more details.

Sunday, February 20, 2011

Structure Principle

STRUCTURE.


In my blog post, Principles of User Interface Design, we touched on various aspects of user interfaces. This feature will discuss few specific points of one of the aspects - Structure - followed by few examples.

Why do you need your site to be structured?


Well, you need your customers/prospects to understand quickly what need of theirs will your product/service fulfill. It is important for the visitors to find relevant information quickly, and get easy access to additional information if necessary. Your public domain, which is the place for introducing all that you do, can and will change in the future. Having a good and expandable structure would make this job easy and seamless. Having a good structure (which also means not random, but structured set of keywords) will also make the site findable on search engines. The customer also needs to have alternate paths to key areas and information on the site for better decision-making.

How can you achieve structure in your web site?


Main idea is to establish the information architecture for site content areas in providing clear, visitor-specific paths to useful and relevant information.

  • Internal site linking structure - have logical grouping/linking between main navigational elements (either left or top) and secondary/direct navigation (right, center, or bottom).

  • Linking between sections - have good cross-linkages and quick jumps to important sections of your site (for example: customer stories, case studies, thought-leadership blogs).

  • Page-specific navigation - it is not a bad idea to design page-specific navigation and access to information. In fact, each page has to serve a specific purpose and it's a mistake to have all pages behave the same in a large site. For example, "About us" section needs to be very different than a section about "Products/Services" not just in presentation and writing style, but also in flow.

  • Keywords as sections - site visitors will feel at home with the structure of the site, if we make user keywords as section names.

  • Site Exits - design specific click-to-action elements for a logical exit from your site. For example: Inquiry Forms, Downloads, Feedback, Sign-ups, Share/Like.


Few examples of sites with good structure:



Structure it now; structure it well.

Stay with us for more features on other principles with more examples.