+Rep.
Fuck assholes like OP who commoditize code. It's not just something we do for you for money. Treat every little shitty project like you're commissioning a painting -- If you want a fucking finger painting with macaroni decorations, then tell your coder "Make me something sweet" and give him a week, but your project will be shitty (due to lack of direction) and he'll still charges you for a full week.
But if you want a Matisse, go to a professional, give him a reason to care about it, and define what "done" will be -- Specific docs, UI mockups, deliver him the design before he starts work. Can you imagine Leonardo saying "Sure, it's already finished but I'll re-paint over half the Sistine ceiling with an Epic Direct logo, because you thought this idea up drunk last night" to the pope? Doesn't matter what the client pays, we are artists*, and very few [of the good ones] are strictly-in-it-for-the-money to the point where we'd re-build half the project from the ground up, even if you pay us for the time. We want to feel accomplished and empowered and we need to feel that there's progress on the project. Languishing in "polish" and "bug fix" stages for too long is poisonous to developer productivity, and there's simply nothing you can do about it but hire more developers and get through these phases faster, so that everyone feels productive.
Finally, if you expect a coder to "think" for you -- that is, *guessing* that you'll want a "Forgot Password" feature or various speedups or a 3am emergency server reboot, and doing smart things for you *without* you asking, you give him a sizable % of the project. Why on god's green earth should I make my own job harder, adding more features and doing extra work and pushing back our launch date, trying to read your mind and maximize your bottom line, without significant incentive to do so?
* I might have my pompous head up my ass, but I define "art" as anything where my personal style is the single greatest factor in the quality of the final product.
^this
Something else you don't realize is a good coder will actually think about what needs to be done to satisfy your requirements before they run off and start writing a bunch of code. You have to realize this part isn't free even if you think it should be.
I have a whiteboard that's half a wall in my office for drawing out database schemas and flowcharts before I ever even write code. After that you start with your unit tests then you start on the real code. It takes time to produce quality.