My work over the semester has required me to explain what I have learned to my teammates. My explanatory skills are not great, but I have been able to make do with the help of live examples. Chances are likely that I will need to do this continuously throughout the future. Since this is an important skill, I will need to practice my instructive capabilities. Luckily, the pattern “Share What You Learn” from Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman, by Dave Hoover and Adewale Oshineye, addresses this problem.
“Up until now, you have focused exclusively on your own improvement as a craftsman. To become a journeyman you will need the ability to communicate effectively and bring other people up to speed quickly.”
“Share What You Learn” discusses the reasons for passing your knowledge to others. Ethically, it is wrong to only receive knowledge from the community and never give any in return. Being able to capably communicate your knowledge will make you a better developer. Teaching knowledge requires a deeper understanding of the knowledge than just using it. Also, other apprentices may appreciate an explanation from someone with the same level of abilities.
The pattern warns to be sure that the knowledge being shared, can be shared. It is common for companies to keep trade secrets, including software development information, so be careful.
There are a few ways listed for practicing “Share What You Learn.” One way is to write blogs about projects you are working on. The act of writing down your methods will make it easier to remember the details later. Another is to try writing a tutorial for a topic, presented in a way that you wished the topic had been presented to you. Lastly, imagine preparing for a workshop at a conference and how you would prepare for presenting your work.
I must agree with this pattern’s assertions, I believe being able to pass along knowledge quickly and clearly is an essential skill for software developers. As I have experienced this semester, I am not skilled with this pattern and I feel it has impacted our work to some degree. As such, I will need to practice “Share What You Learn” to be a better teammate and developer.