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.