Usability is a crucial part of designing an application that is easy to work with. Bad usability can ruin user experience very badly and there are relatively few applications that get it right. Also, it is interesting to observe that most developers suck at usability design, as they're generally more logical, algorithmical and less artistic, creative.
I've taken special care of desiging the user interface of UC, because I've encountered with so many applications that had a weak usability. In the followings I'll highlight some usability related themes that I think are important. I tried to apply these guidelines in a rather strictly manner and it's possible that I made some bad decisions. You are encouraged to contact the project and make suggestions.
For an excellent resource on usability you should check out the The GNOME Usability Project, especially the GNOME Human Interface Guidelines within it.
Contents |
Note: Infinitely forcing this rule may be disturbing to some users, so alternatives may be provided.
There are some applications that force the user to use multiple windows. If you have more applications in the same time on your desktop (which is generally the case) you'll get easily lost anyway. Forcing the user to use more windows for a single application can be extremely disturbing and it should be avoided.
Most applications (notoriously) use popup windows. Popups are meant as a way to catch the user's attention when a significiant event occurs, but I think they are extremely disturbing. Other people react the same way to popups as me most of the time as I observed them.
When a popup pops up, I generally get pretty uncomfortable because I have to press a nasty button in order to be able to continue to use the application. It feels like the button said to me: "You must press me if you want to go on because I'm an annoying little bastard and I'll only let you continue your work this way".
It is mandatory to be able to interact with an application in an efficient way. Most of the applications are designed with the mindset that the user must be able to access their functionality in an easy, intuitive, consistent manner. Unfortunately most applications also tend to disregard the concerns of the advanced users and I want to list three such things related to them.
The first is optimized widget interaction design. The best orthodox file managers make you able to select the files on their panels with your mouse in a hovered way. In simpler terms, the user can select the files by keeping the right mouse button pressed over a file, moving the pointer above the files that (s)he wants to select and releasing the mouse button. This is an obviously useful feature, yet most file managers stick to the default behaviour of the list widget of the GUI toolkit they use, so they don't support hovered file selection and interacting with them using the mouse becomes a pain.
The second is powerful keyboard control. Most applications tend to be created for novice users. Novices may not be so much dependent on the keyboard, but it's undisputable that advanced users are able to work in a very fast manner by using the keyboard and they strongly outdo novice users who solely use the mouse. The moral of this paragraph is that applications should provide powerful keyboard control features from a productivity standpoint.
The third is to make the user able to define a default operation in case of mass processing. To give you an example, when copying with Total Commander and a source file is not readable due to a scratched DVD disk or a destination file is not writable due to an inaccessible network share, TC doesn't offer skipping all unreadable / unwritable files. Clicking on the "skip" button a thousand times can be a serious pain in case you want to copy every readable files from your damaged DVD disk.
It's hard to find the balance regarding various aspects of the user interface. There should be some space between the widgets and the different elements should be aligned in a pleasant way so that the user could easily access them. Depending on the nature of the application and the targeted audience, it is sometimes hard to design a simple GUI. Often times the end result is crowded, badly aligned or non-intuitive. We should avoid that.
Overlapping of the user inferface elements can have undesired side effects. The most common problem that comes into my mind is searching. Most applications pop up a modal dialog window that requires the user to enter the text to be searched. Most of the time this nasty window annoyingly covers the highlighted text, so it's a very disturbing user interface policy.