Steve Krug’s book Don’t Make Me Think, Revisited: A Common Sense Approach to Web (and Mobile) Usability takes an 80-20 approach to user experience design.
Though it does not serve as a textbook for UX design, I would recommend it to any developer who wanted to improve the usability of their products with relatively little effort.
In it, Krug goes over how to organize the material on a web page, how to display links to be most helpful to the user, and how to adjust one’s approach to usability for a mobile device. These are all fantastic things for programmers to understand. Many of the concepts seem obvious (and the author warns readers about this right from the get-go), but the book helps to clarify why we do those things the way we do them.
I want to emphasize three astute points from the book that I suspect could be easily missed. These points merit reiteration for a crowd of programmers:
1. User Test Early and Often
User testing often comes in toward the end of the project, but Krug argues that it should happen even before the project begins—on competing products, to identify problems with the existing options that the new product can solve.
The way user testing tends to get done, it takes a lot of time and effort: it amounts to these expensive studies involving lots of people. Krug explains how to get 80% of the benefit of it for 20% of the effort (and money!)—because as it turns out, some of the things we emphasize in user testing aren’t all that important. Small sample sizes of participants can give us most of the information we need. In fact, tests with people who aren’t even the target market can still give us most of the information we need. Additionally, Krug offers pointers for an individual who wants to perform their own user testing. If that user testing is to get done, the developers will have to do it. So I recommend that devs read these sections twice, and take notes. Krug includes general guidelines, an example script for a test facilitator, and a recipe for a do-it-yourself device-mounted camera to capture user activity during user testing on a mobile device.
2. “There’s almost always a plausible rationale—and a good, if misguided intention—behind every usability flaw.”
This quote appears in the fist chapter. It merits repetition because it’s very easy to walk into a meeting with stakeholders and gawk at the ugliness/horribleness/un-intuitiveness of the current site. This also happens when developers look at the code for a system that they are about to rewrite. It is important to remember, in this situation, that code (including UI code) was usually written by smart people under constraints. We do not know about these constraints, and so we should avoid judging the old system, despite its problems. We want to fix them, but we also want to do so in a way that is empathetic, understanding, and kind. When we make mistakes in our code, we would want people to treat us (and our work) with the same empathy, understanding, and kindness.
3. Not everyone is 22 years old with amazing eyes.
Accessibility (usability for people with disabilities) does not get much attention in the design of many websites. There’s a lot to do to improve accessibility, and it can seem overwhelming.
Conveniently, Krug has provided a list of the easiest things that make the biggest difference:
- Add appropriate alt text to every image, for folks who use screen readers.
- Use <h1> for the page title or main content heading, <h2> for the major section headings, <h3> for subheadings, and so on. This clarifies the structure of the information. Style with CSS, not the html headings.
- Make forms work with screen readers by using <label> to label each field.
- Put a “skip to main content” link at the beginning of each page so a user with a screen reader can skip reading the main menu and other text at the top of the page.
- Make all content accessible by keyboard—not just the mouse.
- Create significant contrast between your text and background colors.
- If you are using a template (think WordPress), make sure it supports accessibility.
All in all, Don’t Make Me Think offers developers and other not-quite-designers-but-responsible-for-some-design people a quick read (under 5 hours with heavy note-taking) that covers the essentials of web and mobile usability. It even does so without assuming too much knowledge on the readers’ part—so someone could jump into this read with no exposure to usability principles at all. He mentions the importance of testing, of empathy, and of accessibility. I think we can afford to take those three points very seriously.