Developers in typical outsourcing and product companies encounter and voice numerous concerns regarding each other’s work.

Product companies usually provide negative feedback about their collaboration with outsourcing partners. Everyone constantly repeats that outsourcing companies in most cases do not comply with their clients’ needs. At the same time, developers in outsourcing companies are also not exactly thrilled about their cooperation with the customers. I often heard them complain that the clients are not capable of defining their needs clearly, moreover, they are inclined to change requirements numerous times before and after the product release.

Some typical issues from an outsourcing agency’s point of view and from a product company’s perspective are described below. The article outlines general situation and demonstrates how these issues can be solved so that the project is considered to be successfully delivered by both parties - the client (product company) and the executor (outsourcing company).

Let’s evaluate this situation step by step.

1. General approach to developer’s technical specialization

It’s not a secret that most of the outsourcing companies hire professionals of narrow specialization. The reasoning is clear whereas the profit comes first: it’s the easiest way to increase a number of project team members, and the payment is usually based on hours worked.

On the contrary, product companies are result oriented and are interested in engaging generalists, who can solve a wide range of problems arising during product development.

2. Oops, we’ve got a problem….Who’s to blame!? Cause of Error over Fix

In a typical outsourcing community it is more important to find a scapegoat than to solve the problem. There are couple of reasons behind such an approach. In part, this is because a developer in an outsourcing company does not care whether the project he works on is successful or not. He’s working on a strictly defined task, that’s it. Engineers in a product company are always interested in successful launch and support of the product - it has a straightforward impact on them and their income.

Furthermore, outsourcing companies usually hire developers of narrow specialization, so they have to find a competent colleague in order to solve the problem. And who’s more capable of doing that other than a person who understands the cause of the issue and has been working in this area from the beginning? In a product company everyone understands general architecture of the project, therefore can identify the problem and start solving it immediately. The stage of finding the guilty party can be postponed to the point when the issue is already settled.

3. The Definition of Done

The DoD in outsourcing companies comes as a consequence of the above mentioned factors, and generally, the scheme is as follows:

1. Obtaining well defined requirements from the client

2. Implementing the requirements

3. Integrating components

4. Testing.

It is pretty obvious that the product company’s approach is more comprehensive. The team evaluates not only requirements and dependencies, but the ultimate goal of creating a product. Planning, development, testing and further integration comes afterwards. And the work on a product does not end at this stage - it is important to validate and test feasibility of the adopted decisions.

4. Access to detailed information on the product

Obviously, product companies do not have such problems whereas developers have access to all information at any time. However, the situation differs in a typical outsourcing company. The most common issue is misinterpretation of the client’s requirements. This is often caused by insufficient information for successful completion of the task. Furthermore, such information goes a long way from a client to a developer through a number of counterparts, including client-partner, business analyst, project manager etc. This is the reason why the DoD may differ. Outsourcing agency considers the task to be successfully completed when it complies with provisions stated in the technical specification. The product company considers the task to be accomplished when the tangible result is achieved.

These are also the reasons why outsourcing companies do not have the possibility to be enterprising. Limited access to information on the product is the reason why the company can make a mistake in case it would like to change a certain process, the actions would be based merely on internal investigation and research. Product company can make such decisions based on real product analytics. It may appear, for instance, that 1% of online shop users generate 90% of the company’s revenue - and the team will consider their preferences as of the ultimate consumers.

The list of problems can be expanded even further, but the ones described are probably the main cause of misconception. Thus instead of finding more flaws, let’s consider how the current situation can be changed. The discourse to be continued soon…