GUI Design Book Recommendations? 338
jetpack writes "I've always hated writing user interfaces, and graphical user interfaces in particular. However, I suspect that is largely because I have no clue how to write a good one. I don't mean the technical aspects, like using the APIs and so on. I mean what are the issues in designing an interface that is clean, easy to understand, and easy to use? What are things to be considered? What are things to be avoided? What are good over-all philosophies of UI design? To this end, I'd like to pick up a book or two (or three) and get my learn on. I'd appreciate some book suggestions from the UI experts in the Slashdot crowd."
User interfaces (Score:5, Informative)
The book is called "The design of everyday things" by Donald Norman.
Rule #1: Don't make the user look stupid (Score:2, Informative)
HCI (Score:4, Informative)
http://en.wikipedia.org/wiki/Human-computer_interaction [wikipedia.org]
If you're developing for Windows... (Score:4, Informative)
art of interactive design (Score:5, Informative)
its great.
google books
I would suggest... (Score:4, Informative)
1] GUI Bloopers 2.0: Common User Interface Design Dont's and Dos [Morgan Kaufmann Publishers]
2] Designing Interfaces [O'Reilly]
the first to understand what not to do and the other one to get some good ideas to start from.
I really think any book will do, except any Jacob Nielsen's books about usability... I've read them at the very beginning of my career... I think it was jus a loss of time
I'm no UI expert... (Score:3, Informative)
1. Split the elements into three categories:
a) Must set / vital parameters / things that can't have a default
b) Has a default, but users should change regularly
c) Nice to have - every other little setting
Make it very clear what the minimum effort is.
Show the second so users know they're there.
Hide the third behind an expander/button, for those that specificly look.
2. Group things logically by function
Those two things can be contradictory enough. I've met many UIs where either a) there's ten pages of configuration with one a-level option per page, or b) the advanced functions aren't logically ttached to the basic functions at all. If you can make an UI that cover those two well, I'd say you do better than 90% of the UIs out there.
Top ten list by HCI prof (Score:5, Informative)
1. Alan Dix, Janet Finlay, Gregory D. Abowd, and Russell Beale: Human-Computer Interaction
2. Ben Shneiderman and Catherine Plaisant: Designing The User Interface
3. Donald A. Norman, The Design Of Everyday Things
4. Jenny Preece, Yvonne Rogers, and Helen Sharp: Interaction Design
5. Jef Raskin, The Humane Interface
6. Terry Winograd (ed.): Bringing Design to Software
7. Brenda Laurel (ed.): The Art of Human-Computer Interaction
8. Apple Computer: The Apple Software Design Guidelines
http://media.informatik.rwth-aachen.de/HCIBooks [rwth-aachen.de]
Keep in mind that testing your UI on real users is very important. Just because you think it's a good UI doesn't make it a good UI.
Programming as if People Mattered (Score:2, Informative)
Careful not to go down the road of the artsy fartsy web UI designers, as a lot of the other suggestions are.
Bruce Tognazzini (Score:4, Informative)
Some suggestions (Score:3, Informative)
Bruce Tognazzini Tog on Interface (ISBN-13: 978-0201608427) A bit dated but the concepts and idaeas are what matters. He has a website as well as other books. http://www.asktog.com/ [asktog.com]
Finally, there are classics by Edwin Tufte you may want to checkout as well. He focuses on displaying information (mostly quantitative) in a manner to support understanding; and hates PowerPoint type presentations with a passion. Tufte has a website as well. http://www.edwardtufte.com/ [edwardtufte.com] His one day course ie excellant.
Spolsky. (Score:3, Informative)
I particularly User Interface Design for Programmers [joelonsoftware.com] by Joel Spolsky.
If you're designing web software, then read through the archives of Use It [useit.com] by Don Norman. I don't like his books - Designing Web Usability is the only paperback I've ever bought that had usability issues! But he's mostly on the ball.
Re:User interfaces (Score:5, Informative)
Most of the people on here will say something along the lines of one of the two variants:
1) Human-computer interaction is a discipline and you should read this HCI book or that HCI book. (Alan Cooper's About Face comes to mind).
2) Some vague advice about making look like the OS you're targetting.
It's all crap. Good interfaces are built by following a few principles:
1) KISS principle -- Keept It Simple, Stupid. You don't need to make every friggin' thing customizable and you don't want to overwhelm your users with a multitude of options.
2) Make it 'just work'. Automate as much as you can. Try to have configuration options that either will work in the vast majority of cases with the defaults, or have the application automatically try to determine the best settings for the user's environment. The best configuration dialog is one the user never has to see.
3) Softer software -- make things customizable, but in a way that they don't HAVE to be customized for a good user experience. Most users won't customize their environment very much. Always keep this in mind.
4) Present as little of the interface as necessary to accomplish the task at hand. Better to have more dialogs or dialog tabs with a few options than one big gargantuan dialog that has everything.
5) On layouts -- put the most commonly-used controls in a very prominent place and make them big and easy to click on. Things that are less likely to be used should be smaller and out of the way. Buttons are better than menus, but don't end up with so many buttons that the user gets lost -- again, fewer controls on more windows is better than more controls on fewer windows.
6) Don't use gaudy, distracting color schemes or fonts. Make it fit-in with the user's environment. If possible, on GNOME, you want to follow the GNOME HIG. Ditto for Mac. On Windows, follow the 'User Experience Guidelines.' But this shouldn't be your overriding priority. Don't scrimp on the other principles I've outlined just because you're trying to shoehorn your application into the OS vendor's model of what an application should look like.
KISS me (Score:2, Informative)
However, at the opposite end of the spectrum isn't Apple, but Google. Google does it right. Simple, clean, light, fast. There is little to no trouble finding any of the myriad things Google has to offer these days, yet the interface still isn't cluttered.
IMO if your interface would fit a Microsoft product, it sucks. Microsoft writes the WORST interfaces. Big, heavy, bloated interfaces (and code to match) that give the impression of having more than it actually does, and offering more than you need.
Now, I'm a bit biased from my college training, as I was a fine arts major, and the instructors were mostly minimalists. One of my better instructors, when faced with a busy piece, would often say "there's less here than meets the eye". That's Microsoft.
Is there a patent on the circular menu or something? I have yet to see one an any commercial or OSS application.
If I weren't so damned lazy (and wasting all my time at slashdot) I'd use the KDE codebase to write a GUI that instead of having the windows-like taskbar at the bottom, would have a command line. You would still have icons, wallpaper, etc, but instead of a "start" button like Windows or KDE you would click on any empty part of the screen to pull up a circular menu. If you just started typing (without clicking anywhere first), what you typed would show up on the command line at the bottom of the screen. I still find it a hell of a lot easier to type "dir" or "ls" than to right-click "start", find "Home" or "Explore" in an old fashioned, should be obsolete straight menu, then click and click and click to get to where you were when you pulled it up. I find it easier to type "del ??task.bat" than to use Windows Explorer, drill to where the files are, hold down "alt" and choose the files I want to delete, then... well, GUI is great but command line interfaces have their strengths, too.
But to reiterate, what's worse than Microsoft? Any newspaper's web site.
-mcgrew
PS- don't go to my site looking for good design, it's cobbled together without much effort or thought. It loads fast though.
Re:User interfaces (Score:5, Informative)
-This is related to #5 in that your audience determines what features should be prominent: the person answering the phone needs the "take message" feature to be easiest to reach....the person at the cash register needs the "ring up sale" feature to be easiest.
-This is related to #6 in that your audience determines what colors are good / bad (think "high contrast" color schemes for visually impaired, cultural implications of color, etc.)
-This is related to #3 in that if your audience is Slashdot readers, they expect skinning and an options screen with 50,000 selections.....if your audience is the owner of the basement you live it, they expect a single button that is labeled "Do What I Mean"
I'm sure that principle applies to the others in some way, too, but you get the idea.
Layne
Re:Top ten list by HCI prof (Score:3, Informative)
Also, consider reading Don't Make Me Think [sensible.com] by Steve Krug.