Outsourcing is the practice of paying an outside company to develop a program instead of developing it in-house.

Outsourcing companies can have more experience in an application area, more developers available to work at a given time and a larger library of reusable code to draw from.

The combination can result in a dramatic reduction in the time needed to deploy a new product. In some instances, Outsourcing can save development cost too.


  • Potential reduction from nominal schedule: Excellent
  • Improvement in progress visibility:  None
  • Effect on schedule risk:  Increased Risk
  • Chance of first-time success:  Good
  • Chance of long-term success:  Very Good

Major Risks

  • Transfer of expertise outside the company
  • Loss of control over future development
  • Compromise of confidential information
  • Loss of progress visibility and control

Major Interaction and Trade-Offs

  • Trades loss of control and reduced in-house development capacity for improved development speed or reduced cost or both