Don’t Make Me Think

If you start researching UX/web design, it won’t be long before you stumble onto Steve Krug’s “Don’t Make Me Think” — a book whose thesis is aptly summarized by its title. The best user experience is one where the user has to think as little as possible — getting what they need to get done is intuitive, each next step is obvious, and there is a minimum amount of decision-making and figuring out what to do next.

As a designer, we want to anticipate our users’ needs and potential mistakes, designing in such a way that it’s difficult (or even impossible) for a user to make a mistake. In his book “The Design of Everyday Things,” Dan Norman goes so far as to say that any user error is the fault of the design, not the user.

Reducing pain points is a desirable outcome for many reasons: we can’t be there to help our users if they make a mistake, and no one wants to have to wait for support to get back to them just to get a basic task done. The more frustration a user feels, the likelier they are to abandon a product.

Customers fund our paychecks, so we bend over backward to make things easy for them. On the other hand, a full-time employee is committed — it takes a lot more work to find a new job than to check out a competitor’s website, and solving problems is part of the job description. However, this shift in attitude leads to unnecessary internal pain points with expensive consequences.

Studies have shown that focus and self-control are like muscles — you get a limited amount per day before it’s exhausted. Cal Newport, in his book “Deep Work”, writes that most people have a maximum of 1.5 hours of “deep concentration” available per day (this is the kind of concentration needed for tasks with a heavy mental load — solving a problem you haven’t seen before, creative brainstorming, learning new complex knowledge, as opposed to simpler tasks, like checking emails or data entry).

Naturally, time is also a limited resource. Every time a developer spends 1–2 hours (or 5 minutes, or 10 seconds, over and over) solving a problem caused by a pain point that could have been anticipated and avoided is 1–2 hours they don’t have available to do their important work and leaves them with depleted concentration available for their remaining tasks for the day. If the same pain point is costing time from multiple developers across teams, this adds up quickly.

Rather than “don’t make my engineers think” — we want to avoid making our engineers think when they don’t have to, so they can save their time and deep thinking for the tasks that matter.

How to apply the “Don’t Make Me Think” Philosophy

So what are some examples of applying (or failing to apply) this philosophy to an engineering organization?

Within a codebase:

Repository management:

In organizational processes:


Resources:

Don’t Make Me Think by Steve Krug

The Design of Every Day Things by Dan Norman

Choose Boring Technology by Dan McKinley

Clean Code by Robert C Martin

Deep Work by Cal Newport

The High Price of Context Switching for Developers and Ways to Avoid It by Nitin Pande

The Limits of Self-Control: Roy Baumeister on the Effects of Willpower Depletion

Lead image Source.