Its important to remember that when you start from scratch there is absolutely no reason to believe that you are going to do a better job than you did the first time. First of all, you probably dont even have the same programming team that worked on version one, so you dont actually have more experience. Youre just going to make most of the old mistakes again, and introduce some new problems that werent in the original version.

Source: Things You Should Never Do, Part I Joel on Software

Oldie but goodie. Still as true today as it was 21 years ago.