Knowledge Transfer Sessions

Over the past few months our team has been doing retrospectives on a regular basis at the end of every sprint. This kind of naturally evolved as a result of some people expressing that they didn't understand how certain things worked. It has grown to include providing feedback to the team on any investigation tasks that are done and how a particular technology works. This also helps eliminate having a single point of failure if someone isn't at work, as the rest of the team have at least has an idea of how something works.

Topics

Like I mentioned above, these sessions initially started as a result of people questioning how certain things worked during our retrospectives. Everyone in the team agrees that they provided a really great benefit and ever since we have been having them consistently. Some of the topics that we have recently had are as follows:

  • Deployment Process
    At my current client, they have a really convoluted process in order to get your code into the production environment. This involves finding an available date, filling out a lots of documentation and talking to the right people. I was the only one in the team that actually knew the process and so in order to spread the knowledge, I created a Trello board where each of the cards are steps that need to take place. It also included templates and sample documents so that the other people know what to fill out. In this way, if I'm not at work for whatever reason, anyone in the team can easily follow the process.

  • Cucumber Testing
    We have also recently started using Cucumber in order to have some sort of automation testing on one of our front end clients. This task was given to a particular person in the team who done some investigation into how to setup the environment as well as writing a single test. They then demoed this to us in a session and explained the process of writing a test, how execution worked, how to switch browsers etc. This then gave the team the foundation on which they could go forward and write their tests.

If you would like some ideas that you could use in your sessions, you could choose some of the following:

  • How Git/Mercurial/TFS works
  • A look in the testing tools that are used by testers.
  • Any tools that you create for internal use
  • How a particular technology, or tool set, works
  • Any processes that you have automated

Running a Session

The following are some of the items that we as a team do, when running a session

  • Topics
    I have a list in OneNote of all the topics that have been brought up before. In this way, we make sure that we don't forget about any of them and it makes it easier to choose one for an upcoming session.

  • Agenda
    Whenever I schedule a session, I quickly have a chat to the person who will be presenting it to agree on a high level agenda. In this way, each of the team members knows more or less what will be discussed and gives them some time to think about questions to ask.

  • Audience
    One important thing that is often overlooked is to identify who your audience is. Do you need to speak in business terms or will they understand your technical jargon? Also, do/don't they need to bring anything to the session, such as laptops.

  • Share the Materials
    Once the presentation has been done, if there are any materials that have been created then these need to be shared for future reference. At our client, they use SharePoint for this, so that's where we store our stuff. This also helps if someone is new to the team as they can just review the materials that have already been created.

Overall, these sessions have been really helpful to the whole team and I hope that by sharing our experiences and processes you can gain some benefit from this as well.

Until next time...keep learning!

Mauro Da Silva

Learning everyday about software development, leadership & self improvement

South Africa