I've been working on a project in my spare time and will never be happy with it, which I guess is a good thing. At what point do you tell yourself that it is good enough to get out there and get people testing, without being too early to ruin it?
If you're going to have people close to you testing it with no real worries about user activation, engagement, etc. just get an alpha out there and start getting feedback from real users. Once you've driven out most of the bugs and the app is fully functional, move it to beta and start actively trying to get users. During this stage, you should be continuing to fix bugs, listening to user feedback, and iterating as necessary. It will never be too early to "ruin it"; if the idea has legs, users will be more forgiving in the early stages and will most likely give you really good feedback on how to improve the app. Just get something out there and start learning from users. I too am a perfectionist, but you just have to bite the bullet and get it out there. Remember, "great artists ship."
As soon as you're fed up with listening only to your your own feedback. You are <i>not</i> representative of your product's averaged userbase. Stop avoiding showing your product to outsiders and get their opinion sooner rather than later.<p>Validation of your product, let alone the workflow, colours, fonts, aesthetics, etc is crucial. If your product is promising enough, you'll retain the early adopters as evangelists going forward. If it's not good, then you should be able to get some great feedback - sometimes that is "stop what you're doing and find a different idea, this one sucks".<p>Any feedback is good feedback. Start now.
Thanks for the great feedback, seems the consensus is 'as soon as possible'. I'll start inviting some people to use it this week then, thank you.<p>Here's an instagram founder agreeing with you:
<a href="http://venturebeat.com/2011/05/20/answers-are-easy-finding-problems-are-hard/" rel="nofollow">http://venturebeat.com/2011/05/20/answers-are-easy-finding-p...</a>
As soon as possible. Waiting and iterating before the project sees the light of day is not helpful for a small project. It's only a good tactic for large companies. If your project works, ship the beta, even if there are changes you want to make. Ship and continue changing!