×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

User Interface Design for Programmers

timothy posted more than 10 years ago | from the but-programmers-don't-need-interfaces dept.

GUI 331

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.

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.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

331 comments

Boogiewoogie (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7104368)

Humpadump post a pump.

-DT

$9 cheaper (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#7104376)

Ref: Amazon has this book for $9 less than bn. [amazon.com]
Spend $4 more and get free shipping.

Re:$9 cheaper (0)

Anonymous Coward | more than 10 years ago | (#7104389)

Quit posting Amazon referral links you dingbat!

Re:$9 cheaper (0)

Anonymous Coward | more than 10 years ago | (#7104398)

I'd rather spend the extra $9 than give a scum-sucking troll like you a cut.

Re:$9 cheaper (3, Informative)

SoCalChris (573049) | more than 10 years ago | (#7104415)

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 [bookpool.com]

Re:$9 cheaper (0)

Anonymous Coward | more than 10 years ago | (#7104492)

So instead of successful and high-flying Amazon you would rather have the patent granted to some Joe Schmoe company that is about to go bankrupt and brings in lawyers to "capitalize on its intellectual property"?

The patent would be granted, it's just the matter of who it is granted to, so far there is nothing in Amazon practice to suspect them of abuse.

Re:$9 cheaper (0)

Anonymous Coward | more than 10 years ago | (#7104577)

I just don't want to support a company that is so blatently abusing the system. I don't think patent's like Amazon's should even be granted in the first place, but that is a whole different discussion.

When it comes to buying books online, I'm always going to try to avoid Amazon, and give my business to the company who is at least not being an ass about how they do business.

On top of that, Bookpool is cheaper than Amazon, and I've always had excellent service from them.

Easiest thing is... (1, Funny)

SoCalChris (573049) | more than 10 years ago | (#7104381)

To just put Clippy, or any other Microsoft Agent [microsoft.com] into your app. And tyo make your app really cool, make sure you can't disable it.

Re:Easiest thing is... (2, Funny)

mopslik (688435) | more than 10 years ago | (#7104421)

make sure you can't disable it

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

Re:Easiest thing is... (0)

Overly Critical Guy (663429) | more than 10 years ago | (#7104485)

You've been able to disable Clippy from the start. He's not even on by default anymore.

Re:Easiest thing is... (-1)

Anonymous Coward | more than 10 years ago | (#7104525)

Shut up. I don't like you. Quit being a pedantic pain in the ass. I know, IHBT IHL IWHAND. FU, ESAD, SAFIT.

Re:Easiest thing is... (2, Funny)

UnassumingLocalGuy (660007) | more than 10 years ago | (#7104489)

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 [muohio.edu]). 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.

Re:Easiest thing is... (4, Funny)

darkov (261309) | more than 10 years ago | (#7104594)

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?

Re:Easiest thing is... (0)

garysears (628452) | more than 10 years ago | (#7104615)

Oh My God.

do you WANT people to hunt you down and play loanshark upon your person?

Ye gods and little kittens.

Of course, no jury of their peers in the world would ever convict them.

Re:Easiest thing is... (2, Interesting)

Miguel de Icaza (660439) | more than 10 years ago | (#7104634)

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.

fp (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7104382)

fp? fp, fp, its fp to fp we fp. fp fp fp fp... yep!

nope (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7104414)

harharhar, try again luser

Dunno 'bout everyone else (4, Insightful)

sielwolf (246764) | more than 10 years ago | (#7104386)

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.

Re:Dunno 'bout everyone else (4, Insightful)

DrWhizBang (5333) | more than 10 years ago | (#7104554)

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 ;-)

Re:Dunno 'bout everyone else (-1)

Anonymous Coward | more than 10 years ago | (#7104635)

gtk IS ugly.
PS - so is your mom.

creative vs logical (1)

bizcoach (640439) | more than 10 years ago | (#7104668)

Are we supposed to assume that creative and logical are now mutually exclusive?

The human thought process is normally to some degree creative and to some degree logial.

For some tasks, too much logical thinking with too little creativity will give bad results.

The point here is that with UI design, it's different: Any significant amount of creativity in your UI design means that the UI is different from what prople are used to, and that will generally reduce usability. To create a decent UI, you need logical thinking, and lots of it.

The Main Problem with Design (3, Funny)

baldass_newbie (136609) | more than 10 years ago | (#7104393)

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.

Re:The Main Problem with Design (1, Insightful)

infochuck (468115) | more than 10 years ago | (#7104438)

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.


Too bad your app was designed by amateurs, and didn't have an "undo" feature, eh?

Re:The Main Problem with Design (0, Flamebait)

baldass_newbie (136609) | more than 10 years ago | (#7104496)

It's a Web App. We're constrained by the browser.
Insightful comment, though.

Re:The Main Problem with Design (1)

DoraLives (622001) | more than 10 years ago | (#7104647)

We're constrained by the browser.

So ok, enough with the suspense. WHAT browser?

Re:The Main Problem with Design (1)

infochuck (468115) | more than 10 years ago | (#7104692)

Hey, yeah! Moz and IE both have undo - though in IE, it doesn't (that I can find) appear in the menus - you just have to trust in Ctrl-Z's mighty kung-fu.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104682)

Uh, browser text boxes have undo.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104702)

I know that and you know that.
However, the user obviously does not know that.

Re:The Main Problem with Design (1)

CableModemSniper (556285) | more than 10 years ago | (#7104442)

Ctrl+Z?

Re:The Main Problem with Design (2, Funny)

Anonymous Coward | more than 10 years ago | (#7104532)

What? Why would you want to suspend the process?

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104588)

It's a Web App. We're constrained by the browser.
Insightful comment, though.

Re:The Main Problem with Design (1)

kisrael (134664) | more than 10 years ago | (#7104448)

Err, did you suggest at least trying Ctrl-Z or right-click "Undo"?

I'm surprised how many programs that's pretty effective for. I've corrected many the errant "first ctrl-a ... now... whoops" with that.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104624)

It's a Web App. We're constrained by the browser.
Insightful comment, though.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104449)

So your job title/description includes:

Customer Suppression Level I
- Actively suppress those who - at that moment - are not able to take your job away from you.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104470)

A couple of years ago, the office airhead came running into our room in a total panic, on the verge of tears. She said her computer crashed, so she turned it off and it wasn't doing anything now. We asked her if she turned it back on. She got a momentary look of brilliance on her face, exclaimed "Oh!" and ran back to her cube.

F'ing idiots is an understatement. I can't complain though, it's job security.

Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104699)

the last time I met a girl that stupid, I told her I was an undercover cop, whipped out my dick and told her it was a breathalyzer test.


Of course, afterwards, her wig fell off and i realized it was Michael Sims.

Re:The Main Problem with Design (1, Troll)

Croaker (10633) | more than 10 years ago | (#7104502)

'Feel bad' was about all we could come up with. 'Laugh' was another, but we didn't think she'd like that.

The problem with developers are they are all so fucking lazy.



Don't you have an undo function? Does the undo function not actually undo what she did? If not, why not?



I am often amused by developers who spend one half of their time bitching at how users are so fucking stupid, and the other half of the time bitching that Microsoft sucks so bad because their APIs are a mess, their tools often fuck up, and the error messages they generate are useless. I.e. exactly what their own customers are saying about their own products.


Re:The Main Problem with Design (0)

Anonymous Coward | more than 10 years ago | (#7104654)

Once again, it's a Web App. We're constrained by the browser.
Insightful comment, though.

Re:The Main Problem with Design (1)

bizcoach (640439) | more than 10 years ago | (#7104566)

Is that users are fucking idiots.

That isn't true - at least for most programs it isn't true - most programs are written for people who are tring to have fun, or who are trying to accomplish some task. The assumption "users are idiots" is just as wrong as assuming the user's thought process to be in any way similar to how the programmer thinks.

The only way to create a program which is suitable for use by others is to watch others try to use the program. That, and nothing else, gives an understanding of how users think.

Perspective, please? (1)

0x0d0a (568518) | more than 10 years ago | (#7104619)

Some user just posted an item how she highlighted her work and then hit 'backspace' and deleted everything.

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 ridiculing users will somehow socially elevate them. I'd like to see a couple of said jackass tech support people be laughed at by the mechanic when they bring in their car (which they're unable to fix, despite the fix being a quick, five-minute change) or their tax preparer when they bring in their taxes. Or their doctor when they come in with an obviously diagnosable case.

How would you feel if there was a User Friendly starring doctors? "Doctor, I feel sick and my legs are swollen." "Let's see...you're currently taking hyponeophenothol for depression. Did you take any drugs in the last day?" "Uh, yeah, some muscle relaxants." [Picture of doctor smacking head in frusteration.] "Well, the best thing to do would be to take 300 mG of cyanide. As soon as possible." "Okay. [click]"

This is pretty much the template of a Greg-user-support cartoon on UF, but with medical workers instead of tech workers. Less funny when you're on the recieving end, portrayed as the "stupid user" who isn't conversant with the specialized field involved, isn't it?

Re:Perspective, please? (0)

Anonymous Coward | more than 10 years ago | (#7104688)

Yet again, it's a Web App. We're constrained by the browser.
Insightful comment, though.

In my experience... (0, Offtopic)

kafka93 (243640) | more than 10 years ago | (#7104401)

.. many developers set out quite deliberately to test the theory that the users "could care less".

English: it's not *that* difficult a language...

Re:In my experience... (1)

proj_2501 (78149) | more than 10 years ago | (#7104462)

could care less = caring more than the minimum possible
couldn't care less = caring exactly the minimum possible

so which one do you actually mean?

Re:In my experience... (1)

IMarvinTPA (104941) | more than 10 years ago | (#7104669)

It is my understanding that "could care less" is said with sarcasm while "couldn't care less" is said with contempt.

At least, that's how I keep my sanity when people say it without the "not".

Re:In my experience... (1)

fiannaFailMan (702447) | more than 10 years ago | (#7104575)

"Could care less" is the American equivalent of the British "Couldn't care less." I thought it was a typo the first time I saw it too.

Re:In my experience... (1)

kafka93 (243640) | more than 10 years ago | (#7104606)

It's only an "American equivalent" for those Americans too lazy to think/speak properly. I know many Americans who are appalled by "could care less" - and rightly so, because it's a stupid thing to say.

My evening (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7104403)

Stayed at home all day and just a moment ago ordered two pizzas for an evening snack.

I'll eat them and then lie sated on the couch and watch TV and/or Simpsons DVDs.

Then I'll log on, download some asian bondage porn from the usenet (does anyone know where to get bondage porn involving asian nuns?) and masturbate to it.

After that I'll be ready to go to sleep so that I can wake up refreshed to yet another completely useless day full of junk food, porn, beer and jerking off.

Re:My evening (1)

HotNeedleOfInquiry (598897) | more than 10 years ago | (#7104472)

So why not hang out at fuckedcompany.com instead of slashdot? Sounds more like your crowd over there.

Re:My evening (0)

Anonymous Coward | more than 10 years ago | (#7104482)

You mean they're into the asian nun bondage scene?

Re:My evening (0)

Anonymous Coward | more than 10 years ago | (#7104728)

missa agree!

Re:My evening (0)

Anonymous Coward | more than 10 years ago | (#7104509)

Dude, you were almost funny. If you had just put in a line at the end, something like "Unemployment is so great" or "Thanks for fucking the economy, Bush!" Then that would have been really funny. As it is, its just sad. Good luck next time (and finding the asian nuns).

programmers think they know UI (3, Insightful)

kisrael (134664) | more than 10 years ago | (#7104417)

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.

Re:programmers think they know UI (5, Funny)

iapetus (24050) | more than 10 years ago | (#7104460)

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

Re:programmers think they know UI (2, Funny)

b-baggins (610215) | more than 10 years ago | (#7104531)

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

Re:programmers think they know UI (2, Interesting)

kisrael (134664) | more than 10 years ago | (#7104614)

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

Re:programmers think they know UI (4, Interesting)

banky (9941) | more than 10 years ago | (#7104529)

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

Re:programmers think they know UI (1)

kisrael (134664) | more than 10 years ago | (#7104690)

yeah, I think you nailed re: "power users".

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 coping with this kind of problem. It seems clever and sometimes works alright, but menus that are never the same twice can be annoying.

This is, actually, my achelles heel (-1, Flamebait)

grasshoppa (657393) | more than 10 years ago | (#7104428)

This has long been my one failing when programming, the interface. It works, I make sure of that, and traditionally, my code has far fewer bugs than the industry average, and reading my code is both simple and elegant. But the user interface has always been the part of it that I simply can not do.

I will have to pick up this book, if for no other reason that to make an attempt at figuring it out.

Re:This is, actually, my achelles heel (0)

Anonymous Coward | more than 10 years ago | (#7104685)

I applaud your honesty. Really. (Assuming you're not just bragging about your mad coding skillz.)

Before everyone gets on their high horse (2, Insightful)

Anonymous Coward | more than 10 years ago | (#7104431)

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

And programmers aren't creative people? (1)

tjstork (137384) | more than 10 years ago | (#7104445)


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?

Re:And programmers aren't creative people? (-1)

Anonymous Coward | more than 10 years ago | (#7104656)

> Software is the highest form of art.

Holy crap, dude, get off your high horse!!!
Pocket PC checkers is *not* high art.

Book Missed the Point? (1)

goldspider (445116) | more than 10 years ago | (#7104464)

"Aimed at programmers who don't know much about user interface design and think it is something to fear"

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.

Re:Book Missed the Point? (1, Informative)

Anonymous Coward | more than 10 years ago | (#7104539)

The book you're looking for is "The Inmates Are Running The Asylum", by Alan Cooper.

Sun is DEAD!! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#7104469)

Sun had previously reported a $12 million profit for the quarter, but in a regulatory filing with the U.S. Securities and Exchange Commission Monday it revised those results. The company is now reporting a loss for the quarter of $1.039 billion, or $0.32 per share.

source [infoworld.com]

Oh lord, burn this book! (3, Insightful)

mveloso (325617) | more than 10 years ago | (#7104480)

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.

Re:Oh lord, burn this book! (0)

Anonymous Coward | more than 10 years ago | (#7104592)

Too complicated to handle? Are you a moron? How is it possible for the interface to be more complicated to create than the code it accesses. Sure it is reasonable to say that programmers probably are not generally good at creating the UI for their application, but that it is because it is too complicated? I think not. More likely it is because they have a deeper understanding of the code and what is going on inside. Therefore it is more difficult for them to identify with a user who does not have the insight into the code and so the interface does not work as it should.

Re:Oh lord, burn this book! (1)

javelinco (652113) | more than 10 years ago | (#7104709)

I really hope you are not a programmer. If you are, please never apply for any job where I have anything to do with the final product. Thanks!

Re:Oh lord, burn this book! (1)

0x0d0a (568518) | more than 10 years ago | (#7104731)

Nobody knows how many lives have been lost (measured in hours of frustration) by bad programmer-designed interfaces?

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 very best non-Apple examples of correct classic Mac OS user design. Many users would find the program too complicated, and prefer a much simpler interface.

Just listen to feedback (4, Insightful)

eln (21727) | more than 10 years ago | (#7104484)

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.

What if grandma isn't the target? (2, Insightful)

bluGill (862) | more than 10 years ago | (#7104721)

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.

My experience (1)

worst_name_ever (633374) | more than 10 years ago | (#7104491)

Aimed at programmers who don't know much about user interface design and think it is something to fear

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 (5, Funny)

crazyphilman (609923) | more than 10 years ago | (#7104510)

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!

Increasingly important subject (5, Interesting)

fiannaFailMan (702447) | more than 10 years ago | (#7104526)

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. [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 (1)

handy_vandal (606174) | more than 10 years ago | (#7104530)

... the basic principles of good user interface design are logical and not based on some mysterious, indefinable magic.

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.

Joel rules (1)

OpieTaylor (144173) | more than 10 years ago | (#7104550)

We use Spolsky's FogBugz product for bug-tracking, and this guy does it right. The interface is clean, simple, and does exactly what you need.

I've "trained" about a half dozen people on it--the training consisted of "here's the URL, go to it". And they all got it right away.

If the book is as good as his product, then its a Buy.

Re:Joel rules (1)

__past__ (542467) | more than 10 years ago | (#7104621)

I had to use VBA in Excel, and I can confirm that not everything he does is that good...

In many cases, it simply doesn't matter. (2, Insightful)

kafka93 (243640) | more than 10 years ago | (#7104580)

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.

This is retarded. (0)

Anonymous Coward | more than 10 years ago | (#7104672)

It's people like you what keep computers restricted to losers who have hours of time to figure out how to use their command line interfaces.

three core concepts in ui design (1)

Speare (84249) | more than 10 years ago | (#7104582)

There are three concepts which really need to sink into the head of anyone trying to develop a good user interface on any kind of tool, device or application. * know the users their goals * don't make the user feel stupid * provide rich feedback so the user is confident Any application which merely connects APIs to Widgets will just fail horribly. The GUI isn't intended to expose the implementation to direct, marionette-style control. The GUI is there to understand the user's intentions and then achieve the desired results with the internal tools available.

"Simple, quick and casual" is not always useful (1)

HarmlessScenery (225014) | more than 10 years ago | (#7104604)

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 pick the *wrong* users or watch users that haven't been fully trained on the system, "simple, quick, and casual usability testing" can easily lead to a large number of wasteful, unnecessary changes disguised as "useful improvements".

If users complain that they can't use the system because some functionality is 'missing' - and it turns out they haven't worked out how to use a scrollbar - do you spend significant time and effort redesigning the interface, or train the users to drive it properly?

You *need* larger scale, controlled tests to determine if a problem is *significant* before making any changes. Get it so that 90% can use it with no problems and give the rest more training - that's a more sensible approach than trying to make every application useable by the average brain donor.

The "quick, simple and casual" approach might be a good idea to get a feel as to where to target the main testing - but using it to drive useability requirements is probably not a great move.

User Interface Design? (0)

hackwrench (573697) | more than 10 years ago | (#7104627)

That's crazy talk. The user interface is what I have once I've gotten the computer to do what I want.

Joyous Joel (2, Funny)

An Anonymous Hero (443895) | more than 10 years ago | (#7104652)

(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!

What you really want... (2, Interesting)

IceFox (18179) | more than 10 years ago | (#7104658)

What you really want it GUI Bloopers [amazon.com]. 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

Fact. (0)

Anonymous Coward | more than 10 years ago | (#7104691)


Microsoft's Human Interface Design group settled on blue (out of the limited colors available on the text console) as the color for the infamous "Screen of Death" as it was a more calming than other colors such as red.

Test subjects were reported to feel angry, agitated and frustrated when red was used.

It was known that Windows had frequent crashes, the choice of blue was to help prevent "office rage".

I completely identify... (1)

BurKaZoiD (611246) | more than 10 years ago | (#7104711)

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

I completely identify with this statement. I loathe user interface design because, quite frankly, I don't think I have an artistic bone in my body. As a consequence, I've always concentrated on component as well as application engine design. If I were an artist AND a programmer, shit, I'd be making video games or something then, instead of writing business apps for a living.

we don't need no stinking interface (0)

Anonymous Coward | more than 10 years ago | (#7104725)

what's wrong with $
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...