College was the first time I heard the phrase. It’s a heavy statement. Academic. Aspirational. A cross between a Yoga Master and the happiest old man you’ve ever met; the best outcome in a Choose Your Own Adventure book. Self-actualization, along with the rest of Maslow’s Hierarchy of Needs, instantly stuck with me.

Sometime in the past couple years, while working on new features at Ubersmith, I had the eureka moment that the Hierarchy of Needs applied to much more (less?) than life. Googling quickly dispelled me of the thought that I’d come up with a new idea, but I didn’t fully agree with the versions I found.

While all of these individual elements are independently important, the real fun starts when they work together.

Core Functionality

Gotta start somewhere, right? Whether actions or information, there are a set of items that are absolutely non-negotiable for the product to be a success. Consider this a version of the Minimum Viable Product – there is a base set of functionality that makes your app an attractive option to the intended market. Simply put, the most basic implementation that yields the required result.


The next level focuses on whether someone can count on you. This means the underlying infrastructure has to be rock solid, repeatable, credible. This means a lot. This means the redundancy put into your data center choices, your infrastructure platform (servers, cloud, etc.), your code quality, related (and sometimes external) APIs, CSS, HTML and browser compatibility. This is where most fail, mostly because it’s a tall order.

This is the coffee maker without auto-on timers and Wi-Fi, but makes coffee reliably, every morning, when you need it most. This is the car without power locks, windows or or GPS with 175,000 miles on the odometer, which starts every time.


Once the core functionality and safety of the product are established, the next focus is on making those tasks intuitive. This means taking into account concepts like mental models, Fitts’ Law, contemporary conventions, clear primary and secondary actions, visual cues and about a million other things that we continue to learn about every day.

Your application is a story, not a scavenger hunt. Great experiences construct a clear narrative that helps people self-segment themselves quickly and includes subtle roadsigns to help them achieve their individual goals, all while trying to be as invisible as possible.


At heart, the design carries two burdens. Functionally, it needs to reinforce the established usability decisions, and aesthetically, it establishes the tone and feeling of the entire experience.

On the functional side, we have a lot of conversations on reinforcing visual hierarchies, concentrating attention, understanding how tone and color impact emotions, etc.

Aesthetically, the times are (always) a changing, and in rapidly evolving platforms like the internet, it’s important to remain contemporary. Art and design establish the look and feel of an era: Art Deco, Web 2.0, The Crusades, etc. and you will quickly look dated if the design component isn’t evolving as actively as the underlying code.

Finally, don’t fall into the trap of picking and choosing trendy elements and plugging them into your app. Though it may look visually similar, your carbon-copy probably didn’t have the same requirements, and the beautiful face now starts working against the lower-level decisions you’ve made.


Here’s where it starts to get inspirational. When you’ve nailed the underlying tenants of a great application, then you can start to pave the way. You can start introducing conventions, and with the trust of the user and a proper narrative, your audience will embrace it rather than reject it.

As long as you’re not undermining any of the established trust, the experimentation should be at every level of the pyramid. The most common experimentation seems to be in design and usability, which often generate faster user feedback, but push yourself to look further down into the stack.

As we see it, the underlying idea is compounding trust. Trust that the functionality exists, trust that the design reinforces hierarchy, trust that you have the user’s best interest at heart. Once you’ve nailed that trust, have fun and do something notable.