User Interface Design for Programmers 331
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.
Dunno 'bout everyone else (Score:5, Insightful)
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.
Re:Dunno 'bout everyone else (Score:5, Insightful)
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
Beauty versus utility (Score:5, Insightful)
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
Re:Beauty versus utility (Score:2)
Re:Beauty versus utility (Score:5, Interesting)
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.
Re:Dunno 'bout everyone else (Score:2)
Considering that I often do agree with Joel's commentary on aspects of programming and programmer thinking (for example his concept of leaky abstractions [joelonsoftware.com]) I am wondering if it was something he was saying for effect that got took out of context.
OTOH Joel is quite aware that not all programmers are equal. So it could be that this new book is aimed at non-creative types who want to make t
Re:Dunno 'bout everyone else (Score:5, Interesting)
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.
Re:US naming conventions (Score:3, Interesting)
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:
The Main Problem with Design (Score:3, Funny)
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.
Re:The Main Problem with Design (Score:2)
I'm surprised how many programs that's pretty effective for. I've corrected many the errant "first ctrl-a
Re:The Main Problem with Design (Score:2)
Insightful comment, though.
Ah, yeah. Although one level Ctrl-Z does work in textareas on IE at least, once you've gone past the starting page you're often screwed.
Actually, I tend to get screwed a lot by stuff like Slashdot's "wait 2 minutes" limiter...I don't mind waiting so much, but I think the submissions page has "No Cache" or something set, so everything I typed has gone away. I've had a similar problem elsewhere; one hacky solution (when I'm thinki
Perspective, please? (Score:2)
First, I assume that this is text that you're talking about. For non-text selections, backspace (on Windows, not Mac OS) should not delete selections. That's what the delete key is for.
If it *is* a text selection, you should be providing an undo feature.
The main problem is that a not insignificant number of people in tech support (which is admittedly not a fun job) are jackasses and feel like rid
Re:Perspective, please? (Score:3, Insightful)
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 fir
No, some just don't pay attention (Score:2)
The problem I generally see is that some users don't pay attention or just don't care, or just like to gripe.
Case and point: I do a lot of web-based tool work at my job. I added a paricular feature recently. I explained this feature at a conference call with the group that was to use the feature. I then explained the feature AGAIN in a summary email about the changes I was going to install the coming week. The form has online help explaining the feature and how to use it s
Idiots for Dummies (Score:2)
Ergonomica Auctorita
Re:The Main Problem with Design (Score:2, Funny)
Re:The Main Problem with Design (Score:2)
Re:The Main Problem with Design (Score:2)
So ok, enough with the suspense. WHAT browser?
So which browser was it? (Score:2)
I've just done a quick test: I created a page with a textarea element (multi-line text box), served it up from one of my machines, typed and selected some text and hit backspace, then Ctrl-Z (Windows) / Command-Z (Mac). I got the following results:
So if your punters are using IE6 on Windows, they c
Re:So which browser was it? (Score:2)
Wonderful. They can't even traverse an empty data stucture successfully, and then they wonder why they get slagged off.
Re:The Main Problem with Design (Score:2)
This statement is why data entry applications just shouldn't be HTML forms-based. That puts too many constraints on you to design a good user interface. There are alternatives. At work, the HR people in our department use two personnel systems:
Agreed (Score:3, Insightful)
programmers think they know UI (Score:4, Insightful)
(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.
Re:programmers think they know UI (Score:5, Funny)
Re:programmers think they know UI (Score:3, Funny)
Re:programmers think they know UI (Score:3, Interesting)
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 t
Re:programmers think they know UI (Score:4, Insightful)
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.
Re:programmers think they know UI (Score:5, Informative)
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.
Re:programmers think they know UI (Score:2)
In my app I display about 1,000 genes. At any given time a user can right-click and open up a corresponding web-page. Does that mean that I want 1,000 windows? No. It means that the user should have the choice of getting 1,000 windows, or keeep using the same one, which you have postioned to be readable next to your app.
Re:programmers think they know UI (Score:5, Interesting)
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).
Re:programmers think they know UI (Score:2)
It's a non-trivial problem:
* show too much, newbies get scared
* hide it too well, and medium-experienced folk will never learn about it and even power users might curse you
And so many "power configurations" are so poorly explained. More than half the time context sensitive help just lists the name of the command, or doesn't give any context as to why you would want to use it.
I have very mixed opinoins about Window's "make unusued menu options go away" way of co
Re:programmers think they know UI (Score:5, Insightful)
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 [breadbox.com], 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.)
Re:programmers think they know UI (Score:5, Interesting)
On a side note, I've come to realize that Microsoft only makes products for 2.1 audiences:
Re:programmers think they know UI (Score:2)
Before everyone gets on their high horse (Score:2, Insightful)
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...
Re:Before everyone gets on their high horse (Score:5, Funny)
in windows the ui designers did the program..
hmm.
Hmm, I think KDE is pretty good... (Score:2)
Re:Before everyone gets on their high horse (Score:5, Insightful)
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.
Re:Before everyone gets on their high horse (Score:3, Insightful)
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 numbe
And programmers aren't creative people? (Score:2)
What's up with that! Software is the highest form of art. It has everything every other medium has plus, it is interactive. If that's not creative, then what is?
Book Missed the Point? (Score:2)
I don't really think a lot of good programmers fear UI design as much as they find it irrelevant.
If this book makes a good case as to WHY good UI development skills are important, than I think we'd have a winner.
Oh lord, burn this book! (Score:4, Insightful)
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.
Re:Oh lord, burn this book! (Score:2)
Of course, then people talk about how great MS HCI-designed interfaces are and igore the Start button as a whole, the Office XP uses-different-widgets-from Windows 2000-uses-different-widgets from Windows 95.
They're just used to it. There are damn few really well done user interfaces, and a huge amount depends on a given user's background and biases. I consider Anarchie to be one of the v
Just listen to feedback (Score:5, Insightful)
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.
What if grandma isn't the target? (Score:3, 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 tas
Re:What if grandma isn't the target? (Score:5, Informative)
Contradicting feedback (Score:4, Insightful)
I's happened more than once that users contradict each other.
Re:Contradicting feedback (Score:2)
Re:Contradicting feedback (Score:2)
I'm definitely in the "less options!" group, and I think one important thing is to consider if everything really has to be an option, or if the program can figure it out itself. Not sure how that applies to something l
Re:Contradicting feedback (Score:5, Insightful)
'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
Re:Just listen to feedback (Score:2)
Oh, I don't know about that kind of extreme. I would say there is a threshold for your audience. You can only hope to get it right for the vast majority of people. Some people are unqualified for tasks. While UI design is certainly about getting it right as much as possible, you're always going
Re:Just listen to feedback (Score:2)
try before you buy (Score:4, Informative)
My experience (Score:2)
I've always found it to be somewhat the reverse: many programmers, most particularly those involved in the open source community, seem to view user interface design as something that enables them to fill the user with fear.
Or at least that's how it seems based on using any number of free apps with terrible GUIs. Maybe there is a UI design guide for sadists too.
Everything I know about UI design, I learned from (Score:5, Funny)
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!
Re:Everything I know about UI design, I learned fr (Score:2)
Increasingly important subject (Score:5, Interesting)
"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. [amazon.com] 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.
Logic: Science and Art (Score:2)
Logic is an art -- as much an art as a science. The internal structure of logic is the science. Knowing where and how to apply logic, that's art.
Good interface design requires both: the rigors of logic combined with the humanity of art.
Online version on Joel's site (Score:3, Informative)
Good UI design is easy (Score:5, Funny)
In many cases, it simply doesn't matter. (Score:3, Insightful)
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.
Re:In many cases, it simply doesn't matter. (Score:4, Insightful)
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.
Re:In many cases, it simply doesn't matter. (Score:2)
Re:In many cases, it simply doesn't matter. (Score:2)
Re:In many cases, it simply doesn't matter. (Score:5, Insightful)
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
Alan Cooper said it best (Score:3, Insightful)
--
Simon
three core concepts in ui design (Score:2)
Joyous Joel (Score:2, Funny)
What you really want... (Score:3, Interesting)
Benjamin Meyer
Re:What you really want... (Score:2, Interesting)
The name GUI Bloopers made me think of this [asktog.com].
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.
Aim at the wrong target and a hit is useless! (Score:3, 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.
Fear? I think not... (Score:2)
I don't think people necessarily fear UI design so much as they see it as just so much scut work that needs to be done. It tends to be a pain in the ass to get all of the widgets lined up nicely and controlling the bits of your program that they're supposed to control. A decent IDE helps lessen the pain somewhat, but it's still not as fun as coding the parts of your program that get the real work done
The importance of JAD (Score:2)
Spolsky seems to have a good grasp on the idea of Joint Application Development: you have to sit down with the users and ask them how best to make your software help them do their job. It is much more important to have software whose process model is intuitively obvious to your user than anything about how it lo
worst interface in games (Score:2)
Many developers insist using just 2 different neutral colors for Yes/no, and no real indication of which color means "yes, I choose this one!" compared to "no, I don't choose this one". The result? It's a toss up.
One nice way of doing it is to darken the option you didn't choose. Don't use red and green(maybe modeled after traffic semaphores) as toggle colors.
Example of bad UI (Score:4, Interesting)
* 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?
my own experience (Score:2)
Best practice (Score:2)
The worst crime is to be wierd just for the sake of being wierd. Proximtron and Spybot are offenders here.
UI design has the same challenges as programming (Score:2)
- Keep it simple.
- Don't reinvent the wheel; reuse what has already been done (eg standard dialogue boxes and conventions).
- Don't create many slightly-different ways to accomplish the same thing; provide a few simple and obvious primitives that are easy to use together.
Where this may fall down is in not understanding how users think, although many programmers
Re:UI design has the same challenges as programmin (Score:2)
-Every design has trade-offs. Which design to use depends on the situation.
Ergonomica Auctorita
In-progress testing is too late (Score:2)
If you wait until the software is in progess before you show it to users for testing, you're too late. By the time you have front-end stuff to show people, developers have already invested a lot of time, and any changes will have to fight against the momentum of the project. I know, because I've seen it time and again, at numerous companies. I've seen this happen in small shops doing $10-50K jobs, and I've seen it on $3+
Design Does Matter, But Designers Should Do It (Score:3, Insightful)
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.
User Interfaces : The real issue ... (Score:2, Insightful)
"Programming as if People Mattered" (Score:2)
User interface design is not GUI design (Score:2)
A key to user interface design is "you should never have to tell the computer something it already knows". That's from the old Mac interface guidelines.
Never ask the user to find something the program can find. The user should have to input a data item no more than once, ever. And this doesn't mean the user has to "register" to buy from your website, even if the "marketing" people want that.
Targetted audiences versus general audiences (Score:3, Informative)
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.
Re:$9 cheaper (Score:4, Informative)
http://www.bookpool.com/.x/ejmrmq9fa6/sm/18931159
Re:Easiest thing is... (Score:2, Funny)
make sure you can't disable it
I think that crosses the line from "UI testing" to "hardware durability" testing.
Re:Easiest thing is... (Score:2, Funny)
Re:Easiest thing is... (Score:5, Funny)
Re:Easiest thing is... (Score:2, Interesting)
I have even been thinking about how to make a framework for guessing what the user is doing in GNOME.
Re:Easiest thing is... (Score:2)
You can hook it up to mIRC, and hearing Merlin swear in a Stephen Hawking stylee is great entertainment for a few minutes.
or just copy apple (Score:3, Funny)
I advise doing that.
Re:In my experience... (Score:2)
couldn't care less = caring exactly the minimum possible
so which one do you actually mean?
Re:In my experience... (Score:2)
Mod up parent (Score:2)
Re:In my experience... (Score:2)
Hmmmm...this is off-topic? Pretty UIs = Good. Ugly UIs = Bad
Re:In my experience... (Score:2)
Good work with the apostrophe there.
I would have liked to have seen a comma after "Damn", and three dots to the ellipsis... but other than that, excellent.
(Now somebody can tell me I'm wrong to have a space after my ellipsis... sigh :-)
Re:My evening (Score:2)
Re:Joel rules (Score:2)
Re:"Simple, quick and casual" is not always useful (Score:2)
You're missing another point, though, with your claim that "a user's mistake may be the lack of training": namely, that all users start out as newbies, and most users never progress beyond that level. If you spot newbie pr