One of the realities of outsourcing software is that you can't just, well, outsource it. Software development is a creative, dynamic process that requires attention to constantly changing customer requirements.
Unlike outsourcing cleaning services or warehouse logistics, an enterprise can't assume that a contract developer can do the job better or more efficiently than in-house programmers. Outsourcing can't even offer economies of scale or increased buying power. The primary benefit of course is lower salaries. Yet growth plans, changing technology infrastructures, and differing customer requirements can offset those savings. The upshot: There needs to be constant engagement among IT staff, line-of-business departments, and the offshore software developers.
Rising to the occasion are Web-based tools that give customers and outsourcing providers the resources for interpersonal collaboration and the ability to share software artifacts. The tools also give enterprises a measure of command and control. This is an emerging category, as current groupware products and software project-management tools were designed primarily for in-house use.
Two of the most broadly based tools are CollabNet's SourceCast and VA Software's SourceForge. They evolved out of the open source software community's need to have tools, not hosted within any particular enterprise, that could coordinate and manage disparate needs of dozens (or hundreds) of volunteer developers. These tools, which I've used and endorse, are adaptable to the needs of outsourcing, whether hosted by an application service provider or by one of the parties in an outsourcing relationship.
Not all offshoring projects require omnibus solutions. If the primary challenge is keeping track of software assets -- such as source code, compiled binaries, documentation, and test results -- a software-configuration management tool could fit the bill. One strong and inexpensive tool I've used is Perforce SCM, from Perforce Software. The client/server solution runs on Windows, Mac OS, and Linux workstations, making it very speedy for enterprise developers, and it can be accessed over the Web by external developers. That makes it a strong package for a widely dispersed development team.
Another oft-cited problem is quality assurance. Although the enterprise should always run static-analysis, load-testing, and run-time debugging tools against all externally developed code, a solid suite of tools from Parasoft implements AEP (Automated Error Prevention), which, in theory, stops bugs from getting into the code by enforcing coding standards and building testing into the development process. InfoWorld hasn't yet conducted a formal review, but the premise seems sound, and the tools seem well-suited to an outsourcing environment.
Offshore development, whether by classic offshoring to a contract developer or to an international subsidiary, offers tremendous promise for saving money due to the decreased salaries. But saving money isn't everything. It's up to each enterprise to ensure that the savings are ultimately worth the price.