Virtual teams, meetings and workshops may have become the new way of working in many organisations in the past few years, but it is far from a new phenomenon. Already in the 1990s it started becoming increasingly common for organisations to implement virtual teams, especially in IT-projects. Although many Software Development teams were virtual because of geographical reasons, today the reasoning for having virtual teams can vary a lot. Often it is to provide the employees with more flexibility and evidently the COVID-19 pandemic has been a push in many organisations. One of the challenges in a remote environment is knowledge sharing and employees have cited lack of knowledge sharing among virtual teams as a reason why they will go back to working on-site. Successful knowledge sharing is also key to stay competitive for many Software Development teams. What activities can we do to stimulate knowledge sharing in virtual Software Development teams?
The problem with virtual knowledge sharing
Explicit and tacit knowledge was popularised by Nanaka and Tokuchi in 1995 and is to date still one of the most common ways of viewing and understanding organisational knowledge. Explicit knowledge refers to knowledge that is explicit and formulated, while tacit knowledge is more abstract, difficult to formulate and is often explained as informal knowledge.
Tacit knowledge, said to be responsible for about 90 percent of all knowledge within the organisation, relies heavily on face-to-face interaction, which is a reason why it has been particularly difficult for virtual teams to share it. The spontaneous conversations during coffee breaks have disappeared and there’s simply fewer opportunities for tacit knowledge sharing in virtual teams.
…and why it’s extra relevant for Software Developers
Knowledge is the most important resource in IT. Therefore, working actively to share knowledge is particularly important for Software Development teams. However, Software Development is to a large degree based on tacit knowledge, the type of knowledge sharing that requires context and interaction. Since many Software Development teams are working virtually, this becomes even more difficult. It is necessary for teams to implement a strategy that promotes the sharing of tacit knowledge in particular.
Theoretical frameworks for knowledge sharing
Two widely used theoretical frameworks of transferring knowledge are Personalisation and Codification.
Personalisation is about transferring tacit knowledge between individuals and is commonly used in Agile teams. The goal of personalisation is for individuals to learn from each other’s knowledge, expertise and experiences and to stimulate social interaction between team members.
Codification is on the other hand about organising the knowledge and transferring tacit knowledge into explicit knowledge. It is centered around IT-systems and aims to transfer knowledge from individuals onto documents and data bases, in order for it to be further shared within the organization.
The following activities relate to both strategies and can help with sharing knowledge in a remote team.
Knowledge sharing activities
For teams working digitally, it is even more important to include various assistive devices in the development process for knowledge collecting available in the project and its status. In addition to videoconferencing technology, chat rooms or instant messaging are important mediums because of its informal nature and way to solve problems at work but also to strengthen social relationships.
At Flexiana we use tools such as Yac and Zulip for instant communication which helps with the sharing of tacit knowledge. Another tool we use for collaboration is Miro, as it enables everyone to contribute collaboratively and visually to workshops, discussions and planning. We use Notion to plan and organise information which is a way we use the codification strategy in order to transfer tacit knowledge into explicit knowledge. Github, the code hosting platform for version control and collaboration, is an important platform that helps with both personalisation and codification and has been a massive contributor to knowledge sharing in the industry and at Flexiana.
Conducting discussions or workshops on a specific topic or on a problem you want to solve has been shown to contribute to new opportunities to improve parts of the project, or to come up with new solutions to the problem. At Flexiana we arrange weekly workshops on a variety of topics. From Service Design blueprinting sessions to Organizational guild meetings. These workshops stimulate tacit knowledge sharing but also explicit knowledge sharing when these presentations are further saved, re-shared to the organisation or documented as strategy. Curious about the best practice when conducting workshops? Check out our article on virtual workshops.
Pair programming and Mob Programming
Pair programming means that two developers work together on one computer or remotely with the help of screen sharing and is a part of the personalisation strategy. Mob programming is a similar approach but involves more people or the whole team. These approaches can increase knowledge sharing through continuous communication and more effective collaboration. During this type of programming sessions, informal communication takes place that can increase the sharing of tacit knowledge between participants. At Flexiana, we have Clojure developers promoting collaborative approaches and discovery sessions as a way to socialise while enhancing knowledge sharing. Soon, we will also start sharing our Clojure developers’ mob programming sessions on our YouTube channel.
A great way to share knowledge is to have rotation in the teams. This can entail moving people in between teams or locations where they can experience other ways of working and learning new skills. At Flexiana we have a flat hierarchy, with zero to very little emphasis on titles, and intend to equip all employees with managerial skills. We encourage everyone to try new roles, move around the teams, and develop new skills. As an example, one of our current marketers has been wearing many hats over the past few years – marketing, lead generation, and facilitating Service Design workshops.
Informal meetings are activities or encounters within the personalisation strategy that are not work-related. As previously concluded, informal meetings are harder to achieve in virtual environments, due to the lack of spontaneity and random encounters. At Flexiana, we schedule in a weekly socialisation hour, where we talk about everything but work. We also have informal chat streams where we share songs, recommended reads, and images of our lunches, among other things. We strongly believe that team magic happens in those infromal moments.
Knowledge is the main resource in Software Development teams and having a strategy for sharing it is a way to stay competitive, especially considering the growth of remote teams. We have covered some key activities that can help with sharing of both tacit and explicit knowledge, including daily meetings, topic specific discussions, pair and mob programming, rotation and informal meetings.
As a remote-first company, Flexiana has applied these activities without limiting the flexibility that each team member has on planning most of their time. This is frequently mentioned as one of the main reasons why employees love working at Flexiana.
If you want to learn more about our culture, check out our recent employee video or reach out to us to schedule a virtual coffee. We have a team of designers, testers, scrum masters, experienced Clojure developers, and experts in other languages, ready to tackle any challenge your company might have.