Why Outsource or Why do it in house?
Throughout the history of computing, companies have switched between relying on outside vendors for all their computer needs, bringing it in-house, outsourcing it again, restructuring and bringing it back in, and on and on. Many companies mix and match between outside resources and inside resources.
No one way is the best for all companies at all times. There are a number of factors that help identify when a project can be outsourced and when the resources need to be found within the company.
It turns out that one of the key factors is not something that can be easily measured. Trust is the key issue in any discussion of whether to outsource or to do in-house. For example, the CIA does a number of tasks itself that would be outsourced in commercial companies (such as the janitors). The other extreme are the "virtual companies" where the company has very few employees and everything else is outsourced.
Another factor is when the process of outsourcing can be used for strategic purposes. For example, after deciding to restructure the HR function, the top management of one company outsourced the HR computer functions in order to bring in a system that would help them handle the international HR aspects. When deciding to use the outsourcing process as a strategic partner in a restructuring, the decision of who to use should be done as carefully as any significant hire.
When deciding to send work out, remember that outsourced projects often take more management time than in house projects do. Because outsourcing adds a "communications distance", projects need to be specified far more carefully and the results tested far more. This increased management load can pay for itself when the outsourcing succeeds. If the management is not available to do that, it is often better to do the work in-house.
Just like in house project, many outsourced projects fail. Predictions are that 30 to 50% of all outsourced projects will fail.
When looking at a multi-year outsourcing, it is impossible for the contract to cover everything that will happen. Instead, the contract needs to spell out how to communicate and resolve conflicts. Without that agreement, the contract will collapse. For example, the State of Texas and IBM have had a contract collapse recently with each side blaming the other for the situation.
Outsourcing falls down when a high degree of trust is needed and internal accountability is required. In those cases it is better to do things in house. Another reason to do things in house is when it is hard to measure the outcome of the effort. Either way, the process of asking if to outsource something forces the management question, "Should we be doing this task ourselves or hire someone else to do it?" Ask that question constantly.