Companies must adapt to changing markets. In the information technology industry, software projects have varying, disparate requirements. Businesses often need to scale their software development staff in order to maintain or gain competitive advantage.

The usual solution is either to outsource an entire project, or to hire project contractors to fill gaps. These solutions come with advantages and disadvantages.

The decision to outsource is often made to lower costs, to focus on core competence, and to use resources more efficiently. However, outsourcing can lead to lack of control, miscommunication, and inflexibility.

And although hiring project contractors gives control over the project at a lower cost, and communication is handled more easily, it may not be the right move when the requirements fluctuate or become erratic.