GUI Design, some high level ideas
(This article, by Owen F Ransen, first appeared in ASPects November 2000 (The monthly newsletter of the Association of Shareware Professionals). It is aimed mainly at programmers and WEB designers.)
I've been heavily influenced by Alan Cooper as far as GUI design is concerned, and this article gives a very quick summary of just some of the more interesting ideas of Alan Cooper. See the "Books" section below for more details about his two brilliant GUI books.
2. Don't confuse the program's "goals" with the user's goals
Alan Cooper pointed out that what you may think are the program's "goals" may not in fact be the same as the real goals. Alan Cooper divides goals into 4 types. As you read the next four paragraphs try to think how each goal relates to your software.
Personal goals: A user does not want to feel stupid. A user want not make mistakes. A user wants to get an adequate amount of work done. And maybe have fun (or at least not feel bored). If your program makes the user feel stupid and allows him to make mistakes easily it is not likely that he is going to become a customer!
Corporate goals: Increase our profit. Increase our market share. Defeat the competition. Hire more people. Offer more products or services. Go public. Help the person using your software increase the likelyhood of his company succeeding!
Practical goals: Practical goals bridge the gap between personal goals and corporate goals. Some examples: Handle the clients demands. Create a numerical model of the business. Record the client's order. A person working for a company using software that does not make him feel stupid is more likely to actually get good work done for that company. Badly designed GUIs depress and frustrate users (their personal goals are not satisfied).
False goals: Goals are always ends, not means. The following are false goals: Save memory. Save keystrokes. Run in a browser. Be easy to learn. Use cool technology and features. Increase graphic beauty. Note that these may, perhaps, be means, but they are certainly not goals.
3. Polite software
Don't be arrogant! If there is a problem try to help the user. Don't direct him to the help file when your program can probably work it out for itself. Again, as you read the following paragraphs, try to think what they mean to your own programs.
Polite software is interested in me. It remembers my likes and dislikes. If I was working on a 300 by 200 image yesterday, today I'd probably like 300 by 200 to be the default value. If I was working in C:\My Documents\Articles\Gui the last time, then I'd like to be pointed to that directory when I next start up the program and open a file.
Polite software is forthcoming. Offer the user as much helpful information as possible (without overload of course!) For example many perfectly intelligent people may not know what "aspect ratio" means. It is not their fault. It is not a crime. Do not direct them to the help file. In the combo box for selecting the aspect ratio write: "1:1 (Square)", "2:1 (Wide)" , "1:3 (Tall)" and so on. With a few extra characters you both help and educate user! They will not feel stupid, in fact they will feel grateful for this nugget of knowledge they have gained.
Polite software is taciturn about its personal problems. The user does not care how hard the computer is working, is not interested in its crisis of confidence about whether or not to purge the recycle bin, or when to flush its own image cache. In other words "Polite software does not whine".
4. Instant gratification and the layered GUI
You want to sell your software. To sell your software you need to please the user, whatever his field. Don't think that just because the user is "technologically sophisticated" he/she enjoys reading manuals and experimenting with options. Some programmer's do enjoy that, but most ordinary people do not.
So how do you please the user? Instant gratification! That is what the F7 key is about in Repligator and Gliftic. Pressing this one key will immediately give you a result. And I try to make sure that the first few images produced create the most immediately pleasing effects. This instant gratification has resulted in many sales.
Of course F7 does not a GUI make. There is a sort of layering of the GUI in my programs. If F7 (which produces pleasing effects with absolutely no user input), does not quite satisfy the user can start to twiddle with sliders and combo boxes. It is important, though, that he should not need to twiddle before he gets any satisfaction.
Think of the first time a user runs your program as an opprtunity. How can your program impress the user, give him pleasure, make him smile or say "WOW!" within a few seconds or minutes of installing it? He will be more willing to tackle the more obscure options later on if he feels good about the program from the very start.
If you have not read the following two books by Alan Cooper you are missing a huge amount of useful and practical information about improving your user interface:
"About Face" - a programmer oriented GUI design manual.
"The Inmates Are Running the Asylum" - most of the ideas in this article come from this book, and there are many more where they came from.
The following books are less computer oriented, but will help you make intelligent GUI design decisions:
"The Visual Display of Quantitative Information" - Edward R Tufte. Expensive, but a rich and wonderful eye opener
"The Design of Everyday things" - Donald A Norman. This may no longer be in print, but well worth it if you can get hold of a copy.