How to Successfully Outsource Your Software Projects

Everyone wants to take advantage of the cost savings of outsourcing their software projects, but not everyone succeeds. Successful outsourced efforts require good communication, relationship building and trust, as well as a solid understanding about what Capability Maturity Model Integration does-and doesn't-tell you about an outsource vendor's capabilities. Here, Knowledge Center contributor Rex Black explains these and other critical logistical issues to consider when selecting an outsourcing vendor.


In the last decade, outsourcing became a powerful force in the software industry. Motivations behind outsourcing vary, but the reason mentioned most is that of cost savings. Unfortunately, all too often, previous attempts at outsourcing failed to deliver the desired efficiencies or perhaps failed to deliver anything at all.

So, is outsourcing some siren on rocky project shores, luring to doom the captains of IT who dare to listen to the siren's song? Not at all, but outsourcing is not without its risks. Over the last 20 years, I've worked on both sides of the outsourced IT relationship and have seen it work. Let's examine what successful outsourced efforts have in common.

Successful outsourcing involves planning and handling the unique logistical details of outsourcing. For example, success on many software projects requires e-mail and intranet communication, synchronized software life cycles, procedures for file transfer and effective configuration management. It also requires support for development, test and staging environments, sufficient test data, common tool usage and compliance to applicable standards.

Project teams must understand the tactical details of how the work will get done, day-by-day, person by person, and resolve any logistical obstacles that could occur in advance. Good project logistics are like air and water: You don't notice them until they're bad or, worse yet, completely missing.

However, outsourcing logistics are complex and often span organizational areas of responsibility (or even falls into gaps in areas of responsibility). Problems happen often and cause many outsourcing difficulties and failures.