Outsourcing's place in your software development lifecycle
The software development lifecycle, which encompasses everything from planning to development to testing and maintenance, is complicated to navigate. At each stage of the lifecycle, IT and business teams encounter difficulties. One step might take too long and delay the entire project, or the in-house team might lack the necessary expertise in a specific area.
It can be tempting to mitigate -- or even sidestep -- some of those challenges by outsourcing one or more activities. Options for software development outsourcing are abundant. But when is it a good idea? This handbook considers the pros and cons of outsourcing software development, either in whole or in part.
Certain phases of the software development lifecycle are easier to outsource. Testing is the most common use of outsourcing, as when a company focuses its staff on the dev work while an external group conducts testing on a parallel track. Other phases, too, can be peeled away. Work on requirements, design and even planning can go to a vendor. As development expert Matt Heusser writes, these decisions can add speed and fill gaps in knowledge. Still, a company will want to define the project so that the results are in line with expectations.
Also included here are articles that look at the pros and cons of outsourcing software development from other vantage points. What, for example, should an outsourcing contract spell out? And what are some of the specific benefits and risks a company should expect when it outsources phases of its DevOps process?