Outsourcing is one of the new methods of division of labour that emerged, as we well know, already during the primitive-communal system. Commonly a company resorts to outsourcing when it is necessary to perform certain work, which has low priority or which is not their specialty. In the field of IT outsourcing has become especially high demand. Quite often companies outsource such IT-services as development of the company’s IT strategy, introduction of information systems, creation and maintaining of network and IT infrastructure, as well as many other types of services. In this article we will discuss peculiarities of
software development outsourcing, its advantages and disadvantages.
Outsourcing the full cycle of software development
A typical scenario of outsourcing the full cycle of software development for a company, which is specialize in other areas in application development, is as follows. A company, which has a task to automate their business processes or provide informational support, finds out that commercial off-the-shelf products available on the market cannot satisfy some of their needs. It goes without saying that there are vertical markets and subject domains, for which there are no typical solutions yet. In this case, such a company traditionally orders development, introduction and technical support of a personalized product, specializing in software development in the respective field.
As a rule, such project in any case expensive than introduction of a ready business application; but, if no relative business application is available in the market, then the only choice to outsourcing software development would be a still more expensive decision on creation of an own software development department or delegating this function to the company’s IT department. It should be noticed that in the 90’s such administrative solutions were taken in many Russian and Ukraine companies and many of them had later to deal with unfavorable consequences of such “garage-made” development, arising from the lack of proper development processes and software life cycle management, such as lackof proper project documentation, impossibility to modernize the application in case of changes in the business processes, inconsistency of the used technologies. Nowadays many of these companies have realized inexpediency of employing own programmers and have become clients of specialized software development and
software testing companies.