In our line of work, we deal with designing our own projects as well as the ones of our clients. Some tasks are engaging, some of them are not that much. However, all projects have two common problems – obsession with details and as a result a constant delay of a project launch.
Each client wants his or her project to be the best. And it is quite fair. Besides, most clients try to squeeze maximum functions into a limited timeframe and budget. And this is the root of all evil. No client has ever told me anything like 'The goal of our website is to start selling as soon as possible. All this kind of stuff can be made later!' On the contrary, nearly always I hear, 'And what if visitors want to do something more and we don't have such a function. They'll leave and never come back!' As a result, we spend a great deal of time with our client discussing different functions and modeling behavior scenarios that don't directly affect the goal of the project. The project that could have worked and received reviews, is still being polished.
Perfection has no limit. But timeframe and budget do. The sooner you kick off your project, the sooner you can get the spent money back and start making money or saving more. If your project does have legs and is attractive for users, you can receive firsthand feedback from them about what extra functions are needed. If your idea stirs up no interest, you'll waste less money than you could if you kept working on the project. In both cases the advantages are obvious.
To outline the road to success. Define the goal of your project clearly and decide on the minimum functions needed to reach it. As soon as these functions have been designed and tested, launch the project. No one can guarantee that you will succeed. But at least you will move in the right direction.