Hi!
I'm (or rather have been) an IT project manager by trade and in project management, we have this principle that you should learn to finish your project when it is "perfect enough".

Perfect enough means that the thing you created has all the bells and whistles it needs to have and that it does work as it should. Full stop!
Going any further will get you in trouble in at least one of your boundaries (Within Time/Within Cost/At the desired performance & technology level/While utilizing the assigned resources effectively and efficiently/Accepted by the customer), etc.

Here are a few of the more common casualties of chasing perfection:
  • Diminishing Returns – The effort required to polish something beyond discernible improvement is rarely worth it. Will your users even notice, or more importantly appreciate these efforts?
  • The 80/20 Rule – The final 20% of any project usually takes 80% of the effort. Moreover sometimes the last 20% can be so unreasonably difficult that all previous effort needs to be scrapped. This is how good ideas get scrapped.
  • Lost Time – Excess time spent honing tiny details could be spent working on future phases, while users can invest themselves much earlier.
  • Lost Feedback – Delaying releases also delays some of the most vitally important insights and feedback from users. Critical bugs are one thing, but maybe that awesome feature you thought people would love sucks? How will you know?
  • Flawed Design – Software designed with perfection in mind is idealistic in nature and often plagued by inflexible architecture and poor integration. In these cases, design trumps compatibility and you end up with a system that doesn’t play nice with anything else.
  • Cost – It’s just plain more expensive to work on something for 10 years than it is for 5 years.
  • Opportunity Cost – What new features and suggestions could have been implemented in the time it took to polish every dark recess of the code base? How much market share has been lost while your competitors capitalized on your inactivity? How much money has been forfeited from a lack of new features or major releases?
  • Technology Decay – Technology is inexorable and cruel, leaving behind antiquated versions of legacy software in favour of anything faster, cheaper, better or newer. Suddenly your state of the art system is a stinky pile of legacy garbage that nobody wants to touch.
  • Paradoxical Refining – Obsessive second-guessing can lead to valid or otherwise satisfactory features being changed repeatedly, sometimes for the worse. Ever agonize over something (like a blog entry) until you had thoroughly mangled an otherwise acceptable success?


In the above list, replace "users" by "players", years by days, client by yourselves, etc. and you can apply a big part of the above list to the building and painting of planes...

Pardon this lengthy and somewhat technical introduction, but I'd like to know at what stage you think that your planes are "perfect enough":