An article by Esther Schindler discussing how it is often a good idea to start coding from scratch instead of trying to patch the big mess you created the last time when meeting a deadline.
I’ve come to believe that all great software is written three times. The first time you write it, it’s to see if your idea can work at all. It’s the digital equivalent of scratching something out on the back of the envelope, leaving out the fancy stuff and just concentrating on the basic feature or algorithm. Once you figure out that yes, this might be a good way to solve the problem, then you write the code a second time, to “make it work.” But it’s the third time you write the code, when you’ve had the opportunity to learn from the mistakes from the “try to make it work” phase, when your application will be the best it can be. (Well, almost. There’s often a 3.1, too. Even great software has a few bugs.)