As I’m using different software products and applications lately, here’s a question I’ve been pondering: What makes an application intuitive and easy to use? (Beyond that, one could ask what makes an app “fun” to use, attractive, addictive, etc., but those are different topics of their own.) Let’s assume an application meets user needs via its built-in functionality, what’s the difference between being perceived as user-friendly vs. hard to use?

I’m not a trained UX or Product Management professional, but based on what I’ve been experiencing, I’d boil it down to this:

  • Predictability and
  • Discoverability.

Here’s what I mean by those terms:


An application is predictable when the user can…

  • Understand how its features work – without relying on documentation or “Help”,
  • Intuitively predict how the application will react to user operations – without specialized background knowledge, and
  • Reach correct conclusions about how to go about meeting his needs through the provided functionality.

One of my theories is that many applications get designed by developers, not UX experts. (No offense to developers – I’m one myself and do design my own apps!) Developers think about functionality differently, often approach it from a technical perspective and they inherently know to much of the application and its design already and can’t put themselves in the shoes of a casual or new user without that background knowledge.

Other considerations to enhance predictability are:

  • Consistent use of UI elements, fonts, color schemes, iconography, screen layout, and naming conventions
  • Repeatable patterns
  • Consistent paradigms


High discoverability means that the features and functionality of an application can be easily discovered by the user – again without relying on documentation or help. The user will not be able to leverage and appreciate an application’s functionality if it is difficult for him to discover that it’s actually there. If functionality is hard to find or practically hidden, there’s a risk of user never finding it and getting frustrated because he can’t solve his need.

If an application is well instrumented, i.e. user interactions (e.g. time on page, mouse interactions, scrolling, entry and exit points, etc.) are tracked, logged and available to the application provider, interesting insights can be gained about which parts of the application, features, and controls are used and how often. This information is vital as it depicts how users actually use the application which may be quite different from how the designers intended it. It may also uncover screens or features that are barely ever used, maybe because of lack of discoverability.

The dark side of discoverability, which should obviously be avoided, is overloading the UI with menus, buttons, and controls, which could overwhelm the user. The art is exposing functionality in a thoughtful manner. One technique that could help may be to create layers of functionality, i.e. primary functions, which are easily visible and accessible directly from the UI, and secondary functions, which are still easily accessible, but maybe only via other UI elements (instead of being exposed directly). Example: Microsoft Word allows me to quickly change a paragraph style via a single click of a primary UI element while inserting a footnote requires a trip to the menu. Once again, a UX professional might help provide some much needed skills in this area (and provide a counterweight to us developer types).

Overall, I think more attention needs to be paid to how we design applications. I guess in the end, I’m making a case for either engaging people with the appropriate education and experience or at least being more deliberate about how we design our apps and look at them from the perspective of an outsider, not from the angle of a technical insider. More advanced practices like instrumentation & application analytics, user research, user observations, interviews etc. will certainly also be invaluable in enhancing our applications’ predictability and discoverability.