The importance of ‘having a great product’ is as close to an axiom as you are going to find in the tech world.
Every discussion, presentation, strategy and success comes back to the ‘greatness’ of the product, irrespective if it’s software or hardware, it’s all about a great product.
The idea of a product being labeled as great as opposed to good, or (forgiveness, please) bad will always be a subjective, a judgement that on its own carries no authority.
In the absence of a universal definition for product greatness, such a judgement will only have (some) credibility when the person offering the judgement is considered an authority/expert/knowledgeable figure, someone who ‘knows’ what they are talking about, which is on its own a troublesome idea. Think of developers, journalists, VCs, anyone at the halo companies (Google, Facebook etc.)
What makes the concept even more complicated is why someone labels a product as great to begin with.
An app developer may consider app x a great product because of the way it is regularly updated with meaningful improvements, offering a constant stream of iterations that subtly add to the overall product as opposed to a bloated and complicated mess.
A non-developer may not even notice any of these qualities yet still consider app x to be a great product she just feels that way.
If you were to swap the developer’s reason with the non-developers you allocate the same level of credibility as you did before?