Skip to main content

Outsourcing

Hiring external resources or companies to handle parts of the project.

Also Known As

  • Contracting
  • External Hiring
  • Third-Party Development

Related

Addresses / Mitigates

  • Staff Risk: Accesses external resources and skills that may not be available internally.
  • Funding Risk: Can be cost-effective by leveraging economies of scale.
  • Schedule Risk: Can speed up project timelines by adding more workforce.

Attendant Risks

  • Agency Risk: Creates dependencies on third-party vendors and their reliability.
  • Communication Risk: May introduce communication challenges with external teams.
  • Security Risk: Potential risks related to data security and confidentiality.

Description

"Outsourcing is an agreement in which one company hires another company to be responsible for a planned or existing activity that is or could be done internally, and sometimes involves transferring employees and assets from one firm to another." - Outsourcing, Wikipedia

Outsourcing in software development involves hiring external vendors or service providers to handle specific tasks or projects. This practice can help access specialized skills, reduce costs, and accelerate project timelines. However, it also introduces risks related to dependency, communication, and security that need to be managed effectively.

Discussion

Pairing and Mobbing as mitigations to Coordination Risk are easiest when developers are together in the same room. But it doesn't always work out like this. Teams spread in different locations and timezones naturally don't have the same communication bandwidth and you will have more issues with Coordination Risk.

In the extreme, I've seen situations where the team at one location has decided to "suck up" the extra development effort themselves rather than spend time trying to bring a new remote team up-to-speed. More common is for one location to do the development, while another gets the Support duties.

When this happens, it's because somehow the team feel that Coordination Risk is more unmanageable than Schedule Risk.

There are some mitigations here: video-chat, moving staff from location-to-location for face-time, frequent show-and-tell, or simply modularizing accross geographic boundaries, in respect of Conway's Law:

"organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations." - M. Conway

When we add Outsourcing into the mix, we also have to consider Agency Risk: the consultancy you've hired is definitely more interested in keeping themselves solvent than solving your business problems.

See Also