That's the theory, anyway. I went into EMusic skeptical about that, and I came out convinced: Nine times out of ten, you want to do it in-house, not outsourced. You can see my opinions starting to form on this in this Interview in Network Fusion from July, 2000, where I said, "I feel strongly that we build ourselves..."
In my experience - especially in software development , but in any segment of the business, really - the results you get from in-house work are uniformly better than the ones you get from outsourcing. It's cheaper, the results are better, and you have a lot more control over them. You don't end up locked into a single vendor who has you over a barrel.
I think there are two valid reasons to outsource a business function. The first is because, even though you'd do a better job of it in-house, the capitalization or time requirements are so huge that it doesn't make sense just to do it for your business. The phone company is a great example of this; no one is happy with the price or service they get, but it's clearly not feasible for you to do it yourself just so you'll have high-quality phone service. For Internet companies, bandwidth hosting falls into that category. In software, your development tools and databases fit there. It's very important to draw this line in the right place. Worse than outsourcing too much is not doing it enough - you squander valuable resources on things readily available. One of the things I love about open-source software is that it effectively allows you to outsource the vast majority of the development of what you need, while retaining in-house knowledge and the ability to make your own changes without paying a vendor after the initial development is complete. In my mind, these special attributes - your control and lack of being tied to a specific vendor - make using open-source software actually an in-house prospect, not an outsourcing prospect. In the end, you're the one responsible for the result; you can't fire Linus Torvalds and hire another kernel maintainer because Linux crashed.
The second valid reason to outsource is a very cynical one: It's because the business function is absolutely required (perhaps by a regulating agency, perhaps so you can have a marketing bullet on a chart), but you do not wish to spend any of senior management's time dealing with it. In other words, you're performing the function not because it is necessary for the business (according to your analysis) but because you must, and your main concern is not quality, but cost (both time and money). For example, COBRA management.
So, if the situations you should outsource in are limited, why is there all this excitment about the concept? In part, I think it's a mistaken analysis of the incentive structure set up in outsourcing arrangments. It's the same optimism that makes communism seem like a good idea, but causes it to fail in the real world - that causes, for example, GM to spend billions on EDS and end up with a vendor they can't fire because they're stuck to them. In April GM cut their quarterly payments to EDS to $684 million, and that's down from $856 million in the first quarter of 2000.
Organizations end up doing significant amounts of outsourcing for the wrong reasons because of poor incentive structures for their own employees. Managers are held to quarterly budgets - but there isn't personal incentive to lower the budget, only to meet what's on the paper. Managers end up divorced from the real bottom line, focused more on vendors who take them to lunch (or fly them on junkets), or simply on the personal ease of managing a single relationship instead of managing dozens of employees. Absent realistic incentives, like anyone else, managers will end up managing for convenience, not for the best-interest of the business.
Nathan did point out one other possibility - the manager who realizes that his own organization is so flawed that almost anybody could do a better job. But if you're in that situation I'm guessing you have other things to worry about then whether you're outsourcing too much...
When I'm making an outsourcing decision ("build or buy?"), I try to answer two questions:
If the answer to both of these is "yes" (and obviously sometimes that's a matter of interpretation), I build. If it's "no," to any of them, I evaluate whether to do it at all, and if I do, I outsource it. But I generally try to find an outsourcer for whom that function is core to their business - don't buy a product that is an afterthought for the folks who produced it. I also try to scale my "in-house bias" to how close to the core of the business it is. I do a lot more of my credit-card processing software in-house - because it has to work, or there's no business - than I do things that are further from the core of the business.
Ask yourself these questions when evaluating whether to outsource, and I think you'll thank yourself in a few years. Also don't forget to keep reevaluating your decisions - when GM outsourced to EDS, IT may not have been close to the core of their business. Now it is, and in retrospect, it would've been cheaper for them to buy EDS ten years ago than to keep paying them all that time...
April 2002 May 2002 June 2002 July 2002 August 2002 September 2002 October 2002 November 2002 December 2002 January 2003 February 2003 March 2003 April 2003 July 2003 September 2003 October 2003 November 2003 December 2003 January 2004 February 2004 March 2004 April 2004 May 2004 June 2004 July 2004 September 2004 October 2004 November 2004 December 2004 February 2005 March 2005 April 2005 July 2005 September 2005 June 2006 July 2006 August 2006 September 2006