blog,Creative Work,Design Thinking

Design Principles

A decade and a half into my practice designing products and software, some things keep coming up. I’ll keep up with them here.

1. Make the software explain itself

Ideally software should need no manual, instructions or training. Instead the meaning and actions available should be discoverable by the user and they should be able to play with and explore them to get a sense of what they do and how they work. Users feeling free to “play” with an app is a pre-requisite to feeling comfort in it and mastery of it.

2. No ornamentation without meaning

Colors, images, icons, and especially animation that don’t convey meaning are like noise. When mixed in with elements that do convey meaning, They present the user with a puzzle to solve that has no answer. They create a lingering sense that one is missing out on the joke.

3. Use self-explanatory labels

Avoid using jargon, company or domain specific labels. Instead aim for 5th grade vocabulary level terms whose dictionary definitions make sense of what they are describing in the software.

4. The software should show its model of the problem or the world to the user

Especially when AI or models are involved, the more that the software can visualize or make clear what data it is considering to make sense of the problem or the world, the more the user will be able to match their mental model to that of the software making their experience feel intuitive by minimizing surprises. Importantly, this also allows for critical thinking about whether the user knows something the model doesn’t. In many cases this improves the safety of using automation.

physical model of mathematical graph

5. Teach the user what they need to know when they need to know it, not before

A basic principle of adult learning is the concept of just-in-time learning. This is not only an affordance to the limited time and attention our users have. It’s also about recognizing that users are motivated to take in new information when they see that information as relevant to solving a problem they have now. Just-in-time learning is stickier because users are ready to learn instead of seeing the education as an impediment to get over to accomplish their goal. Framing is important here.

6. Show me what’s important by how much of the screen it takes up

Visual hierarchy gives unconscious cues to the user on what’s important as they scan across the page. Important features can have more than one embodiment or entry point.

7. Only break UI conventions when you want to slow the user down and add friction

Only do this when safety or the experience requires it. Using conventions in UI elements increases users sense of familiarity with your software and their sense of it being “intuitive.” Read Daniel Kanneman’s _Thinking Fast and Slow_ for more detail on how to use the two thinking systems to create smooth intuitive experiences (system 1) and when to break that by adding friction to create a pause for conscious (system 2) evaluation.

8. Don’t fear the scroll

Especially on apps with dashboard or monitoring features, there’s a temptation to put everything on the screen at once. Screens want to scroll. As long as users feel confident they are on the right track of the information they are looking for they have no problem tapping or scrolling to get to it.

9. Touch targets should be as large as large as you can afford

Apple’s Human Interface guidelines suggest 44 pt as the smallest touch target designers should use. But bigger is better because it makes it easier for people to hit without intense focus, and improves accessibility. Just pay attention that it isn’t in conflict with #6.