Pleasant Design

With MVPs becoming the standard for software deliverables, many organizations discount the importance of building software that is pleasant to use.

This collection of resources aims to provide clear guidelines and examples for building software users will love.


1. Familiarity

Providing familiar controls and patterns of interaction is integral to a smooth software experience. While novel elements and patterns may give the impression of distinctive software, these conflicting experiences unnecessarily add to users' cognitive load.

Using unique but nonintrusive animations, colors, and typography are great ways to give software a unique look, but it's a common mistake to "reinvent the wheel" with inputs and controls.

2. Clarification

Some options and interactions are complex and may not be entirely intuitive to all users.

Clarifying elements such as tooltips and links to further documentation should give users a better understanding of these less intuitive functions. User demographics and any existing usage data should drive the inclusion and content of clarifying elements.

3. Feedback

Software controls should provide clear feedback upon any interaction. No user action should result in uncertainty.

Feedback includes states for interactions such as focusing, blurring, or hovering. For more complex events like form submissions, users should be notified of each event's progress and results.

4. Efficiency

Minimizing the amount of interaction required to perform a task is critical to a pleasant experience, but providing efficient paths to many functions without cluttering interfaces can be challenging.

The most common and valuable tasks should be simple to accomplish, with reasonably few discrete interactions.

5. Attractiveness

While software may be highly functional and intuitive, many users expect fresh, modern appearances. Attractiveness is highly subjective, but an appealing and cohesive experience helps keep users engaged.

Attractiveness includes consistent styles, polished typography, and a look likely to be appreciated by target users.

6. Other Considerations


Many of the above principles apply to developing accessible software to some degree. Pleasant experiences should not be limited to those interacting via ideal circumstances.

Implementation details are beyond the scope of these principles, but best practices should be followed to provide accessible controls and content for interactions involving screen readers, keyboard navigation, reduced vision, and reduced hearing.


Whenever possible, software should adapt to the context of its use and provide users with the expected experience for their preferred language, data formats, symbols, and legal requirements.

© 2022 Tim Wilson