// software design snippets: a collection of short thoughts on making software

Is a design intuitive or just familiar?

When testing a design with users, it's difficult to separate between what's intuitive from what's merely familiar. Users are often good at using a UI because they're familiar with it, not because it's easy to use.

One way to try to distinguish the two is to observe the derivative of usability: the rate at which a user improves at using a design. Rather than watching how well a user uses your UI, observe the rate at which they get better.

For example, are the swipe gestures in Tinder (browsing) and Snapchat (navigation) intuitive? People quickly learn how to browse Tinder by swiping right and left, but navigating Snapchat happens much more slowly. If you watch someone unfamiliar with Snapchat use the app, they'll constantly make navigational errors; moreover, they'll continue to make those same mistakes for a long time.

User interfaces don't need to be simple

Less isn't more. Usable and simple aren't synonyms. Usable and useful aren't synonyms.

As simple as possible isn't a hallmark of good design -- it's often a sign of a design gone wrong. Instead, consider simplifying only when it amplifies other areas of the design: "amplification through simplification."

Should software "just get out of the user's way"?

Once I worked on a team tasked with overhauling legacy software by adding a WYSIWYG workflow. While the new experience was much simpler, the simplicity came at the cost of flexibility and control. When the overhaul was released, users hated it:

Perhaps counterintuitively, people don't always want software to be invisible and "get out of their way." Most people don't use software for fun. Instead, its purpose is to help get a task done. To be useful, sometimes software also has to be complex.