I just made a post on a LinkedIn Group that answered a question that happens a lot to business startups, entrepreneurs, and anyone else trying to get a project off the ground with a programmer.
Even working as a sole developer I have found that using a SCRUM based Agile approach with the client solves a lot of the traditional problems of cost overruns and delays.
Daily contact, high visibility, and communication of possible impediments to the time line is now crucial to get a proper Rapid Application Development (RAD) cycle.
SCRUM is the process now that most high profile commercial web systems use because it alleviates the traditional problems of blowing budgets and a constantly moving deadline.
Simply giving a spec to a developer to go away and come back with the finished product is fraught with danger.
If you hire people that know what they are doing but charge a little more, you will save money, and in the short run too if they use SCRUM.
I use Axosoft OnTime to manage projects with SCRUM methods. You can find out more information from here.