Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Books Media

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."
This discussion has been archived. No new comments can be posted.

GUI Design Book Recommendations?

Comments Filter:
  • User interfaces (Score:5, Informative)

    by MartinG ( 52587 ) on Thursday January 03, 2008 @09:36AM (#21893480) Homepage Journal
    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.
    • Re:User interfaces (Score:5, Informative)

      by morgan_greywolf ( 835522 ) on Thursday January 03, 2008 @10:09AM (#21893858) Homepage Journal
      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.

      • Re:User interfaces (Score:5, Informative)

        by SQLGuru ( 980662 ) on Thursday January 03, 2008 @10:43AM (#21894196) Homepage Journal
        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
      • 7) Don't go and design your own framework. Try to rely on platform features as much as possible; people are used to those. And don't try and reinvent the wheel, use pre-build components when and if they are available. Don't forget keyboard input, and make sure that you can tab go the widgets in a non-obstructive way.

        All these advises are really nice, but don't let your users learn everything from scratch. Unfortunately, even M$ and Apple sometimes forget this part. In most UI books, there is no distinction
      • Re:User interfaces (Score:5, Insightful)

        by Khelder ( 34398 ) on Thursday January 03, 2008 @10:59AM (#21894398)
        I agree with all your numbered items. However, you said these were "crap":

        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).
        I'm surprised you said that, considering your advice sounds a lot like what this sort of book recommends.

        If someone doesn't know anything about HCI and wants to make good UIs, I think it would be really helpful to do some reading. If I had to choose just one, it would definitely be Norman's Design of Everyday Things (which I saw others recommend, too).

        One thing that HCI books do is not just recommend what to do, but give guidelines how to do it. For example, a good way to get early feedback on a UI is with prototypes. There are lots of different kinds of prototypes you might build, and each have pros and cons. A good book could help you decide which kind of prototype to use when.

        Another example: you'd like to evaluate your UI somehow, to see what's good, what's bad, etc., right? But how? User studies are one that lots of people know about, and they have definite advantages, but they're really hard to do right, and they're really labor-entensive. The right HCI book will tell you about cheap evaluation methods, too, what the pros and cons are of the various methods, and help you decide which one(s) are right for your project.

        2) Some vague advice about making look like the OS you're targetting.
        Sounds to me a lot like your #6.
      • Just one question. Why do you assert that a usable GUI has to have stuff like Dialogs, Buttons and Menus and the user has to Click on something ? I find all of these highly cumbersome UI elements.
      • Re: (Score:2, Interesting)

        by tarrantm ( 1210560 )
        That's a good start, but one thing that I find essential is to make it customizable. Make as many elements as possible moveable and resizeable. For instance in the Firefox window I am using right now, I'd love to have my tab bar be vertical instead of horizontal. I'd love to have a search button that expands into a search box when I mouse over it. I'd love to resize the button bar and search bar. I'd love to be able to reposition the scroll bar into a two buttons on the top of the page so that one button a
      • Please pay special attention to #2 of the parent's post. I tried using KDENLIVE to make a simple home video DVD, and everything was fairly intuitive until I tried to export it. I'm not a video formats export and all the cryptic options made me waste a lot of CPU cycles and DVDs.

        If it had even a slight bit of "wizardry" it would make my life much easier.
      • 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.

        Remember that each of those projects had one or more genuine HCI experts involved in the drafting of their guidelines. Do you know HCI better than the top experts in the field?

        Read the guidelines. Learn them. Understand them thoroughly. Heck, read the guidelines from platforms other than the
      • Good advice, but only enough to take you from a crap interface to a mediocre one. There's a hell of a lot more to actually making a good interface. For example, you don't seem to have considered issues of input devices, accessibility, i8n and so on. This really is a big subject, and while "just a few principles" can help get you off the ground (and yours do look like good principles to me), the person who wants to deliver a good user experience is going to have to go a lot further. "About Face" is good, as
    • Re: (Score:3, Interesting)

      by jddj ( 1085169 )
      The Design of Everyday Things has a lot of great info, and is highly recommended, but first read:

            "Don't Make Me Think" by Steve Krug

      It's a short, brilliant read, is mainly focused on web usability, but the principles can be extended to any UI design.

      Really first-rate book - all content, no BS.
  • Alan Cooper's About Face is a good place to start. I read Version 1.0 back in the day, and am reading the 3rd Edition now. Alas, he's gotten a bit more tedious in the interval, but is still smart, funny, and committed to better GUIs.
  • HCI (Score:4, Informative)

    by Pisal ( 746144 ) on Thursday January 03, 2008 @09:39AM (#21893524)
    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 [wikipedia.org]
  • by El_Muerte_TDS ( 592157 ) on Thursday January 03, 2008 @09:40AM (#21893532) Homepage
    Doesn't matter, neither does anyone else.
    There is one important rule in creating a GUI: follow the same design principles as the target OS and applications with similar functionality as yours.
    • exactly, just try to think about all the OSes and Applications you've ever used, and try to think about what you liked and didn't like. Then add in a little of your own flavor, try it out, and if you don't like it, redo it!
    • User interface design really interests me. I understand that other people don't share this passion. Still, I think simple rules can provide a good guide, even if you have no clue. Here is rule I would propose instead of (or in addition to) that one:

      Have ONE potential user try to use it as they would for its intended purpose. Then, eliminate the things that severely bother them until there are none. (Severe means things like, "Can't find a function after trying obvious ways of searching for it", takes a
    • by sm62704 ( 957197 )
      Doesn't matter, neither does anyone else

      Wrong. Google knows good design. Lots of people know good design. Unfortunately, way too many people share your apathy towards the user.
      • Most people throw things at the wall and see what sticks. If you keep things simple more will stick.

        Google used to have a good design. But their search result pages have become worse.
        The first line of google is:
        "Web Images Maps News Video Gmail more"
        And I am authenticated with Google, they know I don't have a Gmail account. They know I pretty much never use Maps and News. They know I use Groups and Scholar more regular than the 3 previously mentioned services. Then why don't they list those options. Also Go
    • Hall of Shame (Score:5, Interesting)

      by Ed Avis ( 5917 ) <ed@membled.com> on Thursday January 03, 2008 @11:28AM (#21894788) Homepage
      Don't forget to have a good look at the Interface Hall of Shame [mac.com] for examples of what not to do.
  • by PhrostyMcByte ( 589271 ) <phrosty@gmail.com> on Thursday January 03, 2008 @09:40AM (#21893538) Homepage
    I don't have any book recommendations, but if you're developing for Windows, be sure to read the Windows Vista User Experience Guidelines [microsoft.com]. Even if you're not on Windows it has some design advice applicable anywhere.
    • by sm62704 ( 957197 ) on Thursday January 03, 2008 @10:57AM (#21894370) Journal
      I mostly disagree. You should use the conventions that the user expects, of course, but don't look to Microsoft for good design. Silk purses and sow's ears and all that, you know.

      Study Microsoft design for good design in the same vein as going to webpagesthatsuck.com/ [webpagesthatsuck.com] for learning good design. For example, if you have the "options" uder "file" in version 1.1 of your program, don't move it to "edit" in 2.1 and "tools" in 3.1 as Microsoft is wont to do.

      -mcgrew

      From the linked site (and I haven't put all the checklists in, because slashdot's horrid design gives an error message about too few characters per line):

      The answer sheet: If you check the box for any of the questions, your web site sucks. Period.

      There is a really big problem, though. It takes a great deal of knowledge to fill out the checklist. You have to know how your site is constructed and you have to have a good understanding of web design. If you don't know what a MARQUEE tag does or that your site's content came from a Microsoft Word document and was converted to HTML, how can you fill out the checklist?

      Note #1:
      Apparently, nobody likes to read much, which is why I haven't put a lot of explanations or outside links in the checklists. I've been looking at sucky design for the last 11 years and I've only been wrong once. That's a topic for another day.

      Note #2:
      Yes, WebPagesThatSuck.com fails to pass the checklist. The site's design has always sucked.

      Checklist 1: First Impression / Big Picture

      • We've designed our site to meet our organization's needs (more sales/contributions) rather than meeting the needs of our visitors.
      • Our site tries to tell you how wonderful we are as a company, but not how we're going to solve your problems.
      • It takes longer than four seconds for the man from Mars to understand what our site is about.
      • The man from Mars cannot quickly find the focal point of the home page.
      • The man from Mars cannot quickly find the focal point of the current page.
      • Our site doesn't make us look like credible professionals. Our site doesn't make visitors feel they can trust us.
      • Our home page -- or any page -- takes more than four seconds to load.
      • Quickly scanning the page doesn't tell our visitors much about its purpose.
      • We don 't put design elements where our visitors expect them.
      • We have not eliminated unnecessary design items.
      • We don't know which design items are not necessary.
      • Our site breaks when visited with the Javascript turned off.
      • Our site breaks because of back-end coding errors.
      • We say "Welcome to..." on our home page.
      • Our site is Flash-based (and this is what our site looks like to people without Flash.)
      • Our site's navigation is Flash-based.
      • Our site uses a splash page (unless it's a liquor, porn, gambling, adult, tobacco, or a multi-lingual / multinational site).
      • Our site makes visitors register before they can enter.
      • Our site uses two or more splash pages.
      • Our site's TITLE tag is something like "New Document", "Index" and not the name of your company or other search-engine friendly terms.
      • Our site has a sound file automatically play in the background when a web page loads, but we're not a record label or musician
      • I don't know if our site looks the same in the major browsers.
      • Our site doesn't look the same in different browsers.
      • The important content does not fit in the first screen.
      • Our pages have too much/too little white space.
      • Our site uses pop-up windows.
      • Our site forces visitors to install weird plugins.
      • Our site has "Download latest browser" text or buttons.
      • Our site prominently displays what hardware and software was used to create the site.
      • Our site's design was "borrowed" from another site.
      • Our
    • by Marcion ( 876801 )
      Interesting that the images in that document are in .png format.
  • by jrexilius ( 520067 ) on Thursday January 03, 2008 @09:41AM (#21893550) Homepage
    by chris crawford..

    its great.

    google books
  • It's not aimed at GUI design in particular, but I'd strongly recommend "The Design of Everyday Things" by Donald Norman.

    Also, "The Inmates are Running the Asylum (why high tech products drive us crazy)" by Alan Cooper is quite good (although about a third of the book is just a pitch for the author's consultancy).

  • Mac and non-Mac (Score:2, Interesting)

    by Zey ( 592528 )

    Be prepared to use at least two design styles. There's the Mac way (and you'll find a lot of good guidelines in their Human Interface Guidelines [apple.com] for that), but, follow those on Windows and X11 and your applications will look rather strange and not at all platform native; even when using native UI controls.

    I don't have any suggestions for books on good design, but, here's a classic site which covers some bad design mistakes: The User Interface Hall of Shame [mac.com]. The examples are fairly dated now, but, the prin

    • IMHO, it's a myth that Mac's have an optimal interface. I recently got a MacBook, and while I'm generally satisfied with it, there is a LOT Of irritating stuff.

      -email client: Why the hell are the subject lines all darkened? Nothing in help about this. Ah, must be a "mail rule". Oh, there it is, I'll just turn it off. Wait, that option is all the way at the bottom of the screen, on top of the program launch icons. *click* No, I didn't want to load that program. Okay, I'll scroll down so that the butt
  • Listen (Score:3, Insightful)

    by C10H14N2 ( 640033 ) on Thursday January 03, 2008 @09:44AM (#21893588)
    What are the issues in designing an interface that is clean, easy to understand, and easy to use?
    Listening to your users enough.

    What are things to be avoided?
    Listening to your users too much.

    Really, the whole thing boils down to balancing the above and, unfortunately, it's a very subjective thing. /Appropriately, my captcha was "miseries."
  • I would suggest... (Score:4, Informative)

    by scafuz ( 985517 ) <scafuz@scafuz.com> on Thursday January 03, 2008 @09:44AM (#21893592)
    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
  • Tidwell: Designing Interfaces
  • I'm no UI expert... (Score:3, Informative)

    by Kjella ( 173770 ) on Thursday January 03, 2008 @09:49AM (#21893648) Homepage
    ...but I'd say most designs fail at one of these two things:
    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.
    • Re: (Score:2, Interesting)

      by anzev ( 894391 )
      In reality, none of these are that important. You see, there's one thing everybody here failed to mention, and it's the fact that the thing using the USER INTERFACE is a human. As much as this is widely disputed at some points during the software development lifecycle, the fact remains that PEOPLE will be using this product. And you have to pay more attention to human psychology!

      Be careful in choosing the right colors, know what a color means, and which feelings it induces to the user. There's an importa
  • by stew77 ( 412272 ) on Thursday January 03, 2008 @09:49AM (#21893652)
    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 [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.
    • testing your UI on real users

      Oh wait -- testing the UI. On users. I see.
    • Re: (Score:3, Informative)

      Also, consider reading Don't Make Me Think [sensible.com] by Steve Krug.

    • by fermion ( 181285 )
      Even though he has gone corporate and is mostly Web Design now, I would add Jakob Nielsen to the list, in particular "Usability Engineering".

      One thing that many UI people state is that the UI is supposed to be an interface that will make sense to the user, i.e. relate to how the user will work, and not, as most interfaces are, to simply expose the inner working of the program to the user. Most users to do care how the program works. They only care how they work. Web sites make this mistake by exposing

  • The basics: (Score:5, Insightful)

    by localroger ( 258128 ) on Thursday January 03, 2008 @09:51AM (#21893668) Homepage
    1. Make the most common operations the easiest to get to, and hide things that aren't done very often behind menus and secondary forms.
    2. Use it yourself, and rearrange the controls to get rid of any apparent awkwardness.
    3. Give it to the actual end users, and be prepared to rearrange the controls again when you notice all the unexpected things they do to it.
    4. Don't get cute. Use standard controls that people recognize.
    5. Pay attention to keyboard shortcuts and tab order. Don't make the user use a pointing device.

    By far the biggest thing is the willingness to refactor. You won't get it right the first time; that's almost impossible, and nothing is worse than a UI that is written to spec and then slavishly nailed to that spec even when the users complain about it. You'll probably find something that you thought would be a common operation is hardly ever done; get the annoying button out of their faces. And something else you thought would happen once a month happens every hour; bring the control out front for them.

    • Re: (Score:2, Insightful)

      by sjaguar ( 763407 )

      4. Don't get cute. Use standard controls that people recognize.
      In addition to using standard controls, have a consistant look. The application/webpage/whatever should be at least consistant with itself.
    • 4. Don't get cute. Use standard controls that people recognize.

      Same goes for icons ... make sure the icons are easy to distinguish among themselves, and if possible use ones wiht meanings that are already well-known. I remember one disastrous Linux app that had two identical-looking icons on one user dialog box, and no pop-up text to explain what they did. One closed out the whole app, losing all my work.

    • User Interfaces: Past, Present, and Future; Good, Bad, and Ugly [sun.com] is from last year's JavaOne, but isn't really Java specific. The slides are available to everyone, but I highly recommend you sign up for a free Sun Developer Network account if you don't have one and watch the multimedia version. Also, the whole Desktop development category [sun.com] may be of interest.
  • http://www.amazon.com/Programming-as-if-People-Mattered/dp/0691037639 [amazon.com]

    Careful not to go down the road of the artsy fartsy web UI designers, as a lot of the other suggestions are.
  • GUI design tips (Score:5, Insightful)

    by Tsu Dho Nimh ( 663417 ) <{abacaxi} {at} {hotmail.com}> on Thursday January 03, 2008 @09:55AM (#21893712)

    Tips are all over the internet. I'd start with the Alertbox by Jakob Nielson (ex-Sun employee, now a usability consultant) and anything his group has published on user interfaces. http://www.useit.com/alertbox/ [useit.com]

    My pet peeves in GUIs ... the designers ignore that people actually have to read the GUI, and treat it like it's supposed to be admired for artistic. For a GUI, bland and boring is good, functional is the goal.

    • Gaudy color schemes: High-contrast is good, but that means high tonal contrast, not screaming red on puke green. Dark text on a pale background is the best for most users, and the colorblind. To test your design, print it out on a black and white printer. If you can't read it, you have the wrong colors
    • Too-subtle color schemes: Pale shades of blue with gentle grey text, unreadably misty and soothing.
    • Reversed tones: pale shades on dark, for optical reasons need special spacing if you don't want the verticals to blur together.
    • Bizarre fonts and font sizes. I remember one supposedly great CD player software that had a jagged "lightning bolt" font for its control labels ... couldn't read them at all, so I deleted it.
    • Odd names for things that have well-known common names. Don't call the mute button the "audio whiffer", even if the developers call it that.
    • Multiple names for the same control, on different menus. Pick a name and use it all over the GUI.
  • As one who has designed GUI for many years (pre-Web), I can say that good GUI design is not an easy thing to come by.

    You have to look at and understand your audience intimately. Demographics matter, too. What works for 20-somethings might totally confuse 50-somethings.

    And today, good GUI design is even made trickier by the expectations users have from using the best applications and web sites. If your application is very "MySpace"-like and is intended for that same audience, you'd better make sure it's

  • Bruce Tognazzini (Score:4, Informative)

    by deacent ( 32502 ) on Thursday January 03, 2008 @09:57AM (#21893740)
    My favorite expert on UI is Bruce Tognazzini. His site at http://www.asktog.com/ [asktog.com] has been quite useful to me. I don't agree with everything he says, but it's always gets me thinking, always challenging me to approach development from a human perspective.
  • The core text on my Human Computer Interaction course at University (College for you American folks) was this [amazon.co.uk]. It might be a bit long in the tooth now but it covers the general principles of how to design a good user interface and how to actually measure user interaction with an interface, as well as the theory (some psychology type stuff mixed with Computer Science) behind the principles.

    It doesn't really cover web stuff if that's what you're after, but the most of the principles are largely the same. Ha

  • by amper ( 33785 ) * on Thursday January 03, 2008 @10:00AM (#21893770) Journal
    Start with the original Macintosh Human Interface Guidelines. Apple Computer put forth an extremely strong effort in researching basic human interaction with graphical user interfaces during the development of their products in the 1980's, and this book is still the gold standard, even if Apple themselves disregard much of its advice nowadays (mainly because Apple was taken over by the team from NeXT). Remember that when Apple was developing the Lisa and Macintosh interfaces, the general populace had never yet been exposed to this type of interaction with technology, and quite a lot of emphasis was placed on making available powerful features to expert users that were easily accessible, yet unobtrusive to novices.

    Along the same lines, I would recommend the original interface guidelines manuals for many of the early graphical operating systems, especially those for early PDA's, like GO's PenPoint, Apple's Newton OS, and the manual for General Magic's Magic Cap.

    All of the aforementioned books are out of print, but any serious student of interfaced design should own all of these.
  • Some suggestions (Score:3, Informative)

    by Registered Coward v2 ( 447531 ) on Thursday January 03, 2008 @10:02AM (#21893788)
    Donald Norman Design of Everyday Things (ISBN-13: 978-0385267748) He will get you thinking about the implications of your interface design; this classic may be hard to find but he has other books out as well. While his examples focus on mechanical objects the thought process and criticisms provide insights into how to think about the end user in your design and avoid become someone "Who won an award" for their design. Once you read teh book you'll get what I mean. http://www.jnd.org/ [jnd.org]

    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.
    • Tufte (Score:3, Interesting)

      by csirac ( 574795 )
      I've been tasked with coming up with a GUI that involves data visualisation and report presentation, where before I've mostly done very discrete back-end or embedded systems stuff.

      Because there's real-time data visualisation (as well as historic stuff), I've heard about the Tufte books before and so bought all four available at bookware.com.au - Beautiful Evidence, Visual Display of Quantitative Information, Envisioning Information, and Visual Explanations.

      Still waiting on them, probably won't be able to ap
  • A lot of people have different views on a UI. Some people think the Apple style is the end-all/be-all, and some don't. Some go for the style of Windows, some go to a completely different direction.

    Look at a few apps with good UIs, write jot down what elements you like about them. See if you can find elements you don't and jot those down.
    Next, go to some similar apps with bad UIs, write down what they did wrong and what they are missing, in your oppinion.

    You should actually get a fairly good idea of how to m
  • Spolsky. (Score:3, Informative)

    by MythMoth ( 73648 ) on Thursday January 03, 2008 @10:02AM (#21893802) Homepage

    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: (Score:3, Interesting)

      by sootman ( 158191 )
      +1 for Joel. +10, actually, if I'm allowed. I really recommend reading the above linked (online, free) book. And if you've got the time, you should pretty much read everything he's ever written. [joelonsoftware.com] Even his stories about buying office furniture or shipping packages has little hints and clues, not about GUIs per se, but about all the little things that make any experience good or bad. And there's lots of good other stuff too, like dealing with people, creative approaches to problem solving, etc.

      Even when he's w
  • User Interface Design and Evaluation by Stone, Jarrett, Woodroffe and Minocha. It's the book my university uses for its course titled Interface and Interaction Design. I like it, but then again, I haven't actually seen any of the other books.
  • Read Interaction Design [amazon.com]. Learn. Prosper.
  • This one helped me a lot: "The Windows Interface Guidelines for Software Design" by Microsoft Press. (ISBN 1-55615-679-0)

    I'm sure it's out of date now (it targets Win95 & NT), but I got it so I could help test some Windows applications back in the day. It was a great help in learning how to lay things out on the screen, in dialog boxes, menus, etc. Even more importantly, I learned the rules for keyboard navigation -- it's amazing how much can be done without having to take hands off the keyboard. T

  • Reading this old classic article, I always loved this one (and agreed so much)
    http://homepage.mac.com/bradster/iarchitect/qtime.htm [mac.com]

    While you're at it, Vista's explorer - yeah, don't copy anything from that either.
    See more info here from me.
    http://it.slashdot.org/comments.pl?sid=364823&cid=21406737 [slashdot.org]
    Specifically take note of what I whine about in the JPG's - it's that kind of shit which kills users.
  • "Programming As If People Mattered" Nathaniel S. Borenstein -Princeton University Press 1991 - ISBN: 0-691-03763-9

    Dated, but simple and very much applicable today. Humorous segways and examples abound.
  • The top book in this area are generally considered to be..

    About Face by Alan Cooper. Version 3 is out
    Don't make me think by Steve Kung. This is for web.
    Anything by Jakob Neilsen. Now mainly focuses on web but he is the main UI person around. Has a web site http://www.useit.com/ [useit.com]
    GUI Bloopers by Jeff Johnson a little dated but far too much informaion about every aspect of the user interface.

    Then you have the books for the language or framework you are working on. Java, Apple and Microsoft all have
  • Joel Spolsky wrote "User Interface Design for Programmers" which discusses exactly what you are asking. Not the technical aspects of the API, but the Human Interface aspects that make an interface easy-to-use, intuitive, and useful.

    Here is the Amazon link [amazon.com]

    He was also nice enough to put the book online for free: http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html [joelonsoftware.com]
  • KISS me (Score:2, Informative)

    by sm62704 ( 957197 )
    The old adage called the "KISS" principle applies: Keep It Simple, Stupid. This has fallen out of favor with the younger generation. Today's apps are busy; too busy. Everyone and their dog wants to be Bill Gates so they copy Microsoft.

    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
  • For a lot of good discussion on things that people have done just plain wrong:

    Google "gui hall of shame" [google.com]
  • This one [google.com] might not have all the rules you might want, and some of his concepts are debatable, but it goes into the nitty gritty details other books don't.
  • ...would be Steve Krug's Don't Make Me Think [tinyurl.com]. While specifically focused on web design, the book introduces some helpful concepts that are fairly universal for UI design. I also second (or third or fourth by now) anything by Tufte - genius stuff (and he'll be the first to tell you that), and very thought-provoking.
  • Keep in mind that touch typists HATE to have to use the mouse. Be sure to design so that enter pages can be navigated logically using the keyboard. By logically, think left->right, top->bottom (at least for the North American English speaking audience, I can't speak for other cultures).

    Also, make the system intelligent. If a lot of the data entry is repetitive, build in some typeahead and use intelligence (e.g. a bill-to address usually IS the same as the ship-to address so provide for that). Get
  • This is surprisingly simple. Ignore all the artsy fuckers that thing GUI design is an art. It isn't. It's a surprisingly hard science.

    Good GUIs minimize the amount of physical user interactions required by the user to perform any action. Mouse down is an action, mouse up is an action moving the mouse 5mm is an action. You get the idea. You need to be aware of EVERY tiny action and try to eliminate as many as possible. If you must use a right click menu with 2-3 menus deep, provide a hotkey for the sam
  • I read this book years ago. It makes you think about features people come to expect in programs. The author is about "putting in ALL on the programmer". What I mean is, many of his ideas are great, but are very hard to implement.

    Some example pointers: "Infinite undos - keep track of EVERYTHING done in the program, and let the go backward and forward through the changes", another: "Silently fail - when a user clicks on the wrong thing, DO NOT make a pop-up that says - 'You did something bad', just do nothi
  • Back when I was in High School I got the starter set to learning Visual Basic 5 that Microsoft Press put out. It came with two books, one was more thorough on Visual Basic, but the other (the title of which escapes me at the moment) went into all the controls and GUI elements, etc. And (while most here would not like this) I would use Visual Basic as a tool to teach GUI design and focus on content like that book had - which, btw, went into accelerator keys, how controls relate, and more. (I'd use VB only b
  • Not a book, but a comic. I'm not sure how much it will actually help but it's humorous and gives us non-GUI programmers an insight on their world.

    OK-Cancel [ok-cancel.com]
  • I highly recommend http://designinginterfaces.com/ [designinginterfaces.com].
    Taken purely from usability perspective, aims perfectly at developers.
    It introduces a set of patterns (similar to to the famous coding patters by Boch et al. - should be known to any OO developer).
    The patterns are easy to navigate and easy to apply - you don't have to be working 100% of your time on usability issues to be able to apply these recipies.

    One minor downside, I think there is not enough focus on web side side of things in that book - the capabili
  • I am a user interface design 'expert', and I can tell you the best solution is to hire an expert, if that's possible. This is a whole field of study- I studied it for 2 years, got my MS, hit the real world and then REALLY started to learn about it. I did include some titles below, but getting good at this requires a totally different kind of thinking than writing good code (which was my old job). That doesn't mean you aren't going to be able to do it, but it does mean that it's going to require you to think
  • by Dutch Gun ( 899105 ) on Thursday January 03, 2008 @11:15AM (#21894598)
    I'm probably setting myself up for a some abuse here, but has anyone other than myself tried out Office 2007 (which is available at my workplace)? I'm curious what the general consensus was - or even some personal anecdotes... Personally, after getting over a bit of a learning curve, I've actually found the whole context-sensitive ribbon system to be pretty innovative, and I actually prefer it now to older versions. I recall a similar concept used in CorelDraw, where specific toolbars would change based on which particular drawing tool was currently in use, and what type of objects in the drawing were selected.

    http://blogs.msdn.com/jensenh/archive/2006/08/22/711808.aspx [msdn.com]

    I've read some documentation (some interesting videos too, but I can't seem to find them) on the justification for the shift in thinking - about how, for example, the explosion in the sheer volume of functionality makes packing every single function into a static menu structure somewhat impractical. To be honest, when I look at some other modern applications with their enormous menu systems, I'd actually have to agree.

    While one may or may not argue the benefits / drawbacks of a specific implementation such as Office 2007, I think an interesting point of discussion is the growth of dynamic interfaces in general - that is, interfaces that adapt to the context of the current work that is being done, to display the functionality most important to a user based on that specific context. Adaptability may even be appropriate, as a computer learns what tasks a user attempts in specific circumstances, and then adjusts itself to try to make accomplishing those tasks easier in fewer steps.

    Computers are becoming more and more powerful, and it should be an interesting challenge to try to package all this functionality in a way that doesn't overwhelm users with more and more complex interfaces.
  • It seems that nearly everyone has assumed you're writing a "windows" application (or linux or mac or whatever OS you For example - a windows based internal data entry application or a web based customer portal for looking at reports. If you're going to read a book you have to make sure that it applies to what you're actually going to be writing, otherwise you're wasting your time.

    I think that three things determine what guidelines you should be looking at-

    Platform - Obviously different OSes call for d

  • Designing the Obvious is a fairly good book about UI design. I highly recommend it. Here's a link [amazon.ca].
  • The problem of GUI design is most people come to it with little or no understanding of what underpins it. Basically we a talking about communicating with humans and therefore we need to understand the human psychology. Therefore I would start with books that explain how people visualize objects or how they approach problem solving. While studying other designs have merit, often the mistake is to repeat a design in another situation where it is less appropriate. Also the process of convention is also importa
  • it was/is an apple design guide for the mac os interface. addison wesley was the publisher when it first came out.

    IMHO the mac gui through it's various permutations (mac os 9/next/os x) is still one of the best gui's out there. sure there are other gui's that have a lot of bells and whistles that the mac os is missing(3d desktop and jello effects of beryl/compiz,desktop gadgets of vista, better multi-button integration) but as far as consistency, user feedback, and ease of use, the mac gui still wins hands
  • Sure, it may not mesh well with the current "throw your shit anywhere" philosophy of interface design, but I guarantee you any interface you design from using the original human interface guidelines will be easily navigated and highly usable.
  • IMHO, if you have time it's valuable to take a few graphic and or product design classes. You'll learn things about visual communication and the design process that are often ignored in HCI books / curriculum.

    As for recommended reading, you might want to check out:
    The Art Of Interaction Design by Chris Crawford
    Designing Interactions by Bill Moggridge
    The Humane Interface by Jef Raskin

    You might also consider subscribing to a design publication like Communication Arts.

  • by linebackn ( 131821 ) on Thursday January 03, 2008 @01:46PM (#21897208)
    If you want to whiz off your users...

    From http://toastytech.com/guis/uirant.html [toastytech.com]

    General application user interface guidelines:

    * Always use cute icons, buttons, and graphics. Everyone loves big red hearts, pink bunnies, and yellow smiley faces.

    * Don't be afraid to experiment with colors!

    * Your application should play fun sounds while operating to keep the users entertained.

    * Never, ever, under any circumstance use the OS-native graphical controls or widgets. Users get bored of the same old buttons, text boxes, and stuff.

    * When possible, disable window management and use unusual, oddly placed graphics for the windowing functions such as the window close option.

    * When writing your own controls or widgets, make absolutely sure they look and feel nothing like the OS-native widgets or anything else the user might expect. Otherwise you might accidentally make the user think that your application is actually designed for their OS.

    * Use your own creative ideas on how a "save as" dialog should look and work. Built in ones are always too limiting.

    * It is important that the user should never be able to tell the difference between a checked and unchecked check box or option box.

    * Always use obscure or poorly drawn graphics for your tool bar buttons, and never put text on them.

    * Avoid including a preferences or options dialog. Instead, let the user use the standard OS provided text editor or an editor of their choosing to edit text configuration files. .

    * Users need time to think about what they are doing and get coffee. Your application should always take at least 5 minutes to load even on the fastest available computer.

    * Make sure an accidental double-click on a single-click item does something really nasty or unexpected.

    * Tool tips are the perfect way to display critical information.

    * To get the most screen space, force your application to always run maximized.

    * Always make the default positions of floating properties windows cover something important.

    * Use the most exotic fonts you can find.

    * Your application's user interface should be flexible and customizable to the point where if the user accidentally sneezes on the mouse or keyboard they will have to spend the next half an hour setting things back.

    * Let a 5-year old draw your graphics, including your corporate logo.

    * File browsing dialogs are not needed, users can easily remember and type in long file paths.

    * Design your application so it requires the user to set their tiny monitor to 10512*7430.

    * Always crash at a critical step and then display a fake apology to the user.

    * It is a mistake to make use of application hooks in the native desktop environment such as new file templates, file associations, or program menu icons.

    * The exception to the above is placing icons in the system tray. Place as many icons as you can in the system tray and make sure that the user can not remove them.

    * If your program implements keyboard shortcuts be original and make them completely different from any other applications.

    * Rent extra UI space in your application out for advertising. Advertising benefits the users and y

"Been through Hell? Whaddya bring back for me?" -- A. Brilliant

Working...