Illogical question. The entire point of "good enough" is that it is excellent.
Each iteration of the project has to be good enough. All you need to be excellent is enough iterations.
Perhaps a better question would be, "Which do you favor, many 'good enough' iterations or one shot at perfection?" The answer to this question is obviously the former because the latter almost never gets done.
There are a lot of similar questions that are interesting.
For example, let's say that all product development activity falls in to one of three categories: "concept", where you're collecting ideas and talking to customers, "prototype", where you do your heavy lifting, and "polish", where you refine your product's performance/UI.
You aren't going to be able to control the amount of "prototype" you have to do to achieve a given product state. But you can control how much "concept" and "polish" you'll throw in with it. If you estimate that it will take you two months working alone to produce a prototype that will interest customers, what is the right amount of time to talk to customers before you write your first line of code? I'd say a few days--in my view, startups should do this early on, instead of jumping in right away.
As for the "ideas" part of "concept"--I've been surprised how easy it is for me to turn on ideas like a tap. The insight that made me completely rethink what I'm working on now came to me late at night when I had forced myself off the computer because I wanted to start getting to bed earlier. But even if you can't turn on ideas like a tap, how much time should you spend recording the ideas that do come up and doing research on the internet? My guess--quite a bit, but it'd be even better if you could outsource this work to a nontechnical cofounder. (Too bad I haven't been able to find anyone who meets my standards for this and wants to work with me on the product I'm building.)
The amount of "polish" you should do before serious PR efforts is extremely situation-dependent.
- If you're entering an established market with a bunch of small innovations over your competition (Quora), you should do a lot of polish so your product will genuinely be the best thing out there (and they did).
- If you're doing something totally new, a moderate amount of polish is probably better--just enough to avoid acquiring a bad reputation.
- If your customers are going to be spending significant cash with you, polish is key so you seem (and actually are) trustworthy.
"The answer to this question is obviously the former because the latter almost never gets done."
If you know you're likely to irrationally give up on a product idea because your morale is low or irrationally continue with a product idea regardless of whether customers say it'll be useless, obviously those are factors to take in to account.
Personally, I wouldn't be afraid to, say, spend a long time building a better version of Ebay without doing any releases if I was convinced that people would switch to my site if and only if it was a significant improvement. If my intuition changed partway through the development process (without any solid external evidence or new observations--just a change in my gut feeling) then I would say "well, my intuition now isn't much better informed than my intuition at the beginning of the project--they're equally valid intuitions" and operate as if the average of my two intuitions were true (say, wrap up what I've got so far and make a solid effort at releasing it. Or start working half time and spend the other half of my time plowing onward with my project.)
Each iteration of the project has to be good enough. All you need to be excellent is enough iterations.
Perhaps a better question would be, "Which do you favor, many 'good enough' iterations or one shot at perfection?" The answer to this question is obviously the former because the latter almost never gets done.