What is the difference between outsourcing and outstaffing (dedicated team)? This is something which is understandable and mystic at the same time. When the team is doing outsourcing and writing code for other people’s products, they sell their time in small portions. Practically it does not matter what the programmer writes in an hour: 10 tests or three crutches – this hour will still be paid the same for both the business and the programmer.
If the project is working on outstaffing base, the time is also paid, but on the monthly rate and based on fulltime calculations. It means that the time is sold as for the in-house employee who is working remotely from another office/location.
Of course, the quality of the code from a good contractor does not go to any comparison with the quality of the craftsman from Freelance. However, the format of relations in which the customer pays money to you today, and tomorrow to another, forces contractors to focus on short-term results, even if at the cost of sacrifices in such opaque places as the source code.
If we are talking about outstaffing – the agreement comes as long-term and prevents contractor to think that this is the only one-time job and take responsibility for the work/code he/she is writing.
To confirm words above, remember familiar outsourcing companies or agencies who are billing you on time and material manner. How many of them write tests? There is no point in taking care of the quality of the code if it does not increase the amount of money. It is much easier to roll out quick decisions, and get money for them here and now. And until the moment when quality begins to play a critical role, the customer may not reach it. Or run, but with outstaffing (dedicated) team.