There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. [...] The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It's harder to read code than to write it.
It's harder to read code than to write it.
Writing code is not production, it's not always craftsmanship though it can be, it's design.