Slashdot Mirror


GUI Design Book Recommendations?

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."

7 of 338 comments (clear)

  1. User interfaces by MartinG · · Score: 4, Informative

    While not specifically relating to user interfaces of computer software, there is an excellent book relating to making things in general easy to use, and most of the ideas translate well to GUIs.

    The book is called "The design of everyday things" by Donald Norman.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
    1. Re:User interfaces by morgan_greywolf · · Score: 5, Informative

      That's a good book and it has plenty of common sense principles.

      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.

    2. Re:User interfaces by SQLGuru · · Score: 4, Informative

      7) Know your audience.
                -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

  2. HCI by Pisal · · Score: 4, Informative

    Regarding the topic, there is an area of study in Computer Science called HCI (Human Computer Interaction). Take a look at this article for a starting point on that issue.

    http://en.wikipedia.org/wiki/Human-computer_interaction

  3. art of interactive design by jrexilius · · Score: 4, Informative

    by chris crawford..

    its great.

    google books

  4. I would suggest... by scafuz · · Score: 4, Informative

    I would suggest you two books:
    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

  5. Top ten list by HCI prof by stew77 · · Score: 5, Informative

    Here's a list my former professor compiled:

    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

    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.