Vikram Chandra makes a lot of great points. He definitely is not a "hack first" kind of guy. I am of the opinion you build, then you re-build to be supportable, then you rebuild to be sustainable.
That doesn't always go over well, but if you keep code modular upfront it doesn't add much overhead, and gives you a good blend of Build once, or Build Fast.