Most of our new clients face the problem of choosing the most suitable way to pay for development. To help them solve this problem we have put together some facts about each of the ways of getting billed into a simple comparison table.
|Project type||Better suits for development from scratch or big separated modules of existing apps.||Excellent for ongoing work.|
|Project cost||Client is likely to overpay, because the quote will include all risks for developers.||Final cost is usually lower, since not all risks are going to turn into real problems.|
|Project size||Suits for small-to-medium projects.||For every kind of project, especially for bigger ones.|
|Preparation time||Initial discussion between PM and client usually takes much time (especially in the case of big projects), since all the details must be covered prior to project start.||Basic discussion is usually enough to start the project and consider upcoming features while developing others.|
|Client’s risks||Less risk for clients. They know whatever happens they will not pay above the estimate.||More risk for a client to pay for something and still have nothing. Client has to trust developers.|
|Project specification||Requires very detailed documentation of the project*. Client needs to understand what he wants very clearly.||Detailed documentation is preferred, but not required.|
|Upfront payment||Upfront payment required (usually 20-30 percent)||In some cases upfront payment is not necessary**.|
|Developer’s motivation||Developers are motivated to finish the project quickly and get the money.||Less motivation for developers to complete the project quickly.|
|Ongoing additions/changes||Every addition (and there are always additions and changes) has to be discussed, estimated, and added to the final price, which sometimes can delay the actual implementation.||It’s not necessary to waste time on estimating small additions – just do it.|
* Sometimes when clients insist on fixed price having no detailed project description we start preliminary hourly rate job of gathering all the information from the client and putting together thorough project specification.
** Services like oDesk made it much simpler to work on hourly rate jobs. They have sophisticated time tracking and project management tools and protect both sides during development on an hourly basis. So we never take upfront payments when working through oDesk.