The awkward gap

In my opinion there is an awkward gap between how software works and the way it is used.

I noticed that software to most non-programmers is a mysterious, magical or stupid thing. This often leads to exaggerated assumptions of how easy or difficult it is to build software.

Which leads me to a courageous thesis: Non-programming people cannot evaluate the complexity, power and quality of software beyond their user experience.

Drawing a conclusion: Great software is all about great user experience!

This thought radically changed the way I am thinking about code. Whatsoever great code is considered to be – in the end there is only one thing that counts: your software has to be useable and useful. Even better: if your software is actually fun to use, you definitely nailed it!

So what are the most important criteria for great user experience?