from: benroe.com
Introduction
The Open Source software world is full of excellent software. High-quality F/OSS software is available for virtually any task a computer user could want to do, from word-processing to web-serving. There is one small problem with much of this huge array of software: it is often far more difficult to use than it could be. Professional UI designers tell us that user interfaces should be the first thing designed when we come to develop an application, and that programmers are incapable of doing this kind of design. They say it can only be done by the professional UI experts; OSS projects don't have access to these kind of people, and therefore can never be truly usable.
This doesn't mean we should just give up on UI design. From the quality of many commercial applications' UIs, having usability experts on staff doesn't guarantee a good interface either. Effort, knowledge and thought by any developer can improve the usability of an application greatly. We may only find a local optimum rather than the global, but even that is a step in the right direction.
After years of struggling with these problems, I thought I would write down a short list of five things that we OSS developers should consider when designing our application's GUI. These are drawn from my experience in using and writing OSS software and my reading of a few very interesting books and web sites on the subject. These works are listed in the references — they are all excellent reading for any developer interested in usability issues.
I have intentionally only mentioned points here which do not require major amounts of work to implement, and about which there is little controversy. Larger “whole-application” issues are beyond the scope of this article. None of these ideas is new or particularly complex, but their effect can be very great. I should also note here that in several of the examples I use, it is possible to fix the problem by changing the application's settings. I have decided to only consider the default settings: presumably, the defaults represent the developer's idea of the most usable design for their application.
Before I start, I should probably make one more point in order to at least mitigate the flames I will receive: although I may sound quite harsh on some applications below, this is in no way meant as anything but constructive criticism. I use most of these applications every day and they are fantastic pieces of work, the product of years of hard work by dedicated developers. I am merely making suggestions of potential improvements; no offence is intended to anybody.
The Points
0) The user is not using your application
The most basic point in all computer UI design is that the user does not want to use your application. They want to get their work done as quickly and easily as possible, and the application is simply a tool aiding that. The more you can keep your application out of the way of the user, the better. Effort spent on using your application is effort not spent on the work the user is trying to do. Two key quotes from Alan Cooper's second book, About Face 2.0, summarise this very well:
1. “Imagine users as very intelligent but very busy”
2. “No matter how cool your interface is, less of it would be better”
Points 1 to 4 in this article are really just special cases of this rule.... read more...