A while ago I wrote about "good enough", and how Jay would get trapped in tweaking projects looking for perfection. Lifehacker recently posted a simple solution to the problem, a way to avoid the trap.
Before you even start the project, simply first define what constitutes "finished", what Lifehacker describes as the "definition of done". (The term comes from a software development strategy called Scrum, but it can be applied to almost any situation. See What Can Software Developers Teach us About Crushing the ‘Perfection Bug’?.)
You make a list of all the criteria the project must meet to be considered done. The criteria should be measurable. When it meets those criteria, it's done. Period. You can stop tweaking.
In software development, you are handed a list of requirements and specifications. If compactness, elegance, and performance are part of the requirements, they should be listed. To landscape your front garden, decide up front what effect you want to accomplish. Planning a party? Define what you want to happen. Note that the list is not simply a shopping list. It's effects you MUST accomplish, and it should be a minimum list.
Perfectionists will continue to add specifications, expanding the list as the project proceeds. You can't do that. Spend enough time on the definition of "done" up front, and then resist the urge to add to it. When it's done, it's done. Good enough is good enough.
Jay's problem was an emotional and psychological fear of never being good enough. I blame his father for that. J Senior demanded nothing less than absolute perfection, and perfection was defined as "the way *I* would have done it". If the child Jay didn't do things perfectly, his father pointed out all the flaws, and took over the project himself. He had the attitude that if it wasn't exactly the way he himself would have done it, exactly the decisions he would have made, then it was "stupid", and he used that exact word. I heard him say "That's stupid" to Jay a dozen times before I told him that if he ever again implied that my husband was stupid, I'd feed him a list of all the stupid things he says and does, "starting with your haircut and what you feed your dog! It's no damn wonder she has a heart problem!" He never did it again, but I could see him biting his tongue as he glanced at me.
If it meets "done" criteria, and if the criteria are good, then it is done and good enough.