This contrarian post comes by way of the aptly named programmingisterrible.com. It's a bit ranty, but I rather enjoy the author's tone:
If you ask a programmer for advice—a terrible idea—they might tell you something like the following: Don’t repeat yourself. Programs should do one thing and one thing well. Never rewrite your code from scratch, ever!
He'll take you step-by-step through why he thinks these generally accepted principles are often mistakes.