This article is taken from the Wikipedia entry for Outsourcing. In software development, the term outsourcing describes the practice of hiring someone else to create software for your business. This may be done for many reasons.
It may save you time and money by outsourcing the work. It may allow you to focus your attention on other aspects of your business. Or you may simply want to share risk with a third party. There are different kinds of software development outsourcing and they may include:
The first kind of outsourcing is known as consulting. A consulting service provider creates custom software based on your needs and specifications.
The second kind is known as project management outsourcing. In this process, you outsource the entire process of creating custom software. A project software development outsourcing management firm will lead the entire process from beginning to end, including budgeting, marketing, design, programming, testing, implementation, and maintenance.
A third kind is called software development outsourcing. Here, your company outsources the entire software development process to a third party. In return for some investment, this kind of outsourcing means faster delivery, cost savings, and access to expertise outside your own organization.
When outsourcing, the software development company you hire may do anything from developing simple database applications to creating enterprise resource planning software (ERP) or other custom software solutions.