Work like Woody Allen
Woody Allen has credits in something like 50 or 60 movies. In Woody Allen: A Documentry he describes his work habit as immediately starting on the next right after finishing a movie. He figures if he makes enough movies, some of them will be good.
I want to try embracing that philosphy more. Recently, when I finished an application I had been working on, I realized it’d be much cleaner if I’d architected it differently. Only by completing my initial version of the application did I fully understand the problem I was trying to solve. In this case I was able to rewrite everything from scratch in using the new architecture in a fraction of the time it took me originally. Once I have the write architecture / data structure in mind, the rest falls out.
The problem is not letting the perfect be the enemy of the good. Woody knows he needs to finish a movie by such-and-such a date. Those are the terms of his contract. With software projects, especially personal ones, to throw everything out and start over too often. I’d say that it is important to get the project to the point where its suitable for external criticism, but Woody never reads his reviewers. Perhaps internal critique is enough.