A hard drive is effective at storing data. When there is a hard drive failure, we get a new one and transfer data from backup. It is a simple process to transfer data from one hard drive to another hard drive.
However, it is not a simple process to transfer knowledge. In my case, this knowledge relates to software development. How do we transfer all this knowledge to new software developers? In this post, I will share tools and tips for a successful knowledge transfer.
Wiki
To be able to share knowledge effectively, we need to store that information in an accessible space. If you have notes buried in your inbox, it is time to move them to a wiki. Having a wiki is essential in knowledge transfer.
Start with the most simple and obvious questions that a developer will need. If your wiki has the following questions documented, you are in the right path.
- How do I get the tools I need?
- How do I build the software?
- How do I deploy?
- Where do we host our applications?
By having these questions answered in a wiki, a new software developer should be able to setup his/her environment setup.
There are many open source wikis available for your use. If you prefer to buy a powerful wiki solution, I highly recommend Atlassian’s Confluence.
Start Coding
After the initial setup, a new software developer is anxious to start writing code. In my experience, this is the most challenging phase in knowledge transfer. In my current role, I’m working with 2 developers that have been with the company for more than 10 years. They have accumulated all these knowledge and now it’s my turn to help them maintain these applications.
In my experience, spending time to learn as much as you can in one application is important because it gives you the opportunity to become comfortable with that application. If you jump from one application to another, you are not going to learn in detail. You will only know the basics on that application.
Start with simple bug fixes and continue with more complex changes. If you start with small changes, you will know how the application is structure. You will have a better understanding of the application and with time you will have the chance to add more complex features.
To help you gain more knowledge, make changes to all layers in an application. For example, modify the user interface this week but next week make changes to the back-end or database.
As you gain more knowledge, don’t forget to update the wiki with important details. Try to document only the most important details.
Rotation
After spending 6 months or more in one application, it is time to gain more knowledge about other applications. Start with simple tasks and move to more complex ones. Sometimes this is not an option. But there is always turn-over and people leave for many reasons. That’s why having different developers know about many applications is important. If a developer leaves today, you will have others that can continue the work.
Conclusion
Knowledge transfer is a difficult process that takes time. By having a wiki, you can document your setup and environment. With the help of a wiki, new software developers can start producing new code or maintaining existing applications. And finally, rotating software developers from one application to another benefits everyone.