In personal projects I often find myself tinkering over code and keep rewriting it because there's always something that can be improved. I'm looking for ways to tell myself 'ok the code is not perfect but I need to move forward now'. How do you motivate yourself to go forward and take the imperfect code as is?
merged with "How to stop being a Perfectionist Programmer":
I'm a code perfectionist in the best sense of the word. I'm the total opposite of the 'cowboy coder' who doesn't care how things work, look like. I literally brood over sometimes trivial problems for hours, attempting to come up with the perfect solution. When I find it, I sometimes stare at it with a fuzzy warm feeling.
I justify the outrageous time expense in my head by telling myself that this is a one-time expense as I will then be able to reuse the gained knowledge later on how to solve a particular problem perfectly.
I need to stop this. It's turning my projects into lengthy hunts for great solutions more often than not ignoring the fact that I still didn't ship yet.
I know there are more programmers out there with this kind of 'problem'. How did you tackle it, what do you do to not fall into this trap while programming away?