Build domain knowledge on your outsourced development team!

4. February 2014

Domain knowledge is the knowledge on how to use the software you have developed. Who are the users of the software, what are their needs, what do they achieving from using the software etc. It is virtually impossible to develop the right solution, if you do not have access to the domain knowledge. The development process will definitely slow down, as the team often will have to ask others for advice.

When building up domain knowledge, it is an advantage to be close to the “source” of knowledge, which is the reason for many people doubting that it is possible to build up domain knowledge on an outsourced development team. I understand this point of view, as the conditions for building up domain knowledge on an outsourced development team are not the best.

First of all, as the sourced developers are working from abroad, they might have some difficulties in relating to your company and the people they are working with from a distance. Secondly, the sourced developers might not be aware of the cultural context, in which the software they are developing have to function. Thirdly, outsourced developers do often not work for the same company for a longer period of time, and then you have to start all over getting domain knowledge on the team.
Although it seems difficult to build up domain knowledge on an outsourced development team, it is not impossible as long as you ensure that the framework is in place.

Build relations from day one

From day one, you should focus on the sourced developers getting to know your company, the team they will be working with, and the purpose of the software. I recommend that the sourced developers visit your company when they start working on the project. The personal relations they build by visiting the company and meeting the other team members are, in my opinion, an important factor in improving the cooperation in the development process.

Understanding the cultural context

Whether your sourced developers have to develop software for your solutions or your clients’ solutions, it is important that they know the reality, the software is developed for. If the developers have to develop software for the health care sector in Denmark, they need to know how the health care sector works in Denmark. The outsourced developers’ understanding of a health care sector might not correspond to the way the health care sector works in Denmark. I recommend that the software developers visit the company, and better yet the department they have to develop the software to, so they get an in-depth understanding of – and knowledge on – how the software will be used.

Focus on dedicated teams

When you outsource your software development, you will benefit from dedicated teams, meaning a team with the same developers working on your assignments. The longer the team stays together, the more domain knowledge you build up, meaning you get a better ROI on your development projects, as these developers can easily develop updates to the software. In order to get a dedicated team, your sourced developers have to stay on your team. You can read about how you motivate them to stay on your team in my previous blog about motivation and retention here.

A close team collaboration

The source of the domain knowledge is without doubt your company, therefore, challenges might occur as your sourced developers are not sitting on your location. In such matters, it is important that the Danish team and the sourced team work closely together on the tasks they solve. The Danish team is close to the source (company) and the knowledge they get, have to be communicated to the sourced developers, so they always know what is going on in the company in Denmark. I recommend planning the development projects as a SCRUM process with the team having daily stand up meetings via Skype. At the meeting, you can plan the day’s assignments, the team can evaluate what went well/badly, and which challenges they might meet.

The framework for domain knowledge have to be in place

In short from my experience, it is possible to build domain knowledge, even though a company outsources a part of their development to another country. You just have to ensure that the framework is in place.