I had dinner last night with a CIO who's working on outsourcing a significant part of his development and testing. He suggested that any senior manager who's not thinking about outsourcing and how to make it work is missing the boat. “When you're in a fixed cost development situation, and people are most of those costs, you've got to go where the people are cheaper.”
After dinner, I read Critical Path, an article that says the IT career path is not very interesting because the jobs are moving offshore.
Ok, so here are two data points: the we-have-to-do-more-with-the-money-we've-got, and the our-jobs-are-changing-or-going-away perspectives. As a 25-year veteran of the industry, I say, ok, this is what happens in business.
As work becomes a commodity, the work moves to the cheapest labor pool that can handle the work. This started with the clothing business in the 1970's and continues. Most of the clothing we wear in the US is cut, sewn, packaged, and shipped from other countries. As call centers became commodities, first they moved to rural areas in the US in the 1980s and 1990s. Now the call centers are located in India (and other relatively inexpensive labor pools). Many manufacturing plants moved to Puerto Rico in the '60s, '70s, '80s, where the workforce is educated and cost to manufacture is cheaper.
If you manage a fixed-cost IT department, where IT is a cost center, not a possible revenue generator, then it's your fiscal responsibility to consider how to accomplish more work for less money. You can attempt agile techniques, which require substantial change, or you can consider outsourcing. You can also consider managing the project portfolio, so that you make progress on one project at a time, instead of progress on none of the projects ever. 🙂 Except for outsourcing, the other alternatives require management change.
It's not easy to manage an outsourced project. (No, don't even think about outsourcing the testing. Outsource the whole darn project, not just the part you don't understand or don't particularly value. Otherwise, your results will be inadequate, not worth the money you invested.) You have to build trust with your outsourcers, create requirements, give feedback, use common tools, and so on. All the things you need to do with an in-house project. The only difference should be the cost of the people's salaries.
If you are a revenue generator, not just a cost function, consider outsourcing when your products are in the mainstream, or have hit the late majority (Geoffrey Moore's high tech marketing model). That's the time to lower your costs and increase your margins. And it's the time when the work is no longer “interesting” to the people you've hired.
I don't claim to have figured out outsourcing, but it's a fact of life. The more your IT shop looks like a factory, the more likely you will have to outsource and soon. If you're creating new and unique products, you don't look like a factory. Then look at Moore's model to consider when outsourcing makes sense. If we plan for it and plan to make it work, we can decrease our current fixed costs and be ready for outsourcing. Let me know your experiences.