KISS & design
In order to keep a piece of software simple, you have to understand it. If you don't understand what you're building, how surprising is it that the code is complex and funky? If writing the code is the vehicle that takes you to understanding the design issues, the code will need to be rewritten once you understand the design.
I spent years taking a big piece of software from the "pretty much working prototype" stage to a production quality server with the same features. In the process I rewrote every module, and reduced the code to 20% of it's original lines of code. NOW the code is simple. It's performance is good. It never crashes.
My experience with my own code is that I have to rewrite an original program twice before it is really beautiful. I usually get the chance to rewrite code during the process of removing defects, improving performance, or adding features.
There is a traditional view that if you do enough analysis upfront, you shouldn't have to rewrite code. I partially agree with this view, but in practice you usually have much initial pressure to produce something, and much time to fix it later if the original code was successful. (Code in haste, repent at leisure...) As an industry our record of doing enough real analysis upfront is not good, which probably explains why management always wants us to hurry.
I don't know how to achieve simplicity on the first iteration. Anyone who can prove that they know how to do this is way beyond the general state of practice.
Lame advice to keep it simple by avoiding complexity is unhelpful. Test-first design is a little bit useful, because it helps you see what interface you need to implement. Really understanding your users' requirements is good, but very difficult. Same with analysis of the design. 20 years of practice is only moderately useful, probably because it helps with the other things I've mentioned.
Probably the best help is having a metric of how simple things need to be, so you know when you're done and when you still need another iteration or two.