Maslow has a hierarchy for the needs of human beings. At the bottom of pyramid are our basic survival needs; at the top is self-actualization, which is our lifelong pursuit to (stealing a phrase from the US military) be all that we can be.

Aarron Walter shares a different hierarchy with us...this one is the hierarchy of software interfaces. Most people reading this aren't software developers, but it's 2011, so just about everyone is forced to interact with software at home and work. With this in mind, it's worth taking a look:



In brief, here's what each level means, from top to bottom:

1. "Functional" - it works.
2. "Reliable" - it works consistently.
3. "Usable" - it's intuitive.
4. "Pleasurable" - I actually enjoy using it.

The first level, functional, is typical of websites built for government entities, especially local municipalities. If you've ever gone online and filed for unemployment, the web form you had to fill out might have made you scream. In this case, "functional" is synonymous with "good enough". As soon as the programmer building it had it working at a bare minimum, the rest of the budget was slashed and it was deployed as it was.

Reliable means you don't have to worry about it crashing on you. The IRS has a website that's both functional and reliable. It works, and you can count on it to work, but I'll be goddamned if it's possible to actually find anything on there. The site is so disorganized and impossible to make sense of that it remains the primary reason that I decided never to go into tax accountancy, or ever make any effort to work for the IRS.

Usable means you can figure out what the hell is going on without have to reach for the booklet that the software shipped with...if there even is a book. This is actually pretty tricky to get right. Microsoft Word thought they solved the problem ten years ago by giving their users a paperclip to talk to. Facebook gets it wrong about once every six months when they scramble up their layout and move everything around. ("I'm going to look at this person's photos...oh, wait, that part of the page moved, so I'm actually clicking on the 'Share Photos' button...?")

Pleasurable is even harder to accomplish, and it's rare that people pull it off. The sites you visit by choice on a daily basis fall into these categories: Netflix, iTunes, Amazon. Whatever they may be, something about the experience makes you genuinely want to come back. This is the kind of software experience that Apple has managed to create on their computers, smartphones, and now tablets.

When you create software, it's generally best practice to write a specification: that is, write out in plain English what the thing does before you start writing code. Generally, the specification can cover the first three levels.

My friend posed the question to me: how do you create a specification for the top level? In other words, how do you spec out "pleasurable"?

Simple answer: you can't. If you could spec it out, then you could outsource it and send the work overseas. It goes without saying that for a company like Apple, this would be the beginning of the end.

Even if you're not in software, chances are good someone is paying you for doing work with merits that fall into a similar pyramid. What's at the top of your pyramid? When was the last time you got there?