Let's face it. If you are a software developer, you have certainly felt some time that code developed by others was a real mess and that you could do a much better job rewriting it from scratch (specially without actually understanding the "messy" code in detail). Big mistake.

I'm not going to explain here why because the Things You Should Never Do, Part I article from Joel on Software talks about this in great detail. Certainly worth to read.