We share our tips for knowledge transfer from software engineers to engineers. This article, we overlooked the cases when the knowledge should be shared with novices in IT industry, Quality Assurance specialists for testing or Technical Support for maintenance purposes. The tips are backed by our experience, so they could come in handy to CEO and CTO managing development teams - whether in-house, remote or both, for PM and software engineers.
Knowledge = Power
Knowledge, when managed and shared properly, is the main competitive asset of a software company. When knowledge is transferred from one team member to another, it becomes cumulative and eventually enhances a company’s competitiveness. The main argument in favor of extensive knowledge transfer (KT) is that knowledge-bottleneck situations - when the only person with project-critical knowledge becomes unavailable and the whole process freezes - “eat” too much time and money.
At Logicify, we value knowledge and like them being shared, so we came up with a few best practices for the process. Our Project Managers shared their recipes for most effective KT. As a scheduled and organized process in our company, KT typically takes place when team members rotate. During one of our FinTech projects, we were tasked with transferring knowledge to a whole new team of remote sub-contractors, but this seemed to be more of an isolated case. Another instance that requires KT is when the project is over: the product is developed and should further be maintained by another team.
Much of a company’s knowledge still exists outside of repositories and databases - in people’s heads. So, while KT, both explicit (codified & recorded) and tacit (not formalized, based on a person’s experience) knowledge are shared.
Active communication, in whatever form it takes, is the primary mechanism for knowledge transfer in a company.
Our Best Practices for Knowledge Transfer
Knowledge we share
Main sources of knowledge
Most Effective Knowledge Transfer Is a Mixture of Methods
Out of a variety of knowledge transfer methods, we chose 5 most effective ones - proven by our PMs’ experience under real project conditions and tight deadlines.
- Documentation. Project documentation is, without doubts, the most efficient way to pass the knowledge between team members. Its main drawback is that it gets outdated too quickly. It should always be kept actual, no matter how time-consuming and tiresome this is.
- Face-to-face Q&A sessions. The person passing the knowledge should break the scope down into small digestable parts not to overwhelm the trainee.
If the team members are distributed in various locations, and face-to-face interaction is impossible, then online screen-sharing would aid too. Such sessions could be recorded and re-played later if needed.
- Mentoring. A mentor assigned to a trainee is usually a senior developer who has not just in-depth expertise in dev tools and project specifics but firm soft skills: ability to teach, explain things, and motivate. Mentor is a skilled communicator who shares theoretical knowledge and guides the trainee in the process, assigns practical tasks, and provides detailed feedback and recommendations after every milestone.
- Pair programming. This KT technique involves two programmers working together (sometimes even sharing a single workstation) on a development challenge. The person undergoing KT does the actual coding and explains his/her actions, the programmer sharing the knowledge watches and adjusts the process. This method is the most effective when sharing tacit knowledge that cannot be fully transferred through documentation.
- Mutual code reviews. Team member(s) check the code written by colleagues for any logic errors and mistakes as well as its compliance with the requirements. This method helps less experienced team members learn the code base, uncover gems of hidden knowledge, and learn new techniques and technologies. At the same time, it serves as an additional way for quality check before the code is merged.
Logicify PMs unanimously state that only a combination of KT methods is effective. There is no one-fits-all approach for this process. Numerous interactions between the parties, and - most importantly - mutual strong desire of both parties to share and digest the knowledge respectively are the must.
- A Few Effective Tricks for Project Managers Working with Remote Teams
- Big Data Migration System Using Actor Model with Akka.NET
- IoT: How We Built Logicify Connected Office with a Soldering Iron (Slide Deck)