- in a visceral way, where colours and sounds and textures matter and can give us intrinsic satisfaction without us even being aware;
- in a behavioural way, where we seem to like things which don't require a great deal of conscious thought, but at least some level of skill (like driving, swimming or playing the piano);
- in a reflective way, where using the artefact or owning it elevates our self-esteem or the esteem of others.
So a car might offer its owner a great deal of visceral and behavioural satisfaction through a smooth design and a snappy gear-shift, as well as some reflective happiness by (for instance) using an electric engine (and therefore allowing its owner to see herself as a planet-loving altruist).
So how is this relevant to software? Well, it's probably obvious to anyone who's spent more than a few hours in front of a console that game developers got the visceral level of design right. It's always been a puzzle to me why so many shops whose sole point of sale is the internet (pretty much any airline website and even behemoths like Amazon at times) are so resolutely set on failing to provide people with a good shopping experience. One can only hope that companies like Testlio will one day fix that.
The next level up is probably more subtle. I remember once reading in a HCI book that nobody likes being a beginner. It's frustrating and in reflective mode it makes us feel stupid and worthless. Yet again I am perplexed at how unnecessarily steep the learning curve is for so many applications. To this day I have never seriously used any Eclipse or Visual Studio because I simply have neither the time nor the desire to learn to browse (in this day and age!) through heaps of pages of settings to unearth some obscure check box three levels deep that allows me to switch on C++11 features in the compiler. For all the pain, at least a man page + grep allows you to search through the entire documentation and at least attempt to find the relevant bits with some speed, instead of spending minutes staring at the screen like an idiot trying to remember which way you went last time.
Finally, what one wants of a piece of software (in addition to, that is, being helpful) is that it makes us feel clever using it. I'd almost like to posit that software which gets levels one and two right, gets the last one for free. Any reasonable vim user can change pretty much anything about the text before them without ever lifting their fingers off the keyboard and that is viscerally satisfying. Basic commands, which also have the highest frequency, are easy to imprint in one's muscle memory, so on a behavioural level one can step out of the lkflsnfdfnaldkfj phase pretty quickly. And in the long run, using vim requires a certain level of skill and dexterity, which can make the people using it secretly feel good about themselves. There's a reason people wear T-shirts sporting ":wq" and not "I love Office Word TM".
In any case, I think Don Norman's framework might constitute a good starting point in creating the next trending application.