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?