Ask Slashdot: Good, Relevant Usability Book?
First time accepted submitter osman84 writes "I've been developing web/mobile apps for some time, and have managed to build up some decent experience about usability. However, as I'm growing a team of developers now, I've noticed that most of the young ones have a very poor sense of usability. Unfortunately, since I was never really taught usability as science, I'm having trouble teaching them to develop usable apps. Are there any good books that make a good read for general usability guidelines for web/mobile apps? I have a couple from my college days, but I'd like something more recent, written in the era of mobile apps, etc."
Don't Make Me Think
http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758
anything by Don Norman.
"National Security is the chief cause of national insecurity." - Celine's First Law
Don't Make Me Think by Steve Krug before they touch any UI's. I also like Design with the Mind in Mind by Jeff Johnson. This one is a little more advanced at how the mind works though.
Set Phasers on Stun: And Other True Tales of Design, Technology, and Human Error
Slashdot the home of the Linux developers.
I doubt that you will find a good book on general usability. You probably should follow Apples User Interface guidelines, or Windows user interface guidelines.
And hound on your new developers to get it to look and work right.
New developers often stick at usability because of many reasons.
1. They want to reinvent the wheel into something cooler and better. This often creates relearning the same lessons on good UI over the years.
2. They don't know how. College usually offers little in User Interface and UI in training. They will try to implement what is easiest.
3. Diverse set of opinions. If you are the Boss make sure they follow your standard otherwise they will make their own.
4. Have the developers listen to the end users. Bring them in on those call and let them sweat it out as the end user calls them an idiot for making the process so convoluted.
I really doubt that giving them a book will help much.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
(warning, I have a migraine so this isn't meant to sound lucid)
-drink a 6 pack of beers
-see if whatever you've designed up still makes sense to you
-write down your impressions (or just record them)
-sober up
-make appropriate changes
-rinse, repeat
I work in a different area of usability, so I'm not up to speed on books specifically about app usability, but the principles in recent books will still largely apply. Have a look at About Face 2.0 to get started. User-Centred Design (UCD) is the current way of thinking: there is some good background in Contextual Design. There are of course, lots more...
So, it depends on what you're looking for, and who needs it.
I like Garrett's Elements of User Experience for a nice on ramp and introduction ;-)
I like Steve Krug's Don't Make Me Think and Rocket Surgery titles for understanding basics of usability and usability testing.
I like Unger's Project Guide to UX Design for an overall step by step.
I like Wodtke and Govella's Information Architecture: Blueprints for the Web for a less prescriptive overall design process
I like Brown's Communicating Design for a great take on UX documentation
I like Kuniavsky's Observing the User Experience for a great take on ux research
I like Young's Mental Models for task focused research & great visualization & alignment of project functionality with user behavior
I like Norman's Design of Everyday Things for shifting the way you see usability and user experience in everyday life (and apply that to work)
Looking forward to Wroblewski's Mobile First, but it's not out for a couple weeks
Josh Clark's Tapworthy is a decent mobile design guide if you're only up for nuts and bolts instead of understanding internal combustion
Rosenfeld Media is a publisher that focuses exclusively on user experience and has some fantastic titles, including the mental model book already mentioned.
http://rosenfeldmedia.com/
And of course there's tons of great online resources and events - look for local UX Camps, local UX Bookclubs (http://uxbookclub.org)
If I had to choose just one? Design of Everyday Things changed how I see the world.
You don't need a book for some of the most basic, important advice for usability... but a large number of developers seem to never have heard it.
Ready?
Do not look upon your users/customers with contempt.
This is a serious, widespread issue; just read the comments that techies have about people who are not themselves on places like ohhhh, say, Slashdot. Without sympathy for your customers, without a sense of humility in yourself, without the realization that people can be worthwhile, talented, productive and smart (yes, even smarter than YOU) yet not have the time or training or inclination to recompile their own Linux kernel or root their phone, you're going to produce awful user interfaces and workflows. You're going to amass a terrible reputation for bad customer support. You're going to have buggy software because you spend more time blaming the user than wondering if maybe your code isn't perfect.
And then you'll blame anyone except yourself.
All of the studies about icon size, color schemes, human motion studies, and cognitive science will be meaningless if you believe you need it "just because my customers are idiots".
Everybody gets what the majority deserves.
Old but authoritative. Start here
http://www.amazon.com/Macintosh-Human-Interface-Guidelines-Computer/dp/0201622165
Beat me to it! I posted this link about a year ago, but it's still good. The design of everyday things, by Donald Norman. My personal favorite is the use of "natural mappings" versus "arbitrary mappings". Make things naturally intuitive to the user. Enjoy!
http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746 My apologies for the double post :(
I'll second this one. Very insightful. Redirects your entire approach towards the design of usability: The Design of Everyday Things
Ensure access to some 2 year olds, have prototypes and watch them use the system. If they can figure it out, you are golden.
You can't handle the truth.
I'm a usability specialist surrounded by people (the actual decision-makers) who THINK they know all they need to know about design, even though none have actually every designed much of anything. My advice is this: Make all your people sit down and watch some usability testing videos. You can find some online, or maybe (hopefully) there are already some floating around where you work.
Make an event out of it -- bring in some popcorn and watch them together. There will be much laughter and fun-poking, but in the end they should get the point: NO ONE is really a usability expert. Even having done testing for the past 10 years and having a pretty good instinct for what will work and what won't, I learn EVERY SINGLE TIME I test someone. The things people do -- even smart, educated, computer-savvy people -- will amaze you and your employees.
Politically, having some of my coworkers watch some of my testing with real users is the smartest thing I ever did. It didn't fix all my usability-related problems, but it was a huge help.
Designing Interfaces by Jennifer Tidwell http://www.amazon.com/Designing-Interfaces-Patterns-Effective-Interaction/dp/0596008031 Actually you could be better of if you hired UX expert who makes the decisions regarding usability - the developers may not be the best people making usability related decisions.
It is an experimental science. Don Norman and Jakob Nielsen are among its pioneers.
Usability is a personal preference. Some people like a UI that doesn't make them think. I like a UI that encourages me to think, because thinking is empowering. If I don't think while using an interface, I'll never find out what that interface is capable of, and I'll never increase my capabilities.
Usability is an art, not a science. You can't make an app that everyone will find usable, anymore than you can make a work of art that everyone will find asthetically appealing.
Give me Classic Slashdot or give me death!
I love reading http://www.usabilityblog.com/ , which contains real world examples from around the web, and proposes applicable solutions. Learned a few tricks there.
However, as I'm growing a team of developers now, I've noticed that most of the young ones have a very poor sense of usability.
Really? Based on the history of software design, it seems the older developers are the worst when it comes to usability. For most of the 80's and 90's software tended to be extremely poorly designed from a UI standpoint.
Alan Cooper's About Face: Essentials of Interaction Design is pretty timely and gives a lot of insights on different types of platforms and applications. Start there, and with Krug.
... but I threw it away after reading it once.
If you try to fail and succeed, which have you done?
To the Slashdot development team.
Perhaps they will even read the book...
"Flyin' in just a sweet place,
Never been known to fail..."
The Inmates are Running the Asylum by Alan Cooper is one of the best books on usability I've ever read. It's entertaining, highly thoughtful, and contains a lot of timeless lessons about usability and UX. My favorite story in the book is a case study of the software bundled with the Logitech ScanMan. They used personas to understand their users and strip out all of the extraneous features, and instead concentrate on making a much smaller feature set easier to use:
Building Better Software
you should read Bret Victor's Magic Ink essay. He goes about breaking this fill-submit-wait-for-return paradigm we currently have for everything on the web, proposing instead designs that answer to user parameters more quickly. His flight ticket UI example is wonderful, but so far I haven't seen any implementation of that.
http://www.useit.com/
Are you sure it was switched on to start with?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
There is a wealth of information about usability, both for the web and in general, on this site. Years and years of articles. Many of the best ones are in the first few years, but there are nice ones scattered throughout. I recommend going through the bolded (most popular) articles, and send them links to relevant articles as issues come up.
"I will trust Google to 'do no evil' until the founders no longer run it." Hello Alphabet.
Usablity is a problem just cannot be solved at a programmers desk. Part of the problem is developers use computers in a fundamentally different way to 99% of the rest of the population (commandline etc) and have a fundamentally different mental aptitude to users. There's no subsititute for getting people into a lab and watching what they do and even just asking them just to point out what they don't like and throw suggestions out there. You'll find what made sense at design time turns out to be not so good, perhaps a disaster. You'll perhaps find you didn't do enough designing and got into coding.
This is how Apple, Microsoft and others do it, and how some others with famous usability problems don't.
Radical suggestion, but consider the primary purpose of your application. If it's to be used by people (ie it's not a server), then usability and interface should of course be your number one consideration before the first line of code is even written. 99% of the IT world does not think like that, hence the horrific state of user interfaces.
After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
Almost sounds like a trick question.
In spite of Apple's best efforts, the GUI is still much connected to cultural artifacts and, hence, is very difficult to come up with a Universal GUI understood and liked by all. There are, granted, some universal constructs, but these seem to be of a very general nature and you quickly run into a wall when digging into the specifics.
I would like to dream that a beneficial effect of globalization will be that us humans will eventually come to a common understanding. Maybe my great grandchildren will live long enough to see that, I we don't blow ourselves up first. Oh, and I have to get working on engendering a few kids first... :p
It has a great list, and may have what you're looking for: Book recommendations - Web Usability.
One more vote from me. "The Inmates are Running the Asylum" completely changed the way I think about usability. Now I consider user testing as part of usability design a flawed idea, because once you've got something to test and see that doesn't work, you either have to scrap months of work, or you just go with it anyways (making the whole testing useless). That book teaches the reader how to get it right in the first place, and conceive interfaces you wouldn't even have thought of (which user testing can't do either).
The best usability book I ever used is "Letting Go of the Words: Writing Web Content that Works (Interactive Technologies)" by Janice (Ginny) Redish.
http://www.amazon.com/Letting-Go-Words-Interactive-Technologies/dp/0123694868
Whenever you design any sort of UI you should look for some sort of example. Say what you like but it's usually best to find some part of Windows and make your interface work similarly. Young developers haven't yet learned that in most cases you actually can't do better than Microsoft.
Developers aren't user-interface creators. I hope you aren't hoping to treat them as such. In my world, developers are generally too technical to design interfaces, unless those interfaces are mere copies of existing paradigms - their minds are just wired to fix a problem, not to fix it in the most elegant way from a user's standpoint. If you don't have dedicated "human factors" teams or Marketing teams that can do this, you are in a tough position. Developers certainly have some useful insight into what works and doesn't, but I wouldn't ever require them to design the thing from scratch. I'm not saying you can't find some books that will help improve their skills on the subject, but I hope you're going in with the correct goal in mind...
Disclaimer: Professional in usability/UX, Software "engineer", hacker, drunk, etc
Usable software isn't developed by someone knowing something from a book. Its part of a process, you can substitute methodology/ideology if you wish. If your company isn't committed, you might chance on a usable app with your techniques/processes/developers/tenmillionmonkeys, but HOW WILL YOU KNOW?
Want to know a good methodology to run with? Well there isn't one, all have deficiencies, some have certain benefits but its usually a trade off; best advice: get someone competent in charge of user experience. If that doesn't fly, serious suggestion: if usability is a real concern (and to be honest, its a bottom line concern although most companies don't get that), get in some professionals to run a usability test (recruitment, premises, recording, transcripts, hosting - real world costs money even if you don't want reporting), have your developers attend the test and the repeat the test after they are supposed to have dealt with the issues. Its like a code review except with real people telling you just how much you have improved, with deadlines and real metrics (how much your code sucks to someone you don't know).
Key here is the word "developers". I am seriously SICK of seeing marketing/execs in usability tests. They are the LAST people who should be there (and I mean that, they need to come in AFTER the developers have finished unless they are the sort who can keep an open mind); the developers have the most to learn and most to contribute from seeing how real users perform with their code yet usually they are excluded.
Sorry, too many brews, I would have loved to have posted a response in a less fatigued and fugued condition.
A buddy of mine and I recently decided to start collaborating together to try to learn what we could about web usability. We're posting articles and a weekly podcast about what we're finding at betteruserexperience.wordpress.com.
it is not a book, it's "the user"
I see that some others have mentioned it, but they linked to Amazon and some random web page, rather than the source:
https://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html
I also helps to know that with a few exceptions (like banks), most fire codes require doors to open outwards so that in an evacuation scenario people don't get stuck behind an inwards opening door with other people pushing up behind them.
Sara
Designer, Gamer, Macgrrl in an XP World
I personally have, and quite like, Designing Interfaces: Patterns for Effective Interactions Design, 2nd Edition (by Jenifer Tidwell, 2010, O'Reilly), which I think is very helpful for UI design.
Usability, of course, goes beyond just the design of the UI; the design of the actual workflow is important, for that good process analysis skills and tools (mostly not automated) are needed.
And for all aspects of usability, involving users early, getting them using the system early, and getting -- and using -- feedback is the most important thing.
You might like this book:
Set Phasers on Stun: And Other True Tales of Design, Technology, and Human Error
It's an anthology of short stories about real life technological disasters caused by differences between the way things are designed and the way people act. While not speaking about hand held devices specifically (these are mostly industrial level accidents where people are injured or die) the writing itself is targeted at the lay person and is very interesting compared to most case studies. The lessons gleaned are universal and will improve ones ability to think about and design better user interfaces for a wide variety of applications.
This is being used in my course on human-computer interaction at CMU, is not particular to software, but the advice goes deeper than icons or widgets, into real human behavior: http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0465067107/ref=tmm_pap_title_0
OK, what's "UX"?
The Inmates are running the asylum.
I highly recommend this book. It puts forward the case for user-centred design and describes some basic but effective techniques.
Some of the technology in the examples is a bit dated, however the experiences of using bad interfaces is still fresh.
Nielsen's heuristics should also be referred to constantly in user interface design: http://www.useit.com/papers/heuristic/heuristic_list.html
I've read enough of his articles and papers over the years. Doesn't really look like what I recognize as science.
Here's an old, but interesting essay that takes a critical look at this 'experimental science': http://www.fruitti.com/essay2.html
This is rather a comment rather than an answer to the question. the internet allows for the greatest implementation of reuse, from a google search to blogs to sites like stackoverflow, I get not only solutions to technical issues but detailed explanations and forums for discussion. It's a no brainer that I would rather use trusted sources on the internet than the attempt to reuse code from the bumbling fools that I work with on a daily basis. I cannot tell you the difference between pre-internet and internet development.
Find the stupidest most computer-illiterate person you can who is in the intended user group (General public - get your aol-using grandfather. Sales team - get that moron who keeps calling tech support because he accidentally moved his desktop icons and now can't launch word. etc). Pay them some money to sit in front of your UI and then ask them to do various tasks you're worried about. Don't give them any hints - just let them solve the puzzle of how to do [whatever] themselves. Video it. Show the video of how they attempt to do the tasks to your developers. Tell them that what that person did was *logical* given their previous experience, and work out how to change the UI so it matches the *user's* logic, not the logic of the people who know computers and how they work really really well.
Many people wrote about Norman's books, they are indeed very useful. Only one person mentioned Raskin's "The humane interface", and that's a pity.
It is a very valuable resource, he shares his ideas in a very clear fashion. You will be exposed to concepts such as "interface monotony" or "modeless interface". Once you go through his examples, you will realize that these simple ideas can make a big difference.
http://www.amazon.com/Humane-Interface-Directions-Designing-Interactive/dp/0201379376/ref=sr_1_1?ie=UTF8&qid=1317979903&sr=8-1
The saddest poem
Design of Everyday Things, Invisible Computer. Those are enlightening reads. A good text would be "contextual design" by Beyer and Holtzblatt.
It's not a book, but George Orwell's essay on Politics and the English Language should be required reading for anyone working on usability. So often the focus is on the graphics, the number of clicks of a mouse, etc, but the language used and how that fits the audience's understanding is overlooked. An example: in the early days of web design, I was presented with a page with a link to "FAQs". This was for the general public. I asked all my colleagues what FAQ meant and no-one knew. "It's the industry standard term" I was told. When we changed the link to read "Frequently Asked Questions" the number of phone calls to our enquiries department fell. You have to go where the audience is, not just where you want them to be.
The Inmates Are Running the Asylum
http://www.amazon.com/Inmates-Are-Running-Asylum/dp/0672316498
Learning vi or emacs is worth the learning curve because it enables the user to work more productively when performing complex tasks. Typical users of these programs use them 8+ hours a day for years and years; the learning curve is amortized over an incredible amount of actual usage.
Pretty much any other application that you will ever write will not be used nearly this much and doesn't have the same learning curve/total productivity-gain tradeoff. The problem arises when developers get a big head and think that their shitty litte app justifies the same learning curve investment as vi or emacs; or they think that what makes a technical user productive is the same thing that makes a non-technical user productive.
Until you can stop thinking about your users as "lazy morons" you will be doomed to producing crap.
This is a pleasure to read, and gives succinct and memorable examples of real products with UI's that had obvious mistakes (or rather they should have been obvious). And yet these items, and ones like them get released in products every day. It also explains how the same devices and UI's should have been redesigned. One of his points is that programmers are not typically trained to be experts at user interfaces. As a programmer I can't take offense at that because it's true - I see examples of UI design errors in lot's of software ("Are You Sure "). Really, in school - the treatment of the design of UI was never done in enough depth.
The most important point is that it's full of good to-the-point examples that are memorable. With them, a team can share their views with some common context.. They make some of the design discussions and choices much clearer.
So I wouldn't say it should be your only choice, but it should be one of the first ones to be sure to read.
The real workplace situation is often (as in my case) that the team just doesn't have a design expert at their disposal for any projects whatsoever. In this situation programmers are often the de-facto "designers". Typically they stink at it at first. The best approach in that context is to do what you can so they will make the better choices, and recognize problems and opportunities to fix them.
You cannot ignore the fact that your developers don't know design, but you can get them informed about what to try to attain, and to think in terms of the user.
I recommend this book: Alan Cooper, "About Face 3: The Essentials of Interaction Design"
And now to get onto my own soapbox:
Paying special attention to the usability of things *outside the computer* goes a long way to understanding what works for *people*. There are a lot of great ideas that can be brought into interface design from real-life objects, and you won't necessarily think of them unless you purposefully pay attention to them. What makes a good doorknob feel "right"? How about a good elevator button, or your car's console? Ever notice how some restroom / kitchen-sink faucets are a lot more sensible than others? Is it the tactile / auditory / visual feedback you get when you use it, the resistance that's been fine-tuned just right, the size that fits your hand well, the ease of using the device with precision, the way each state is so clearly defined, the intuitiveness of the way you have to manipulate it... is it any number of other things? There's a reason why these things feel more "right" than other variations of the same technology, and it could be that when you stop and think about them, you notice something and bring new inspiration to your group.