Unfortunately, this book has a few bones to pick with the current ways that users work. In many cases, while I may agree with statements such as that the File menu is not strictly necessary, users of many programs already understand how things work under the hood and want to know about it directly. He sometimes preaches design as if all customers of software are and should be ignorant of the system they're working on. I write software for other developers, so a lot of the tips and advice he gives are actually things that would cause my customer to become quite angry -- they understand the system, want to work in terms of it, and want to be able to to understand how your program deals with it. There are a number of commercial software tool failures to prove the mistakes of those who've tried to force a model the designers thought was superior on developers who knew better (ever used Visual Age Java?).
There's also a lot of material duplicated from his earlier book, _The Inmates Are Running the Asylum_. If you're only going to read one of the two, I'd advise reading that one, and skipping this one.
The target field (cf. the users) of this book are developers, every programmer should have a copy, is not?
A software package, which is unfriendly, laughing and bashing to its user, such a package would be considered as a computer program with a bad design. The user would not like to use it.
Now, I'm wondering why the so self-declared software design god of the modern times is bashing, laughing and unfriendly against the users of his product.
Mister Alan Cooper does not have a clue how a company works and what the background of a developer is all about. He is bashing the wrong people. Bad software interfaces are not the fault of the developer but the management and the methodologies that are used in most companies.
Developers are trained in schools and universities to produce code and to design the internal architecture. Few of them receive cognitive psychology courses, which is needed to create five star interfaces.
The average management in a company, small or big just allows that developers do the graphical interface design, a task for which they were not prepared. The outcome is indeed bad software but don't shoot the pianist, instead turn the spotlight on the choirmaster.
The content-worth of the book is average. It is heavily focusing on one aspect of creating better software interfaces: design guidelines.
While these guidelines are important, it is not enough to create excellent interfaces. The risk is that a developer, after finishing reading the book will think he or she knows everything about the job and this is not his or her fault but the author.
No words are spoiled by instance on User Profiles, Contextual Task Analysis and so many other aspects of user interface designing.
The design guidelines itself are mostly not new, I have read them long ago in other works and with some research you find them for free on the internet. Some guidelines-laws described in the book are even examples of bad designs, which is dangerous, at least in a way.
I can imagine that for an average programmer the book is still revealing, but he or she should know that other grasslands are much greener. Best case, you have a design guideline book, nothing more, nothing less.
I do not know I am allowed to do this, but if you want a real step-by-step guide for creating better software you should try "The Usability Engineering Lifecycle" by Deborah. J. Mayhew, also available on Amazon.
Highly recommended!
For instance, he spends a lot of time explaining that programs need to be written to assume that users will make mistakes (because they will), rather than considering mistakes to be a break in the workflow. Sure, sounds good. But then later on, he suggests that if the user of an accounting system enters a record with an invalid account number, the computer should just assume that it's actually a valid account number that the user just hasn't told it about yet. And worse, he suggests that the system should accept it *silently*, and not tell the user that anything at all odd happened until it gets around to generating the end-of-month report and there's still no matching account number. Can you imagine the user of such a system, when the computer finally tells him that *a month ago*, he made a typo while entering a record, and now he has to go digging through paper records (assuming he still even has them) to find the correct information?
It's the same thing with many of his other examples. He suggests ways for the computer to be "smart" that are clearly smart in the very specific cases he's thinking of, but often dumber than before in every other case.
For those really interested in UE stay away from this book.
Key to this book is to understand that it challenges software developers to consider a user's goals first. And the book means "a user", not all of the users, but a single user. I've been to Alan's presentations and you can see the software developers in the audience squirm in their seats. "Don't I have to build my software to work for the largest group of users?" they ask. Alan's book says "No. Instead, build for a single user, and make sure your work accomplishes their one goal." About Face might be better titled "User Goal Oriented Software Development."
The book's focus on "interaction design," as opposed to user interface design, matches the key theme of user goal oriented development. For example, when my printer runs out of ink a dialog box appears on my computer asking for me to put more ink into the printer and then click one of the following buttons: Finish and Continue. As the user, my goal is to Finish, but the software wants me to put more ink in the printer and then to Continue. Interaction Design addresses this problem, where user interface design would more likely tell the software developer where to place the buttons in the dialog box. Interaction design keeps the focus on user goals.
I loved the original book, and find the new release to be refreshing.
-Frank Cohen, www.pushtotest.com
His main point is that software developers should not create the interfaces we use. This is an important statement that many people need to understand. The software engineer can't design an interface when he/she has no interaction with the users. Even further, it takes a different mindset to create an interface than it does to code.
You can't blame the author for setting things straight. What you can do is maybe blame the books stores for putting it in the wrong section. It looks as though too many developers are reading this book for insight.
Who is this book for, anyway? When the author says "requirements" is he talking about project requirements in general or specific interface-related requirements? When he says "design" does he mean software design or interface design? If you have read anything about software engineering in general, I'm sure you will have lots of questions like these.
Although it is a book about interface design issues, it's a big disappointment that the author somehow forgets about the bigger picture and makes it seem like the product is the interface and the design of the product is the design of its interaction with the user.
The author also makes some arguable points. For instance, he claims that there is no such thig as computer literacy - we only have to talk about computer literacy because software is obscure and overly complicated to use.
Somehow it was no surprise to learn that the author also happens to be "the father of VB" :)
"This book was filled with several good ideas and obvious shortcomings in today's software, but the authors' ideas are lost due to poor delivery."
The long story:
Although I was impressed with some of the authors' "radical ideas", I became distracted with their choice of words and constant finger pointing at obvious shortcomings in today's software interfaces. If this was the authors aim at humor, they missed their target completely. It becomes excessive when the negativity spills over from chapter to chapter. (I could have lived with less negativity directed at software developers...) I found that the authors' choice of words and finger pointing at software developers became the topic of my development team discussions versus the true matter at hand: "The problem with today's software interfaces and what can WE do to improve them."
I feel the book could have delivered its message better if only the first few chapters dealt with shortcomings leaving the remainder of the book to focus on new ideas or solutions. I would caution seasoned professionals to ignore the author's finger pointing and negativity and to focus on his ideas. Some of which are good and others are not, but it is obvious that software user interfaces have problems and the authors provide some ideas at addressing those. I would only recommend this book to those who are able to see beyond the authors' tone and truly listen to their ideas.
The authors make some decent points, but their ideas are not original and their writing style is that of someone trying to impress rather than convey information.
This book appears to be more of a platform for developer and software bashing rather than the helpful user interface design text that I had envisioned. After chapters of repetitive whines about software developers, I was becoming irritated. That's not what I got the book for.
Usability folks will no doubt love this book because it will confirm to them that everything is the developer's fault. Developers will no doubt hate the book because it states that everything is the developer's fault. I don't like the book because it doesn't give me any good information on UI design, which is what I wanted it for.
This book is not for idiots. Anyone who would thumb this book either CAN NOT and WILL NOT appreciate what it means to make an application usable.
What this book does best is come up with a language for the elements common to every day programs. Soverign vs Transient apps, GUI excise (making users do needless repetative tasks), and the "interaction design" concept which is an analysis of the entire user experience with an app.
This book should be a must read for any serious GUI developer. Its what comes after you've mastered the use of basic controls and GUI programming, and want to go further into make your app a joy to use.
The book introduces some new terms, to me that's fine. For example, "user profile" or "user role" is not the same as "persona", as the authors state in p. 61. It's a design tool for their design process, and the meaning behind the terms should not be considered the same.
We're propably going to apply this book's methods in our organization. But we're also going to use usability professionals. After all, we all have a developer background too.
Some developers might think that the book has an offensive attitude against them, as seen in other reviews. Hopefully in version 3.0 the authors find words that would be easier to swallow also for the people who actually do the coding. Then I'd rate it five stars.
Also, the authors feel the need to pepper the user with "big words" in what appears to be an attempt to make themselves sound smarter. Look at one of the other reviews where the reviewer actually documents some of these usages. The reader is advised to have a dictionary handy when reading this book.
Another problem I have with this book is that the authors like to talk about software usability problems yet in many cases offer no solutions or ideas on how to fix them. What's the point in bringing up a negative if you can't offer up a solution? If all the author is going to do is complain about something, why would anyone buy the book?
What is really unfortunate about this book, aside from the fact that I wasted $25 on it, is that the authors do raise some valid points but these are lost amidst all the wordy blather that is so prevalent.
One thing for sure is that in the future, I will think long and hard before I purchase any book authored by Cooper and/or Reimann.
"Interaction design" instead of "user interface design"
"aphorism" and "axiom" instead of "principle"
"Subject Matter Experts" instead of "expert users"
"Ethnographic Interviews" instead of just "interviews"
"Personas" instead of "user profiles"
The list goes on and on. Almost every other page introduces some new or uncommon term to be included in the jargon to be used by this new profession that Cooper wants to create.
Personally, I think this book makes some really good points that deserve to be heard. Unfortunately, those "tender morsels" are buried in so much diatribe that most of the people who read the book are likely to miss them.
I hope the authors get busy soon on a "About Face 3.0" edition that eliminates at least a third of the text and replaces the academic "high-brow" vernacular with common words and phrases that are already in common use. They also need to provide more examples of potential solutions to the problems that they point out.
In the meantime, I can't honestly recommend this book.
It is my opinion that 70% of this book is a waste of paper and served no other purpose than to get the page count up to justify the price. Also, the authors seem to get some perverse enjoyment out of using obscure and unrecognizable words in order to sound more intelligent and give their book a college textbook feel. And the lack of examples for many of the problems they cite is inexcusable. If you're going to bring up a problem, then offer up a solution. Many times they fail to do this.
It's unfortunate that the authors failed so miserably in the delivery of their message because of their overall poor writing style since they do bring up some valid points. As a developer, I agree that software in general has to be made more user-friendly and have seen first hand many of the problems the authors cite throughout the book. I think they would have succeeded in bringing more developers around to their way of thinking if they would have just changed the delivery of their message.
One thing that will come from reading this book is that in the future, I will refrain from purchasing any book authored by Cooper and/or Reimann.
Apparently Cooper wanted to be a poet and certainly not a technical writer. The first rule of technical writing is to get your point across. He goes on for pages without actually saying anything. He too frequently uses words that many people have never heard of. You don't change people's mind when they have to focus on the words instead of their message (doesn't he say something similar about software). Here's a sampling of his poor word choices.
Kafkaesque p440
simulacrum p265
conflated p 465
prolix p469
tessellation p324
interstice p292
appellations p331
proselytizing p334
adjudged p354
bifurcation p367
execrably p453
concomitant p478:
While there's nothing wrong with those words, he uses them when other more-recognizable words are available or he uses them when no word is needed at all! It could be removed from the sentence entirely.
All this emphasizes that he's more interesting in sounded like a pompous Lit major than trying to persuade readers. He gives the feel of someone wanting to write a college book and thus makes it intentionally sound technical. Gee, didn't his book say us developers do that with software too often? Can't take his own advice.
As a developer who gets paid by customers who buy our product, my goal is help the user as much as possible. Cooper gives the impression that ALL developers are rude, lazy, and hate the user. He calls us lazy because he assumes we always take the easiest (and less intuitive) way out - totally ignoring that we have schedules and our bosses often dictate our features based on time. He imbues us with evil traits as if we're a bunch of maniacal human-haters: "Mwa ha ha! I'll put yet another error message in my program. That should make my users feel stupid and they'll kill themselves and I'll rule the world." Most of us would love to create some of the intelligent interfaces he mentions (but gives few examples). Lack of time is the main reason why we don't. This should be obvious to even beggars on the street corner. Since developers must be persuaded to make these changes, it hardly makes sense to alienate them so.
If you're not part of the solution, you're part of the problem. In the extreme majority of his issues with current software, Cooper provides no suggestions for how to solve it. At that point, you're just complaining.
The book has some good information and some very interesting ideas. However, its presentation is awful. If you feel developers hate users and intentionally make software complicated (so they in turn will lose business and thus lose their jobs), but you seldom want examples of how to fix this problem, you'll love this book!
This book exposes the distinction between implementation model and mental model, and brings the concept of "perpetual intermediates" as the most common category of the users. The authors show how to classify applications by posture on the web and on desktop and handheld computers, as well as on mobile phones and public kiosks.
The aspects of the modern User Interface are well covered in this book: data entry and retrieval, direct manipulation and pointing devices, metaphors, idioms and affordances. Parts of the book are devoted to such interface constituencies as controls, menus, toolbars and tooltips.
You will also find chapters about installation process and dialog etiquette in this book.
The book is laid out in a very nice fashion. You can almost pick up it, turn to any random page, and start reading. The chapters are small and easy to read. I really enjoyed this book, and would recommend it to anyone that is interested in software interface design.
Reading rev 1 of this book a few years back changed my view of how programmers should program and gave insight on how to design programs the correct way. The second release is sufficiently different so that it still a bargin for those that have the first one. The biggest impact of those not familiar with the value of software/interface designers will be the altered view-point you may emerge with. A programmer (as i have been for the last 20 years) tends to get tunnel vision. It's not that we think we're doing things badly and do it anyway; we just don't see the opportunities opened by taking a different viewpoint on the functionality and design of software. Alan and Robert Reimann effectively describe this "enlightened" view of software design through effective use of examples and critique.
A final point is that the book is somewhat granular. The chapters build somewhat on each other, but it is the kind of book that can be read a chapter at a time in any order.
Thanks Alan and Robert!
Hats off to Cooper and Reimann. You would think that their axioms are common sense, like "Never scroll text horizontally", or "If it's worth the user entering, it's worth the program remembering". But if those common sense ideas were actually common, why is there so much horrid software out there?
The first part on the Cooper Process is excellent and gives lots of insights and new information. The new chapter on Visual Design is a bit simplistic in my view, but if you know the matter you shouldn't be bothered by that.
All examples are updated and fresh. Some new pictures of Cooper project help in making the case. I particularly liked the interactive pie charts for example.
As the Web is moving towards Rich Internet application and the desktop applicatios are moving towards Rich Internet information applications this is the best and most up to date resource for Interaction Design we have at this moment.
I read it in a weekend. I bet you will too...