Slashdot Mirror


User Interface Design for Programmers

ellenf contributes this review of User Interface Design for Programmers. "Aimed at programmers who don't know much about user interface design and think it is something to fear, Joel Spolsky provides a great primer, with some entertaining and informative examples of good and bad design implementations, including some of the thought process behind the decisions. Spolsky feels that programmers fear design because they consider it a creative process rather than a logical one; he shows that the basic principles of good user interface design are logical and not based on some mysterious, indefinable magic." Read on for the rest of ellenf's review. User Interface Design for Programmers author Joel Spolsky pages 144 publisher Apress rating 8 reviewer Ellen ISBN 1893115941 summary Aimed at programmers who don't know much about user interface design and think it is something to fear, Joel provides a great primer, with some entertaining and informative examples of good and bad design implementations, including some of the thought process behind the decisions. He feels that programmers fear design because it is a creative process rather than a logical one and shows that the basic principles of good user interface design are logical and not based on some mysterious indefinable magic.

Spolsky's light writing style makes this book an easy read, and his personal stories and anecdotes help make his thoughts on user interface stick in your mind when you're done reading. He provides programmers with a few simple guidelines to follow, such as "People Can't Read," and "People Can't Control the Mouse."

His focus on the logic of good user interfaces and his push to develop a good user model is bound to resonate and get programmers to think about making their interfaces logical from the user's perspective, rather than the perspective of the inner architecture, which the user could typically care less about.

The reminder to focus on the tasks the user is trying to accomplish rather than the long feature list that usually gets attached to product specifications should be read by product managers as well, of course. In fact, the absence of specific platform details makes the book a good read for anyone involved in software design -- with the caveat that it is not aimed at people with much design experience. This is a great starter book and makes the process understandable, friendly, and fun-sounding. (One of the things I appreciated was how much fun it sounds like Spolsky has when he's working.)

Spolsky encourages showing the in-progress software to users and watching them use it. I think one of his best points about usability testing is that if the programmers and designers cannot bother to watch the users during the testing, they're unlikely to gain much from a thick report by a testing lab. He encourages simple, quick, and casual usability testing, something even the smallest firm could afford and from which they would could draw useful improvements.

If you have much design experience, you'll find this book a bit basic, but even then the examples are worthwhile to read and remind yourself how a good idea can be poorly implemented sometimes -- usually by taking it too far! I was personally hoping for some richer comments about designing web applications, but if more people start paying attention to the basic guidelines he's covered here, web users will benefit.

In summary, the book is aimed at programmers without much design experience and Spolsky does a great job of hitting his mark. I think product managers without much design experience would benefit as well, as it provides a good basis for thinking about user interface design.

You can purchase User Interface Design for Programmers from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

59 of 331 comments (clear)

  1. Dunno 'bout everyone else by sielwolf · · Score: 4, Insightful

    they consider it a creative process rather than a logical one;

    Are we supposed to assume that creative and logical are now mutually exclusive? I always thought they were complementary. I sure as heck wouldn't find computers interesting if it was all rote and mechanics.

    --
    What is music when you despise all sound?
    1. Re:Dunno 'bout everyone else by DrWhizBang · · Score: 4, Insightful

      I don't think the intention is for it to be exclusive, but rather that it is not exclusive. The point is that many programmers believe that designing a UI is a creative process, because at some point they designed a UI and they were told it was ugly. This is an unfortunate comment, since the rejection of the UI was more likely on cognitive grounds rather than aesthetic, but the word ugly can apply in either case.

      There are fundamental rules of UI design, and there are UI best practices. When these are adhered to, then the UI will be cognitively appealing to the user. In addition, there are liberties that a UI designer may take, and innovations that can be made (per application) that can add up to a smashing UI. But if you are unaware of the rules and conventions, you will fail to create a good UI, and if you don't even know that the rules exist you may be liable to blame it on a gap in creativity rather than a failure to fulfill a logical design.

      Phew. that was a mouthful ;-)

      --
      Schrodinger's cat is either dead or really pissed off...
    2. Re:Dunno 'bout everyone else by kisrael · · Score: 4, Interesting

      Heh, reminds me of Donald Norman's book The Design of Everyday Things. He loved picking on things where aesthetics weere given priority over utility, like doorhandles that were the same for push and pull. He dismissed it with a sniff and "probably won an award".

      Of course, his own book suffered from the same problem...it was originalled "The Psychology of Everyday Things", which let the book refer to itself as "POET", kinda nice.

      Of course, bookstores and other catalogers kept putting it under "psychology" rather than "design".

      And indeed, it had won awards. ;-)

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  2. The Main Problem with Design by baldass_newbie · · Score: 3, Funny

    Is that users are fucking idiots.
    Some user just posted an item how she highlighted her work and then hit 'backspace' and deleted everything.
    She wanted to know what we could do for her.
    'Feel bad' was about all we could come up with. 'Laugh' was another, but we didn't think she'd like that.

    --
    The opposite of progress is congress
    1. Re:The Main Problem with Design by Anonymous Coward · · Score: 2, Funny

      What? Why would you want to suspend the process?

    2. Re:The Main Problem with Design by CableModemSniper · · Score: 2, Insightful

      Oh that is genius, I salute you.

      --
      Why not fork?
  3. Re:$9 cheaper by SoCalChris · · Score: 3, Informative

    Bookpool has it $2 cheaper than Amazon, and you're not giving business to someone who is abusing the patent system.

    http://www.bookpool.com/.x/ejmrmq9fa6/sm/189311594 1

  4. programmers think they know UI by kisrael · · Score: 3, Insightful

    Most programmer think they know how to do UI.
    (Frankly, I think many of them do, to a certain extent, if they're reasonably smart and understand ideas like not throwing too many options at the novice user)

    It's visual design where the failing comes in. I think.

    Or maybe I'm just generalizing from me.

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    1. Re:programmers think they know UI by iapetus · · Score: 5, Funny

      More annoyingly, most users think they know how to do UI better. :)

      --
      ++ Say to Elrond "Hello.".
      Elrond says "No.". Elrond gives you some lunch.
    2. Re:programmers think they know UI by banky · · Score: 4, Interesting

      Programmers know UI based on what they do as programmers.

      Programmers need the 80-bazillion options Visual Studio requires, because Visual Studio is a tool for making other tools.

      On the other hand, users don't need all those options (at least, for the average user). Users want a hammer, not a combination forge-lathe-grinder with optional fiberglass extruder.

      The argument is constantly made, "What about 'power users' and people who really do need extra functionality?". Fine, OK: put that stuff "under the hood" and document its location and functionality. But don't put in a user config dialog with 27 tab groups, 40 options per tab, with an 'Advanced' button on each one.

      In fairness, there's less and less of this. Windows programmers are starting to understand the value of simplicity, just like Mac programmers are starting to understand the value of "power user" options (the `defaults` command, for example).

      --
      ZOMG I WOULD LOVE TO KNOW ABOUT YOUR FEELINGS ON MACINTOSH VERSUS WINDOWS, VI VERSUS EMACS, AND HOW YOU'RE NOT A DORK
    3. Re:programmers think they know UI by b-baggins · · Score: 2, Funny

      What's most annoying to programmer egos is that the users are right.

      --
      You can tell a great deal about the character of a man by observing those who hate him.
    4. Re:programmers think they know UI by kisrael · · Score: 2, Interesting

      Well, speaking as a programmer who "uses" many other pieces of software...yeah, I think I do have some better ideas for many of the pieces of software I use...

      Of course, many of my potential suggestions have to do with "improvements" made in UIs I know, so I have to sort out "I don't like it because I'm not familiar with it" from "I don't like it for these specific functional reasons" (and that's always with the risk of not seeing why the "improvement" was made...there could be decent reasons for some of them.)

      That said: some of my favorite gripes...
      Windows. Ctrl-F in file explorer ... I really miss the old independent app that would pop up. It was so clear that it was a seperate task. This newish sidebar sucks...I hate how I can't tell at a glance if the right pane is search results, or if maybe I had already hit the "X" button and the window is just displaying an ordinary set of folder contents. Duhhrr.

      Windows. Ctrl-F in IE...considering how many decent ideas they've had w/ autocomplete of previous URLs in the Address bar, I'm impressed that the Ctrl-F box is so bad. Would it be so hard to make a list of my past searches into a dropdown combo box there? Is there a logical UI reason why sucessful in-page searches have a larger chance of showing up when I hit Ctrl-F next time, when usually it's the failed in-page searches that I want to repeat? Most infuriating is when a page hasn't finished loading...ctrl-F pulls up one of those wacky sidebars again "gee, if your page is taking more than a few seconds to load, maybe you actually want to search the entire frickin' internet through your special OEM-branded portal". GAWD, is there a way to turn that off?

      Also recently I upgraded to the latest version of the newsreader Tin (on an old academic user account)...the misfeatures multiply, and only some of them seen configurable, from showing the msg header even after paging down (thus making it 4 times harder to see where one msg stopped and the next began) to color-coding instead of displaying the characters *stuff* _like_ /this/ used for emphasis, to always asking if I want to mark all messages as read when exiting a group without reading all of its messages...

      See, it's not so hard to play armchair UI guru...

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    5. Re:programmers think they know UI by kisrael · · Score: 3, Insightful

      And, and one other windows annoyance:
      any (non-browser) program that opens a URL thorugh the OS, be it the start menu, should OPEN UP A NEW FRICKIN' BROWSER WINDOW rather than highjacking an existing one. If I have a window open in the background, there are GOOD ODDS I that I *want* the information that's in there to STAY there. Double Duhhr.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    6. Re:programmers think they know UI by david.given · · Score: 4, Insightful
      The argument is constantly made, "What about 'power users' and people who really do need extra functionality?". Fine, OK: put that stuff "under the hood" and document its location and functionality. But don't put in a user config dialog with 27 tab groups, 40 options per tab, with an 'Advanced' button on each one.

      Way back in days of yore, when Microsoft was still working out how to do overlapping windows, there was a company called Geoworks that produced a really nice office suite for the PC.

      I won't go into details about it, but one of the really cool features was that each application had a tunable user interface. For example, you could set the word processor to user level #1 (novice) and it would turn into Windows Write: most of the controls went away, and you ended up with toolbar buttons for italic, bold, underline, etc, plus justification options; you got simple menus that let you pick things like the font and size directly; you got really, really basic page layout features --- I think it let you pick your paper size, and that was it.

      OTOH, turn it up to level #4 (expert) and it turned into Word. There were controls everywhere. Hierarchical editable character and paragraph styles, embedded fields, hyperlinks, a full vector drawing package including rotatable text (also with hierarchical editable styles), a full bitmap drawing package, up to four seperate customisable toolbars, ruler and frame based layout, etc, etc.

      And they used the same files.

      So it was perfectly possible for Precocious Teenager to log in in expert mode, put together some pretty templates, and then Grandma could log in in novice mode and type text into them with simple formatting. Mum and Dad could use levels #2 or #3, which gave you more features without the overwhelming complexity that level #4 gave you.

      It was such a startlingly good idea that I am not at all surprised no-one appears to have done anything similar.

      (Hmm. You might still be able to download an evaluation copy here, but I suspect it's a pig to run on a NT-based Windows. Worth a look, though, if you want to be amazed at what it's possible to do on a 2MB real-mode DOS machine.)

    7. Re:programmers think they know UI by Sigma+7 · · Score: 5, Informative
      any (non-browser) program that opens a URL thorugh the OS, be it the start menu, should OPEN UP A NEW FRICKIN' BROWSER WINDOW rather than highjacking an existing one.
      Actually, it's the browser that makes that decision. If you find that these third party applications hose whatever background content you were holding regardless of the available, you might want to switch browsers.

      I can tell you how to fix that in IE: Goto Tools -> Internet Options -> Advanced. Look for an item called "Reuse windows for launching shortcuts". Uncheck it.
    8. Re:programmers think they know UI by nachoboy · · Score: 4, Interesting
      Microsoft has contemplated this for years as it is a fairly common request. Raymond Chen, whom you might know better as the creator of the wildly popular TweakUI, has been a Windows developer for several years. He has a blog entry describing why they've never done this.
      On a side note, I've come to realize that Microsoft only makes products for 2.1 audiences:
      • 1. Home/Inexperienced/Novice Users. This is your corporate drone, your mother, and the kids at school. They all want to get on the PC, get the email, write some documents, and surf the web. Don't care much for how or why things work, only that they do. This is why we end up with the gaudy Fisher Price interface and wizards and all sorts of unfunctional junk.
      • 2. Systems Administrators. Your friendly neighborhood BOFH. He's just gotta keep the servers going, the desktop machines running, the database functional. Plenty of options, tweaks, dull grey backgrounds, policies, ways to make things work if you're sitting at the server console.
      • 2.1 Developers. Yadda yadda yadda... need apps to sustain a monopoly... the whole bit. They get things their way inside Visual Studio and not very much else.
      What I object to is there's no class for the ever-growing market of Techies. People who understand the desktop machine they use every day. Many of these are programmers or systems administrators so they know what's going on, they know how they want it done, and they know how they want the computer to do it. Unfortunately, theirs is a life of constantly changing unfunctional defaults to more efficient alternatives, which is of course a mind-numbingly difficult task after you've done it more than once. If we can have predefined security templates that apply to a machine to change a slew of default options, why not expert templates?
  5. Re:Easiest thing is... by mopslik · · Score: 2, Funny

    make sure you can't disable it

    I think that crosses the line from "UI testing" to "hardware durability" testing.

  6. Before everyone gets on their high horse by Anonymous Coward · · Score: 2, Insightful

    and say that programmers shouldn't do UI design:

    Programmers shouldn't do UI design.

    I give you one example: the Linux desktop. No offense, but there is no freaking consistency. Ahh, the examples I could mention, but I got a UI to code...

    1. Re:Before everyone gets on their high horse by gl4ss · · Score: 4, Funny

      well.. in linux programmers did the ui.

      in windows the ui designers did the program..

      hmm.

      --
      world was created 5 seconds before this post as it is.
    2. Re:Before everyone gets on their high horse by Contact · · Score: 4, Insightful
      Warning, contains advocacy...

      Windows isn't any better. Sure, CTRL X/C/V are fairly standard, but anything more than that is terrible.

      Want to do a "find"? Well, it's CTRL-F... usually. Unless you're in Outlook, where CTRL-F does forward, and find is (intuitively!) F4. Oh, except for the main message list, where Find doesn't have a shortcut at all, but advanced find is CTRL-SHIFT-F. And don't get me started on third party apps like Textpad (which is a great app, but uses F5 for find and F8 for find/replace).

      Button location is another bugbear. OK and Cancel randomly move around dialog boxes, swapping positions with merry abandon. Always assuming they're present, of course - dialogs are sometimes closed with "Ok", sometimes with "Close", both doing the same thing (often in the same application. Sometimes there's a close box, sometimes not.

      A much more consistent interface is the mac, for historical reasons. Find is always CMD-F in every major application. Closing a window? Always CMD-W. Quit an app with CMD-Q. When it comes to dialog boxes, Apple doesn't just specify the names of buttons - they tell you where they should be placed (to the pixel), how they should work, what types of icon should be shown for each type of alert and so on. Sure, apps don't need to follow the guidelines - but they pretty much all do, simply because anything that doesn't just looks "wrong" to mac users who are used to consistency.

      It always bugs me when I see linux advocates pushing coders to take Windows as an example of a good interface. It's a dreadful interface (admittedly much improved recently), and despite Apple's recent minor UI setbacks in OS X, it's still by far the best designed interface available. Don't just copy the style - if you understand why the mac interface was designed that way it was, you'll be able to produce something nicer than 90% of apps on any other platform.

    3. Re:Before everyone gets on their high horse by kubrick · · Score: 2, Insightful

      It's always fascinated me how linux advocates will gloat about how microsoft spends millions on Windows security and ends up with an incredibly insecure OS, but are totally unwilling to believe microsoft can spend millions on usability research and wind up with a completely unusable interface.

      Not to defend that attitude, but for many people 'usable' is defined as 'I learned it this way, so it must be right.' It's an area where the majority can be right (for some value of 'right') simply by weight of numbers. (This is different from security, which has more objectively specified benchmarks.)

      --
      deus does not exist but if he does
    4. Re:Before everyone gets on their high horse by key45 · · Score: 2, Interesting

      Ok, this is mostly off topic, but speaking of Windows and consistency:
      It drives me nuts that Visual Studio .NET does _not_ use F7 as the default for 'build'. Every Windows IDE since the dawn of time (or at least since Turbo Pascal) has used F7 to build. Why the hell did they change it?

      (yes, I know you can change the defaults, but that doesn't help when I'm pair programming at a new hire's terminal and I take control for a second)

  7. Oh lord, burn this book! by mveloso · · Score: 3, Insightful

    The last thing the world needs is more programmers designing user interfaces. Most programmers know they suck at it, and their results are/tend to be pathetic. Nobody knows how many lives have been lost (measured in hours of frustration) by bad programmer-designed interfaces?

    Let's face it, an interface is too complicated for most programmers to handle. A UI can be seen as a multidimentional problem (dimension in the real sense of identifying property) that can be viewed from multiple points of view, and each point of view filters out various dimensions of the program underneath it. It also requires you to be able to actually view things from those multiple POVs.

    So for those programmers thinking about UI, don't do it! Stick with command-line interfaces, and let other people take your code and wrap it in something like AppleScript studio, or whatever.

  8. Just listen to feedback by eln · · Score: 4, Insightful

    Good UI design just takes a lot of time and a lot of listening. First, you design the interface to do what you want it to do. You try to pretend you know very little about the actual mechanics of what gets done behind the scenes to make whatever it is happen (a difficult proposition, but you should be able to get relatively close). Then, code the interface (just the framework, don't waste a whole lot of time at this point).

    Then, show it to someone representative of the intended audience. If you're coding a general purpose Windows app, show it to your grandmother. See if she can figure out how to work it. Encourage conversation about it. If she can't figure it out, don't get argumentative. Find out what SHE thinks the interface is trying to do, and try to find out what about the interface makes her think that. Then, try to get a few ideas on how to improve it. She won't be able to give you any real specifics, but maybe she can give you a thread you can explore in detail on your own.

    Re-design based on what you learned. Show it to her again. Repeat until she "gets it". Then, go show your new design to someone else in your target group. Make changes by what they say. If what they say contradicts what your grandmother said, do your best to reconcile the differences. Make up any gaps you can't fix with documentation targeted at the bits you can't seem to make any less confusing.

    A lot of engineers fall into the trap of designing interfaces and sticking with them, even if they are deficient. They insist the users are just "too stupid" or just "don't get it" or just "aren't using it right". They fail to realize the whole idea of a good UI is to make sure users CAN'T use it wrong, and to make it as difficult as possible for the user to fail to understand.

    "The customer did something wrong" is NEVER a reasonable excuse for a problem in a UI. If the customer did something wrong, it's YOUR fault for making it possible for the customer to do whatever it was he did wrong.

  9. try before you buy by Henry_Doors · · Score: 4, Informative

    You can read nine(!) sample chapters on Joels website

    --
    "I deny nothing, but doubt everything." Lord Byron
  10. Re:Easiest thing is... by UnassumingLocalGuy · · Score: 2, Funny

    That brings back bad memories. Last year, during my freshman year of college, I was one of the lucky test subject in a study conducted by one of the CS students. (See http://www.users.muohio.edu/birchmzp/csi/dharna.pd f). It was a poor VB project that had an annoying talking head bouncing around the screen, giving instructions, that I was explicitly told "not to dismiss." And yes, it used Microsoft Agent... I wanted to kill it. Especially when I had to repeat the same action over, and had to listen to the same instructions from it again. On top of that, the VB program's buttons were greyed out until the thing shut up.

    *shudder*

    I went back to my room and stared lovingly into the login prompt on my FreeBSD machine for an hour after that experience.

    --
    "Hu, ho, ho-ah-oh-oh-oh. Hu, ho ho-ah-oh-oh-oh. Mario Paint! Whoaaa!"
  11. Everything I know about UI design, I learned from by crazyphilman · · Score: 5, Funny

    GAMES:

    1. If the user doesn't have to stop what he's doing to solve an inexplicable puzzle every few minutes, he'll be done waaaay too fast.

    2. Obey the principle of most astonishment. Surprise the user as often as possible! Preferably with something terrifying that makes him literally fling himself out of his chair (example: the aliens in Alien Vs. Predator love to sneak up on you along walls and ceilings and suddenly let you have it from three directions -- a guaranteed excuse to press "pause" and go put on a new pair of underwear).

    3. If the user screws something up, HE MUST BE PUNISHED. Usually, this means his onscreen persona (resume, spreadsheet, etc) should die a wretched, gory death, scaring the crap out of the user (see #2) and he should have to start whatever he was doing over from his last save point. This of course encourages saving documents frequently, always a good thing with Microsoft software.

    4. If the software includes networking features, you MUST include a "taunt" feature. Allow preformatted taunts and on-the-fly taunts; both are equally fun for all. "Hey, BILL! Your powerpoint SUCKS!"

    5. And, finally, you have to include a few easter eggs and hidden areas. These should include a "must-have" that isn't granted to ordinary users (like, say, print preview).

    And, people said video gaming wouldn't ever get me anywhere!

    --
    Farewell! It's been a fine buncha years!
  12. Increasingly important subject by fiannaFailMan · · Score: 5, Interesting
    Some of the guys who work at our place are excellent programmers and are extremely knowledgable about the underlying technology that they're using. When it comes to interfacing their software with the user though, they start to get some funny ideas about what the user needs.

    "Yes but that's how I would think it works" they'll say. Says I, "Yes but you're a certain type of guy who knows what's going on underneath it all, from the user's point of view he's looking for something completely different."

    That's why our company has people like me, renaissance people if you will, who can think with both sides of the brain and provide a bridge between the technical people and the creative people who design the user interface.

    It's a good learning process, all this interaction means that they get to learn a bit more about the needs of the user and I get to learn about the underlying technology. Books like this would probably help us all.

    Another book that's doing the rounds at our place is The design of Everyday Things. It covers much more than just computing and gives a good insight into the psychology of the user. Some of the psychoanalysis stuff is a bit deep for my liking, although overall it's quite informative.

    --
    Drill baby drill - on Mars
  13. Online version on Joel's site by kulmala · · Score: 2, Informative

    There is a shorter online version (nine chapters) of the book available on Joel's site (excellent stuff, btw.)

    --
    Luke, I am your signature. Search your feelings, you know it to be true...
  14. Good UI design is easy by ChaseTec · · Score: 4, Funny

    Just model everything after vi!

    --
    My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
  15. In many cases, it simply doesn't matter. by kafka93 · · Score: 2, Insightful

    For many developers, I don't think that UI considerations are all that important. I've often spent a long time thinking about, and discussing with users, the best means of controlling a particular (web) application. In practice, though, users tend to spend a bit of time figuring out an interface -- however esoteric or poorly designed -- and then use it without complaints. They may not be using it 'optimally', but they're happy enough anyhow.

    I'm playing Devil's Advocate, I know; but still, when cost/benefit analysis comes into play then there are arguably very many cases where it just doesn't matter how much effort goes into user design: even with the simplest, most elegant interface, users will take some time to figure out how to do things - and besides, many users are now trained into using Microsoft-style interfaces, meaning that they _are_ the 'most usable' format to follow irrespective of classical design/HCI principles.

    Finally, I think that there's a marked difference between having something "look nice" and "be usable". And I think that many developers *are* adept at designing systems that are usable; it's the "prettiness factor" which is more elusive - and which most users tend to care and think about.

    1. Re:In many cases, it simply doesn't matter. by elmegil · · Score: 3, Insightful
      I have to say that unless I am using some tool that is mandated by work, if I have to spend more than about 5 to 10 minutes trying to figure out your user interface, I'm going to go find another solution to my problem. Web sites and web tools in particular are subject to this.

      I do some web design for work, for people who *have* to use my tool to accomplish a particular task, and I have spent a lot of time thinking about how to make the tool work best for them, simply out of consideration. I hate it when work tools force me to twist my head around some horribly byzantine interface, and I don't want to do that to anyone else.

      As a side note, _Don't Make Me Think_ by Steve(n?) Krug is one of the best introductions I've seen to the topic, and his coverage is quick and to the point. I'd be curious how the book reviewed here compares to it, as described by someone who's read both.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    2. Re:In many cases, it simply doesn't matter. by Ilan+Volow · · Score: 4, Insightful

      Users rarely complain about badly designed user interfaces. They accept that computers are nasty, evil devices that make their lives hell and prevent them from doing work as much as possible. They say nothing to you, and then they come home to their families and say "I hate computers".

      An end user not complaining about a bad UI is like somone complaining that a torture device like the rack is "uncomfy". It's just accepted that the experience will suck.

      There is so much general computer-phobia in the world because end-users have not yet realized that it's not the computers in general that's the cause of their problems with an application, but rather it's the individual programmers who wrote the application who are the problem.

      Ergonomica Auctorita

      --
      Ergonomica Auctorita Illico!
  16. Re:Easiest thing is... by darkov · · Score: 4, Funny

    Hi! It looks like you're posting a sarcastic comment to Slashdot! Would you like me to make fun of the humorless and daft who take your posting posting literally?

  17. Re:Easiest thing is... by Miguel+de+Icaza · · Score: 2, Interesting

    Wierd. I think the paperclip is a great idea.

    I have even been thinking about how to make a framework for guessing what the user is doing in GNOME.

    --
    Before adopting WHATWG, read the moonlight.NET EULA [http://www.microsoft.com/interop/msnovellcollab/moonlight.mspx]
  18. Joyous Joel by An+Anonymous+Hero · · Score: 2, Funny
    (One of the things I appreciated was how much fun it sounds like Spolsky has when he's working.)
    His very name Spells Joy OK!
  19. What you really want... by IceFox · · Score: 2, Interesting
    What you really want it GUI Bloopers. GUI Bloopers take you step by step through the majority of the UI widgets out there and tell you what it is, why it is there, what it should do and what it should not do. This way you have a much better feel for WHY something should be one way over another. I own both the above books, but I tossed out the reviewed book. Way to much theory (some of which I very much disagreed with) and little to no substance at all. Yes every programer should know a little theory about how users interact, but the key words are "a little". What developers really need is what GUI Bloopers provides, an explination of what you should and shouldn't do with widgets.

    Benjamin Meyer

    --
    Do you changes clothes while making the "chee-chee-cha-cha-choh" transformation sound?
    1. Re:What you really want... by BetterThanCaesar · · Score: 2, Interesting

      The name GUI Bloopers made me think of this.

      Example: "Explain why a Macintosh pull-down menu can be accessed at least five times faster than a typical Windows pull-down menu. For extra credit, suggest at least two reasons why Microsoft made such an apparently stupid decision."

      The questions and answers are quite interesting.

      --
      "Stop failing the Turing test!" -- Dilbert
  20. What if grandma isn't the target? by bluGill · · Score: 2, Insightful

    This psyco-babble about grandma being the target annoys me. Sure everyone is a novice at sometime. However most applications are used by experts. (they started at beginers, but have learned it) How do you support those experts who are doing a task everyday? They have different demands, now your easy to learn app needs to be easy to get the common tasks done with. That is a completely differnent level of design.

    Take configuring the network on windows. It is fairly easy, except for two points: the task itself is complex (Assume that dhcp isn't implimented for whatever reason), and getting it wrong can be serious (though microsoft will detect and prevent a lot of getting it wrong problems, good design there) to the rest of the network. Experts only territory, if you don't know what those fields mean, you should be taught by an expert. Because it is experts only territory, seperating things (DNS from ip/netmask) just slows down the expert who wants to type in a bunch of numbers and move on. The beginner should be turned off by the amount of data there, in hopes that they don't screw things up. (in NT based systems the user isn't given access to change this, more good design) Note that I specificly picked something where making it easy for the beginner makes it harder for the expert, and made the argument that the beginner shouldn't be here anyway - this argument doesn't apply to everything, often you need to support both types of users.

    1. Re:What if grandma isn't the target? by nachoboy · · Score: 4, Informative

      It seems as if you are only familiar with the GUI method of setting network properties. While it's easy to make fun of Windows XP for all its gaudiness, Microsoft finally added a whole slew of great command line tools which are often overlooked. netsh for example is a great command line, hierarchical interface to network adapter properties and settings. Spend a little time with it and you'll never go fishing through those silly dialogs again. diskpart is another great addition that should have been there long ago. sc for service configuration and bootcfg for making changes to your boot.ini - the list is pretty extensive. More info in %systemroot%\help\ntcmds.chm.

  21. Contradicting feedback by FooBarWidget · · Score: 3, Insightful

    Then how do you deal with contradicting feedback? What if users are contradicting each other? A very good example would GNOME: half of the users scream "more options! more options!" while the other half screams "less options! less options!" (this is of course a heavily oversimplified view of the situation; but you get the point).
    I's happened more than once that users contradict each other.

    1. Re:Contradicting feedback by Simon · · Score: 4, Insightful
      That is why it is a good idea to watch what users are doing and what their goals are. What users think they need, and what they really need are often not the same thing. Users are users, not usability experts.

      'Options' are good case in point. Often people want extra options to un-break some poorly chosen UI behaviour or functionality. It is beter to find out what is really causing the problem and fix that.

      --
      Simon

  22. Agreed by MisanthropicProggram · · Score: 3, Insightful
    I'm not the smartest developer around, but a lot of users like me because I listen to them and try to implement what they want. Sometimes, that means talking to the smart developers to see how to do something so that the users don't have to talk to them; which, I guess is becoming a useful skill these days. ;-) I like to give credit where credit is due. So, when smart developer helps me, I let everyone know it was the smart developer who helped me. That way eveyone is happy. The users get what they want, the smart developer gets credit for his brains, and I get a job.

    --

    There is no spoon or sig.

  23. Aim at the wrong target and a hit is useless! by Zero__Kelvin · · Score: 2, Insightful


    "He feels that programmers fear design because it is a creative process rather than a logical one and shows that the basic principles of good user interface design are logical and not based on some mysterious indefinable magic."

    All too often the terms programmer and Software Engineer are used interchangeably. UI design is the domain of Software Engineers. A programmer should design user interfaces as much as a baker should be enlisted to make a gourmet dinner. Combine this with the fact that Software Engineering is both a creative process and a logical one, and we can begin to see why I continue to question Joel's understanding of Software Engineering. I am not saying the book isn't good. It probably is, as long as you keep these caveats in mind.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  24. Example of bad UI by lightspawn · · Score: 3, Interesting

    Windows' file dialog - not only does it not remember the scrollbar location or sort order, it doesn't even remember the 'details' view - the thing that makes sorting even possible (why is any other option?), so to open the file you want, you need to:

    * select the "file/open" menu entry
    * move to the view drop-down list, click
    * select the "details" option, click
    * move to the column you want sorted (say "modified"), click
    * scroll down to the desired file
    * move to its name, double click

    How many man-hours are lost worldwide to this UI idiocy alone?

    1. Re:Example of bad UI by lightspawn · · Score: 2, Insightful

      it probably came down to the fact that most users will have a small number of files in the given folder (assuming the app brings up the dialog with an appropriate folder selected). With the two- or three-column format you get instead of the Details view, there's a good chance that all of the user's files will be visible and clickable without scrolling or changing any settings.

      If anything, most novice users will have all their files in very few directories.

      If Microsoft had actually bothered to observe users interact with their software they would have caught and fixed this problem.

  25. Design Does Matter, But Designers Should Do It by CowboyRobot · · Score: 2, Insightful

    Many times in my career as Web developer, I've had the responsibility of taking an existing site and growing traffic. In each case, the sites started out as ugly, since the 'design' was just wahtever seemed adequate by whoever coded the initial HTML.
    The first step of improvement was to get a professional designer to come and fix the site - put together a more useful navigation system, adding breadcrumbs, etc.
    The traffic would always double (at least) after the re-launch. Part of the increase has to do with old users having to deal with a new system, and clicking around more than they used to, but the rise in traffic was consistent over time, because more user-friendly interfaces meant more users could find what they were looking for.
    So, design is not just making things pretty, and it's certainly not art, since art is about personal expression - design is making things useful, or optimizing their usefulness.
    And slick design is often appropriate. If you run an e-commerce site that looks like it was put together by a 14-year old kid with a copy of Frontpage, you will scare away business because they think you're some fly-by-night operation.
    So, spend the money, hire a designer. You can get a decent redesign for a few hundred bucks.

    --
    every stain tells a story
  26. Beauty versus utility by 0x0d0a · · Score: 4, Insightful

    Unfortunately, UI can also be an area that should *not* be consumer-driven.

    The recent facination (last five years) with media player authors to make "pretty" interfaces that immediately grab a user's interest is a great example. The UIs are far less usable, are inconsistent, are frequiently slower and buggy...yet authors keep pumping out these damned bitmap interfaces to DVD players, movie file players, audio file players, etc.

    The problem is that every time someone does something with a tiny bit of justification, everyone copies it wrong.

    Bitmapped interfaces have seen two major insurgences that are still present. The first, pointed out earlier, was in media player apps. There are a number of cases, but I think the first instance I know of was WinAmp. WinAmp was trying to fill a hole that had never been filled before. It needed to remain constantly up on a user's desktop to keep title, volume, and position available. However, it needed to save space (see the minimized form) -- I can't think of a good way to provide equivalent functionality using standard widgets. Anyway, a difficult HCI call -- to deviate from the standard OS interface was made. It has definitely had drawbacks, but there's at least a good argument that it was worthwhile.

    Along came a huge number of media player designers, all of whom looked at WinAmp and decided at the bitmapped interface was what made the thing successful. They started churning out all kinds of horiffic unusable media players that *did* catch the eye, and *did* get users to try them out...only to hit irritation with the interfaces. Media players pioneered spikes hanging off of windows.

    The other major example is graphic plugins, dating back to Kai's Power Tools. For those not familiar with the tool, KPT is a set of Photoshop plugins. It was written by Kai Krause, an extremely talented graphics programmer. He felt that using custom bitmapped widgets was a good idea. Again, his decision was somewhat arguable, but it let him showcase some of his software's effects, and more importantly, he did a reasonable job for someone going with an inconsistent interface -- he did a few things that would have been difficult with a conventional widget set. KPT had a tremendous functionality set, and succeeded wildly, allowing the company to grow, change names, and develop and acquire other software products like mad. The company continued to produce other outstanding products, also with bitmapped interfaces (with greater and lesser degrees of justification for their nonstandard interfaces. KPT Bryce is a notable example.

    Naturally, a number of other, less talented, Photoshop plugin development companies that were producing products that were not particularly price-competitive or feature competitive looked at KPT and said "Gee...KPT uses a bitmapped interface and is successful. That must be what we're missing." Over the next few years, a *flood* of inconsistent, bitmap-interfaced Photoshop plugins hit the market. These were, as a rule, less well-done than the original KPT, and were a complete pain in the ass for a set of people that mostly used Macs, and had traditionally had one of the most consistent user interfaces in the history of personal computing.

    Bitmapped, custom interfaces are almost always a bad idea.

    There was also an influx of CD-ROM based titles with bitmapped interfaces starting in the early CD-ROM days. Lots of low-budget titles, educational titles, etc. Macromedia Director played a major role in the proliferation of these. Again, a bitmapped interface added nothing to usability, and frequently exposed bugs. It took a few years, but eventually designers realized that users didn't *like* atrocious bitmapped interfaces, and stopped.

    Today, almost all games have a menu system that uses a nonstandard, bitmapped interface. Part of this is because they often have console ports, where there *is* no standard widget system, and part of it is because there's a perception that the customer *wants* a m

    1. Re:Beauty versus utility by Vaughn+Anderson · · Score: 4, Interesting
      Unfortunately, UI can also be an area that should *not* be consumer-driven.

      You are actually sorta wrong here. People don't ask for those ridiculous bubble-alien interfaces, they are often times shoved in their faces by over zealous graphic artists. (read MS media player, ugh I can't stand that thing anymore, I like version 6.4...) Though I do agree with the rest of your comments and think they are right in line with the reality of the end user.

      The absolute worst interfaces I have seen in my life are made by pure artists, and then the poor programmer has to make the thing work.

      I am a designer, artist and programmer. I have found my niche here, I design interfaces for about 1/3 of my job, I get hired just to do that at times. A couple of things I found are that -

      1. I have to force myself to keep things simple.

      2. The graphics have to amplify the use of the tools.

      3. You have to always put yourself in the position of the end user.

      These keys basically make my interfaces look like everyone elses out there except for some basic visual look and feel things. There is only so many places and so many ways you can make a button or a menu and have it be useable. My job ultimately comes down to dealing with custom interfaces for dealing very custom data. (not really like media players which are very common and a VCR style control can only be made so many ways)

      End user's scream for easy to use stuff. Graphic designers are impressed with _cool_ interfaces and tend not to consider useability, but ultimately get the job of UI design regardless of their qualifications for it.

      Programmers tend to not consider useability in the sense of where to put buttons/menus, what context to place them in or what to name them for end users.

      So outside of these two camps is where I have to sit. I have to argue with the management, the other designers and programmers to make it obvious to them that the users' need things these groups don't consider important.

      The values of the graphic designer are they make you feel good when you see and use the application. The value the programmer brings is that the application runs well and the controls work as they should. The value I bring as the UI designer is that I make sure everyone plays nice together to make something that an outside user will want to use, can use and ultimately doesn't have to be taught how to use, as it is intuitive.

      What the basis of inituitive _is_ though is a matter of a different debate.

  27. User Interfaces : The real issue ... by arashiakari · · Score: 2, Insightful

    It takes a LOT of work to make good user interfaces, and nearly all of that work is repetitive and boring. It is easy to create inconsistencies, too. Programmers who just want to work on core or library-type routines are a dime a dozen because they basically don't have to know much about the end use of the app, just the technical requirements of the toolkit they're writing. Sort these records, rip this data from a file into memory, pack these strings into this byte array, etc. They are generalized functions that get used over and over, so there is some satisfaction in perfecting them and a need for them to be optimized. UI programmers have to know as much as possible about the people using the program, the business model that the end users have (why are they using this feature/function?... what is the ultimate goal?), and the types of environments it gets deployed into. It puts more of a burden on their mind as they work.

    UI design on the other hand requires a TON of manual labor that cannot be done by anyone but a good programmer. You have to account for all the little things that a user just might do to your UI while maintaining the state of the form/program. That means coding responses to any number of potential events that might be fired instead of just letting the OS decide what will happen. UI design is frustrating and boring for most people because of this. If you have a form that has 60 fields on it spread over several tab pages and you have a status bar with an explanation of each field, you instantly have 120 callback functions, an enter and exit to and from each field to update that status line with that field's description and then to clear it. You have to write form field validator routines that check each field's data before packing it back into the database, issuing the right kind of error if the data is unacceptable. Heck, just the task of plugging all the database fields into the form elements can be painstaking for a form of moderate complexity.

    And all the code has to be consistent, clean, etc, so the next guy knows what is going on. To impliment ONE well-designed form can take days of uninterrupted programming time. Forms with many many fields just slow things down even more... halfway through the afternoon your mind is swimming in a sea of callbacks and field names. Debugging a form? Don't go there.

    I think basic "quality application interface programming," not even design, is the most underappriciated aspect of the complete software engineering task. If you had to pick just ONE THING to say, "We're going to make absolutely sure we don't **** this up." ... this would be it after (out of obvious necessity) the data engine and memory model.

    To make an analogy: The UI programming is like the Marine Corps (boring sweaty grunt work) like the "rest of the job" is to being an Air Force fighter pilot.

  28. Programmers aren't always the problem by frufry · · Score: 2, Insightful

    When developers design UIs there's always the problem that they know exactly how the system works and because of that they lose perspective on what makes sense to others. In my experience, though, that's not what most frequently causes bad designs. Our designs usually go astray because we don't choose the right audience. If you're building a web server, for instance, you can safely assume that anyone using the server's UI will have at least a decent mastery of software and how to use it (even if they know anything about web servers). Thus, not everything needs to be all wizarded-out.
    However, if you're building a new instant messaging client, for instance, perhaps you want to make sure the dumbest possible user, who can scarcely use a mouse, can use the software without trouble.
    Generally, the more you build something in the interest of the dumbest users, the more the UI suffers for more savvy users. So, assuming that no one can use a mouse, isn't always a good starting point.
    The key is to figure out who your target audience is, try to design for the vast majority of them (probably leaning a little towards the dumber ones), and perhaps decide on acceptable "casualties" for the few absolute dumbest of that range, in the interest of the rest.

  29. Alan Cooper said it best by Simon · · Score: 2, Insightful

    The phrase "computer literate user" really means the person has been hurt so many times that the scar tissue is thick enough so he no longer feels the pain.

    -- Alan Cooper, "The Inmates are Running the Asylum", 1999

    --
    Simon

  30. Re:Perspective, please? by stonecypher · · Score: 2, Insightful

    For non-text selections, backspace (on Windows, not Mac OS) should not delete selections. That's what the delete key is for.

    What are you talking about? Can you name one major application which behaves in this fashion?

    Both backspace and delete are removal keys. The difference is solely in the direction in which they remove, and when the block is pre-specified, the difference is moot.

    and feel like ridiculing users will somehow socially elevate them

    Speaking as a former tech support employee, I can firmly say that for me and my coworkers at the time, it was more an issue of catharsis. I've also been a telemarketer, and the flak I recieved as a technical support staffmember was far worse.

    The customer acts as if it's the ISP's fault that the phone company has hosed their phone line again. The customer acts as if it's the ISP's fault that little timmy has fux0red their modem settings again. The customer acts as if it's the ISP's fault that they've forgotten their password again.

    When I was tech support, I was one of two support monkies that I never saw reduced to tears in the course of about two years, and I came damned close more than once. I suspect you've no idea the sort of abuse that irate assholes subject tech support people to. So, when a user is shocked that the same thing that would happen in any application has happened here and can't be bothered to find and hit undo (I don't care what the AC said about it being a web application; undo works just fine in IE 3-6, Netscape 2-4 and Mozilla,) I think that the tech support crew is fully within their rights to be annoyed.

    For the sake of professionalism, this may not be shown to the user, which the poster was careful to be clear that they did not do. Perhaps you've just got a bias towards hating technical support. Of course, if you're an Earthlink customer, I understand wholeheartedly; I'm convinced that they actually go to significant effort to find the bottom of the barrel people available.

    I'd like to see a couple of said jackass tech support people be laughed at by the mechanic

    Not very in touch with pop culture, are we? It is a classic truism that the service industry is mistrusted, shat on, and that the customer defends their actions by presuming that the service industry members all do this, and that they had done it first is somehow implied. You've really never heard a story about getting screwed by a car mechanic? I'd be hard pressed to find a less damning example, except maybe a used car salesman.

    Hint: the services which get it the worst are the ones which people feel tied to without alternatives (utility monopolies especially,) the ones which cost the most (auto mechanics get it doubly because cars with failings often have other failings on the horizon, and the users which allow them to fail don't maintain well, leading to cascade failures which they blame on the mechanics,) and the ones they understand the least (plumbers and computer techs get this one a lot.)

    It's really about insecurity. As you enter a service industry, you find that the more the customer knows about their service (on the average) the less horrible they are to you. If you can explain a delay or a problem to them, they're generally much more tolerant. The people which are the worst are the huge clueless fucks, especially the ones which don't know that they're clueless fucks, doubly especially the ones which think they're something other than a clueless fuck. Do you get shat on by tech support a lot? Could this be a hint?

    (which they're unable to fix, despite the fix being a quick, five-minute change)

    I'm willing to bet you're a moderate quality amateur mechanic, hence the choice of looking down this particular nose. Can you replace your sink? Can you pull up your floorboards? Have you ever installed a ducted air conditioner? Can you plan a seeding cycle? This is the sort of arrogance which nearly every professional

    --
    StoneCypher is Full of BS
  31. Another great book: "Don't Make Me Think" by tchapin · · Score: 2, Informative
    It's web-focused, but a lot of the lessons apply to any domain. Check out Steve Krug's website. This book is totally awesome. Short, sweet, yet it packs a mental punch.

    UI design can be really difficult. A lot of the issues are in how the information / features / tools / whatever are organized in the application. Some call that information architecture, but I don't make that distinction. Another issue is that of labels & names.

    I am a professional UI Designer, currently working in telephony-based speech recognition. Very often, the "subject-matter experts" at my clients are too close to the issue and try to force their viewpoint on the application. One of my jobs is to convince them that users won't understand that sort of thing. Another is to try to make sense of the mish-mash of requirements for the application.

    All in all, it's challenging and fun work.

    Todd

    --
    -- !todd erases a red dot! I steal music on the internet.
  32. Targetted audiences versus general audiences by Watts · · Score: 2, Informative

    At a recent project review meeting, developers at my company listed the strengths of our development process. To my surprise, user interface design was mentioned as one of our stronger points. While I haven't been around long enough to see many projects, I definitely didn't believe this was the case.

    I think what has happened is that web applications have expanded the user base of our programs while lowering the training curve. Where we might have built an application for a specific group in the past and conducted training specific to their needs, we're now deploying web apps that are used by a much broader group that gets no specific training.

    You can get away with mediocre user interfaces when you're there to tell a group exactly how it works (and they pass on that information), but if your work needs to be quickly understood by a broad base, then usability is a necessity.

  33. as a software developer... by mrsbrisby · · Score: 2, Informative

    it's hideous to keep hearing about how programmers cannot possibly design good, clean, consistant user interfaces. i have a hard time finding a case where it's a non-engineer that has ever in the history of time designed and developed a consistant and usable interface.

    It's safe to say that non-artists have a hard time "drawing" things- but the widgets themselves must be _designed_ by an engineer. usually, the best looking, and best feeling interfaces are those built with constant feedback between artists and engineers.

    So I place the precarious difference in what it means to design, versus what it means to draw.

    I can't draw a straight line with a ruler, but the software I have built has a user-interface that is generally approachable, but always usable.

    Part of the engineers job is to decide where options, already categorized, will go- by deciding what those categories go, and where the user will need to find them. The engineer can usually sit back and "think" as if they have never seen this interface before, and any engineer that will actually say that labelling a button "Func2" just to save space is actually good UI isn't a proper engineer at all.

    But while engineers do like consistancy, and while they can appreciate approachabilitiy (though to reiterate: they may need prodding to get it there) their first goal is to make it usable. That means that after the user _already knows_ where every button can be found and what every function is, they actually feel comfortable using it.

    This is a scary thing; the rest of the world doesn't seem to think "usability" means this at all. And they don't otherwise have a word for "approachability", and still somehow all three are intermingled with consistancy into one umbrella of user friendlyness.

    Many engineers like to solve this problem with configurability- to make it possible to change every behavior of the software (that they think) possible, so that users can find their own usable system.

    The problem is that nobody but an aspiring engineer or better can do that.

    And if nobody but an engineer can actually define (and therefore design) the usability, and if clearly usability is paramount in a programs, well, use, then it should not only be obvious and apparent, but you will grin widely when you notice that not only are engineers the best user-interface designers, they are the only people who can make it work.

    Apple computer is often cited as an example of consistancy (well, except for their cross-platform offerings) but do you honestly think it was the artist that did anything but decide what a slider should _look like_? Not that a slider was the best tool, or that "some kind" of gauge was necessary, but find an artist that does this, and I'll start calling them an engineer.

    Well, not now anyway... Almost everyone has seen a slider, so let's change that above examine to be a quokulfork. Non-engineers, your challenge is to decide what the quokulfork is, and since you can already draw it, do that, and decide how it works, and why it's necessary.

    I mean, the quokulfork: the most needed UI element.

    You can't think we've thought of all of them. After all, how did Macintosh go so long without a slider widget?

  34. Krug's book a MUST READ by iSwitched · · Score: 2, Insightful

    Just a quick note to add that I too have Steve Krug's "Don't make me think" on my top shelf. This book is about sensible web design, but many of it's principles, including the concepts of "Usability Testing on 10 cents a Day" apply to any GUI design project.

    As a side note, my whole career I've pretty much specialized in putting GUIs on things -- I haven't stopped laughing at some of the posts in this thread since I started reading it -- If the sum of slashdot posts is any indication, GUI design is really totally misunderstood by the average developer.

    --
    "That naive cube! How long must I suffer this!" --Sheldon J. Plankton
  35. or just copy apple by Aqua+OS+X · · Score: 2, Funny

    Coping Apple's interface designs seems to work well for folks who are too cheep to hire anyone that knows anything about information architecture or GUI design.

    I advise doing that. :p

    --
    "Things are more moderner than before- bigger, and yet smaller- it's computers-- San Dimas High School football RULES!"
  36. Re:US naming conventions by Phil+Gregory · · Score: 2, Interesting
    And I do remember hearing that anecodete about the renaming, but have no idea where.

    The front of The Design of Everyday Things tells the story of the renaming of the book. I can't find the text of the intro anywhere on the web (via googling for specific phrases) so:

    When Doubleday/Currency approached me about publishing the paperback version of this book, the editors also said, "But of course the title will have to be changed." Title changed? I was horrified. But I decided to follow my own advice and do some research on readers. I discovered that while the academic community liked the title and its cleverness, the business community did not. In fact, businesses often ignored the book because the title sent the wrong message. Bookstores placed the book in their psychology sections (along with books on sex, love, and self-help). The final nail in the title's coffin came when I was asked to talk to a group of senior executives of a leading manufacturing company. The person who introduced me to the audience praised the book, damned the title, and asked his colleagues to read the book despite the title.

    --Phil (If you haven't read this book, you should do so now. It's that good.)
    --
    355/113 -- Not the famous irrational number PI, but an incredible simulation!