I have a penchant for designing UI systems that are simple and straightforward. Too often systems become overcomplicated in an effort to allow any user to do anything. As a developer and experienced application end user I appreciate the ability to unlock all the power of an application, but not at the expense of usability. There is a dynamic required to balance your goals of creating an easy to use application vs providing all necessary features, and yet still making those features discoverable. My modus operandi is to:
- Identify what the majority of users will be using the application for
- Find what features are most important to them
- Prototype a UI for them
It is important to do this first because as you yourself become a “power user” of your application you are going to forget what is intuitive to a new individual and what is not intuitive. After this initial design phase is complete I will go back and decide what power users, admin users, and the like will require from my application.
- How will they be using the application?
- What is the best way to integrate these features into the UI without disturbing the paradigm established for new users?
- How can I keep things simple but powerful?
One of my favorite examples of “overthinking” a product is demonstrated by a marketing video for the “Microsoft iPod.” The ideas expressed are exactly the same things you should be battling as a developer and you can see how overthinking your objective can cause you to get carried away.


