Surprise, both of you guys are needed! The "get it done" guy, is almost never the "do it right" guy. Some are closer to each other then others... but almost never are they the same guy. The thing is, when you're building that first prototype, the most important thing is getting it out there and proving the concept works! It doesn't matter if you build the perfect architecture that can scale effortlessly if in the end no one decides your product has value.
Of course, I've been that guy who has to clean up too. That job sucks :( almost never is the product designed the way it eventually ends up being used.
I have also been on the side of finishing a new product quickly and imperfectly, and I acknowledge the trade-offs involved. I rail against the "get it done" mind-set in quotes. I find that a programmer who prides themselves on getting it done is, more often than not, a "get it done" moron who means get it done badly. The kind of programmer who thinks "getting it done" means stabbing the code enough times that the bloody wounds congeal just enough to compile. They are not smart or experienced enough to know what they don't know.
Of course, I've been that guy who has to clean up too. That job sucks :( almost never is the product designed the way it eventually ends up being used.