There are only two reasonable definitions of great software:
Software that people love or like very much
Software that nobody hates or dislikes
Although these at first seem like similar definitions, there is a significant difference. It is much easier to achieve the first than the second. And the first type is an easier sell than the second.
Which sounds more appealing?
“You’ll love this software”
“You’re not going to hate this software”
There are many examples of software that has qualities or features that are loved. However most software has bugs, security risks, user experience or other design flaws that people hate.
I prefer the second definition. Sometimes great software is software you don’t know exists. Low level software should never get in the way or let people know its there.
Aiming only for that unique selling point that you think people will love is unlikely to produce really great software. You need to think of all aspects of the software that users might dislike, and work hard to minimise all of those things.