Keeping people who are doing a bad job isn't going to work either, the date has been pushed back and they have hired new people and gone to great lengths to keep their ready date. Withought money to hire people they would be volunteers, it's either you pay them or you don't.. That is throwing money at the problem and that is what's working.
A bad job - you're operating under the assumption that the people being replaced are doing a bad job as defined by the
quality of their work. It may simply be that they don't have enough time to get all the features they want done.
Throwing money at the problem - this is what you do when you add workers to a project,
not replace workers.
At least by keeping the employees on the project, they're already familiar with the codebase.
Read the book that iago suggested (
The Mythical Man Month) or one that I suggested (
Rapid Development) -- the one I suggested is even by Microsoft Press -- and you'll see what we're talking about. The only way to deliver a truly quality product when you don't have enough time is to slip the date or drop some features. Clearly their priority is features, so they've slipped the date.