Although I understand the sentiment, and have followed it with a number of my projects, an aweful lot of companies build and sell software that is not necesarily useful for their own purposes (banking, financial, retail etc).
A better and more general rule, and one that has been stated millions of times is simply its really REALLY important to known and understand your client*.
The client could be a 'normal' Internet user, or could be a multi-million dollar enterprise, but unless you understand them, you can forget trying to get money out of them! (and if they are a multi-million dollar enterprise, the people you need to sell to are very unlikely to be the people that actually use the system and you absolutely do need a mature product strategy and the necesary resources to even make a single sale).