Erbis stands with Ukraine

How to change software development provider

How to run knowledge transfer in development outsourcing

Implement a knowledge transfer plan to successfully pass project knowledge to a new development team

When you're moving a project to a new software development provider, knowledge transfer is essential. An efficient transfer ensures that the project is successfully handed off and that the new vendor has all the information they need to get up to speed.

But what is knowledge transfer, exactly? Knowledge transfer is the process of passing information from one individual or group to another. In the context of software development outsourcing, it means handing over all the relevant data about the project—from design specs to code samples and user manuals.

The key to a successful knowledge transfer is gathering and organizing information in a user-friendly format. This means creating a comprehensive documentation package with all project details. When the new team takes the project documentation, it should be able to quickly figure out what's what.

What are the pitfalls to avoid when moving from one software vendor to another?

When you're transferring a project to a new vendor, the process is never as easy as just handing over the files and walking away. Knowledge transfer in development outsourcing requires careful planning and management. If you want a new team to work efficiently on your product, you need to know the pitfalls of moving from one software vendor to another.

Diverse mindsets. Each person looks at a situation from their own angle. With different backgrounds, knowledge and experience, different teams may come up with different solutions to bring your project to life. While this is totally fine for new projects, it may lead to unnecessary costs and time loss in legacy projects.

Lack of well structured documentation. If the previous team did not create a detailed project documentation, new developers will have to spend more time on knowledge transfer and understanding product peculiarities. So, before you give the green light to development, make sure that SRS, API documentation, release notes, how-to-guides, and other tutorials are in place.

Underestimating tacit knowledge. Tacit knowledge is acquired through experience and observation and cannot be recorded on paper or shared verbally. For example, it is almost impossible to explain how to debug complex software or evaluate the suitability of a new technology. The decision is made based on professional competence and critical thinking, and such knowledge can be passed only through mutual cooperation.

Lack of a knowledge sharing plan. Unsystematic knowledge transfer leads to lost time, misunderstanding the product concept, and late releases. To get a new team up and running quickly, you need to create a knowledge transfer plan between vendors. This might include setting up regular video calls, sharing files in a cloud-based system, and collaborating in a mutual workspace. Having a knowledge transfer document in place, you will know when the team is ready to start working on the project.

Inefficient knowledge transfer tools. Sharing information can be much more efficient if you use modern tools like Google Drive, Slack, GitHub, SonarQube, Zoom, and more.

Things to consider during the knowledge transfer
Things to consider during the knowledge transfer

How to execute knowledge transfer 

Knowledge transfer outlines how you will pass on your years of experience and hard-earned knowledge to the members of your team who are taking on new or expanded roles. There is no single approach to knowledge transfer for outsourcing. Each company decides how to share experience depending on the specifics and needs of the project. However, by following the steps below, you can be sure that nothing important will be missed.

Step 1. Define the goals of the knowledge transfer

Before you start the knowledge transfer process, you need to define its goals. In other words, what do you want to achieve?

  • Are you looking to hand off the project and walk away? Or are you going to take an active part in the development? 

  • Do you want to entrust the team management to a remote CTO? Or are you going to control the development process by yourself?

  • Can you transfer the full amount of data to your provider? Or are you limited by certain regulations, such as the GDPR?

Your goals will dictate the scope and structure of the knowledge transfer process. So it's important to take the time to define them upfront.

Step 2. Decide what knowledge needs to be transferred

To prepare for a knowledge transfer between development teams, you need to take inventory of the information in place and decide what to share. This means taking a step back and assessing the following:

  • What knowledge is currently possessed by your team?

  • What knowledge do you currently have access to?

  • What knowledge do you need to outsource?

  • What knowledge do you need to revise?

Once you have a good understanding of the answers to these questions, you can start creating a plan for transferring that knowledge.

Step 3. Identify the knowledge holders

Not everyone in the company is a knowledge holder. You need to identify key people who can convey vital information regarding the project implementation.

Key people are those who know how the software works, how the business works, and how all the pieces fit together.

You'll need to sit down with them and have a conversation about what they know and what they don't. You'll also need to identify their areas of expertise, and then record all of this information in knowledge transfer documentation.

Step 4. Design the transfer process

Here are a few steps to help you get started:

1. Define the scope of the transfer. What exactly do you want the new team to be able to do? For example, you may hand off the implementation of a full project, its specific features, or managerial tasks. The scope of tasks will define the scope of data to be transferred and the scope of knowledge to be possessed by the new team.

2. Outline the steps involved in completing each task. This will help the new team understand the process and how they fit into it. For example, you may indicate that the new CTO should get acquainted with the current RACI matrix, and the development team should run the code review in Git.

3. Create a training plan that covers everything they need to know. This should include how to use the software and systems, as well as general best practices.

4. Make sure all your documentation is up-to-date and accurate. The last thing you want is for the new team to be struggling because they can't find the right information.

5. Transfer ownership of all accounts and passwords. Make sure the previous team does not have access to the project after the knowledge transfer.

Step 5. Execute the transfer

At this stage, you should prepare a roadmap for ensuring a smooth knowledge transition. It will outline all the steps you and your team will need to take to ensure that the new development center can hit the ground running.

Included in the plan should be:

  • a timetable for the transfer

  • details on who will be responsible for each step of the process

  • a list of resources (including people, documents, and software) that need to be transferred

  • the steps you will take to ensure that communication is smooth between your current team and the new development center

Step 6. Evaluate the success of the transfer

After you have prepared and organized the knowledge transfer, it is important to evaluate its efficiency, but how to do it? First of all, you need to determine the components of success. Is it the number of people who have been trained? The amount of money saved as a result of the transfer? The improvement in customer satisfaction?

The following questions can help you define knowledge transfer metrics no matter whether you run a startup or an enterprise.

1. What was the original goal of the transfer?

2. How well did the transfer meet that goal?

3. Which methods were used to assess the results of the transfer?

4. What factors contributed to the success or failure of the transfer?

5. What lessons were learned from the experience?

Evaluating knowledge transfers is an important part of learning from past successes and failures. By understanding what works and what doesn't, you can continue to improve your processes and achieve even better results.

Transferring knowledge from one team to another
Transferring knowledge from one team to another

Knowledge transfer roles: who does what

When you’re considering transferring your company’s technology to an outsourcing partner, it’s helpful to understand the different roles and their associated responsibilities during the process. In a classic example, the knowledge transfer participants are as follows: 

CTO. They are responsible for the overall technology strategy. During the knowledge transfer, a CTO should ensure that the company’s goals are understood and met.

Project manager (PM). They monitor project progress and set deadlines for task implementation. During the knowledge transfer, they communicate product requirements, current development progress, and the usual development routine.

Developers and testers. They are responsible for product development and checking. When sharing knowledge with a new outsourcing team, they should 

  • create detailed documentation of all system functions and processes

  • identify potential risks the software may encounter

  • share the code base and encourage the new team for code review

  • work with the outsourcing partner to create a plan for migrating data and systems

DevOps. Theyensure that all systems are integrated and aligned with company standards. When sharing knowledge with a new team, DevOps should explain what technologies are used to deploy the software in a given IT infrastructure.

Who takes part in knowledge transfer?
Who takes part in knowledge transfer?

Conclusion

When you are preparing for a knowledge transfer in software development outsourcing, the most important thing is to be patient and take your time. The transfer process can be complicated, so it's important to make sure everything is in order before you begin.

Here are a few tips for making sure the knowledge transfer goes as smoothly as possible:

1. Make a plan. The transfer process can be unpredictable, so it's important to have a plan in place. Know what you want to achieve and have a timeline in mind.

2. Choose the right time. Don't try to rush the process – make sure both parties have enough time to dedicate to the transfer.

3. Communicate clearly. Make sure both sides are clear on what is expected of them during the transfer. This will help avoid any misunderstandings.

4. Be patient. The transfer process will take time, so be prepared to put in the hard work. It will be worth it in the end!

If you want to change your software development provider but don't know where to start, consult with our experts. At Erbis, we have extensive experience working with legacy projects and we know how to organize the knowledge transfer to resume work on the project as soon as possible.

October 30, 2022