Most programmers' fear of user interface (UI) programming comes from their fear of doing UI design. They think that UI design is like graphic design—the mysterious process by which creative, latte-drinking, all-black-wearing people produce cool-looking, artistic pieces. Most programmers see themselves as analytic, logical thinkers instead—strong at reasoning, weak on artistic judgment, and incapable of doing UI design. In this brilliantly readable book, author Joel Spolsky proposes simple, logical rules that can be applied without any artistic talent to improve any user interface, from traditional GUI applications to websites to consumer electronics. Spolsky's primary axiom, the importance of bringing the program model in line with the user model, is both rational and simple. In a fun and entertaining way, Spolky makes user interface design easy for programmers to grasp. After reading User Interface Design for Programmers , you'll know how to design interfaces with the user in mind. You'll learn the important principles that underlie all good UI design, and you'll learn how to perform usability testing that works.
This funny, slim, slightly outdated volume is a must-read for software developers. It addresses the basis of user-centered design: users aren't programmers; users will spend a few seconds interacting with something you've been living and breathing for months; users don't want to think or be surprised. It offers some ideas for turning those insights into UI, most of them very basic. It uses 90's-era software you're probably familiar with for examples, which both makes it easy to understand the concepts (I'm a programmer by trade, but I'm a user of Microsoft Word, which commits more than its share of UX violations). And it's super-short and easy to read - I plowed through it in an afternoon, and laughed out loud several times. The downside: it won't teach you everything you know to design stunning applications; its purpose is more to convince you that you need to get your ego (and its brilliant ideas about spiffy, unique designs) out of your users' way. There are a couple of UX-y concepts, but mostly it's about the obvious-but-forgettable fact that your users want things to work in a way that seems normal. Also, because the book was published in 2001, it makes some sweeping-but-now-much-debated statements, e.g. about metaphorical correspondence between the computing environment and the real world. But, really, you don't need to follow the specific rules in the book for it to be useful, and as a first approximation, if you are bothering to read this review, you should read the book.
Excellent informative humorous book which keeps you engaged and entertained; strongly recommend to every software engineer AND UI/UXgraphic designer - all kinds of people will find useful information that is applicable right away. The read is so easy and short (140 pages with a lot of pictures) that it is inexcusable to not read this one.
This was an entertaining read, but if you are already somewhat familiar with the basics of usability engineering, you will hardly learn anything new from this book. Also, of course, things have changed a lot in the last 10 years, so not only the examples, but also a few of the principles they illustrate are rather dated. Still, a pretty okay introduction to the topic for developers who haven't heard a thing about usability at all.
Very dated now, but still useful. A lot of it is intuitive and probably could have been condensed to at least half its length, though maybe it's the consequence of the ubiquity of UX these days.
* Targeted at programmers. * Tries to dispel the notion that UI design is magic. * A nice, quick intro to a variety of important design issues, such as the user models, personas, user laziness (e.g. users don't read), and focusing on activities rather than features.
The bad:
* The book is a bit dated (it first came out in 2001). That means it has a funny obsession with a) desktop apps and b) Microsoft design from the days when some people still though Microsoft designers knew what they were doing. * Not enough examples. There are screenshots, but it feels like they were tossed in at random, rather than systematically to demonstrate each point. * Doesn't demonstrate the process. What examples and screenshots are included show the end result. They don't show the process of creating a design from scratch, trying out multiple revisions, and making incremental improvements. To be fair, most design books fail at this task, and without it, it's much harder to learn. * Although a good overview of the design space, for each of the topics discussed, you can find books that go deeper. For example, to learn about usability studies and the fact that users don't read, "Don't Make Me Think" is a better choice. To learn about affordances, "The Design of Everyday Things" is the gold standard. And to learn about fonts, layout, and alignment, most of which are on glanced over by this book, see "The Non-Designer's Design Book" instead.
Some of my favorite quotes from this book:
"Even something which seems like a tiny, inconsequential frustration affects your mood. Your emotions don't seem to care about the magnitude of the event, only the quality."
"The cardinal axiom of all user interface design: A user interface is well-designed when the program behaves exactly how the user thought it would."
"Even smart, experienced, advanced users will appreciate things that you do to make it easy for the distracted, inexperienced, beginner users. Hotel bathtubs have big grab bars. They're just there to help disabled people, but everybody uses them anyway to get out of the bathtub. They make life easier even for the physically fit."
"Historically, providing a complete menu of available commands replaced the old command-line interfaces, where you had to memorize the commands you wanted to use. And this is, fundamentally, the reason why command line interfaces are just not better than GUI interfaces, no matter what your UNIX friends tell you. Using a command line interface is like having to learn Korean to order food in a Seoul branch of McDonalds. Using a menu based interface is like being able to point to the food you want and nod your head vigorously: it conveys the same information with no learning curve."
"To summarize, designing good software takes about six steps:
1. Invent some users 2. Figure out the important activities 3. Figure out the user model -- how the user will expect to accomplish those activities 4. Sketch out the first draft of the design 5. Iterate over your design again and again, making it easier and easier until it's well within the capabilities of your imaginary users 6. Watch real humans trying to use your software. Note the areas where people have trouble, which probably demonstrate areas where the program model isn't matching the user model."
This is a fun UI books that presents the basic concepts of User Interface design in an easy, entertaining way. Joel Spolsky (Joel on Software) has a great writing style, and some keen insights into how user interfaces work or don't work. This is not a particularly high-level book, and is a very quick read (30 minutes or so) but manages to pack in a lot of useful ideas, suggestions, and warnings, with copious illustrations (the pictures alone are worth the price of the book!) His advice is definitely targeted at programmers; one of my favorites was (paraphrasing:) "Don't get creative. Just because you think your new wizard design is so much more logical than the standard Windows design doesn't mean other people will understand it. Do things the way they're usually done if you want to keep your audience." Good book. :)
(I'll end this with a karmic shout out to my late friend Marc, who taught me the basics of UI design, and without whom I would long since have made every mistake mentioned in this book.)
I'm interested into learning more about interface design at the moment (always collecting book recommendations!). This book was close-by so I started with it and it works very well as an introduction to the basic concepts (metaphors, affordances, etc) as well as giving real advice on how to design the workflow of an application, what to keep in mind while doing so and some more detailed tips along the way on topics such as colours or the best font to use in forms. As usual Joel's style is pleasant to read, which makes this a very quick read. I definitely recommend this book as an introduction or refresher crash-course on interface design, while keeping in mind that in the end this is still only a high-level view of the whole process. You'll want to read more to answer more detailed questions and concerns about UI and HCI.
The book does exactly what it claims to: it explains user interface design to programmers who have little familiarity with the subject. The book is probably old hat to someone who has done a reasonable amount of reading on UI design, but it is still interesting. If I were to recommend a book for quick tips for UI design, there is a good chance I would recommend this one. It has the same basic advice as other books I have read without the theory or flights of fancy (::cough:: Raskin ::cough::). I love theory and flights of fancy, but sometimes getting to the point is convenient, and this book does just that.
I read this book in an effort to learn UI, but it was light on technical details and includes no exercises. While it does address some aspects of UI design, it is not an adequate introduction to the subject.
A good primer on UI design with interesting anecdotes. It's a bit repetitive for people who have read other stuff by Joel as he uses similar examples from "Joel on Software." But still a decent read.
Great insights in general interface design. The sections on the web design are slightly dated and show their age, however still has a lot of good material. Should be on every programmers desk.