Photo source by Akshay Nanavati via Unsplash
By Darwin Sanoy, Partner Solutions Architect, GitLab
Championing as an advocate for peer learning is a yellow brick road journey that results in becoming the other kind of champion—one who is known to have a winning level of capability in the domain of expertise.
As part of a Generational Understanding resource group I co-lead, I consistently hear a theme of learning anxiety in tech from all age groups – there just seems to be a never-ending march of new technology stacks to learn. We’ve all been between that rock and a hard place. On one hand we work at record-breaking speed due to being very skilled in our portfolio of technical skills. On the other hand, we need to keep our skills fresh and when taking on entirely new technology stacks, this means an impact on our day-in and day-out productivity. These equal and opposite winds can cause us to be caught suffocating in the middle.
The Cambridge dictionary defines one sense of the word ‘’champion’ to mean an advocate who is empathetic enough about the needs of others to take action on their behalf. Advocacy is about loaning your leadership to an effort, and it does not require that you are a top expert in the area you work to improve. Initiating and maintaining momentum in addressing the learning needs are the more critical aspect.
Let’s talk about how becoming an advocate for technology in your company helps create space for you and your colleagues to learn critical new skills. The sense of championing we’ll discuss strives to make informal learning a much more socially connected journey.
The following list of options comes from my own advocacy efforts to help a diverse IT group of 250 people to onboard to a new coding language.
Weaving Learning And Doing Together
Each new skill we transform into a day-in-day-out proficiency is backed by countless, regular attempts to apply the skill to real-world problems. This critical informal learning stage tends to be quite lonely and unsupported. An advocacy program helps rally resources, calendar time and social connections around individuals who are in this stage of learning.
A company’s internal initiative has some unique advantages over typical multi-company user groups in that internal programs:
- Can be worked into any workday at any time, rather than during an occasional meeting. This puts the needed help into the context of doing actual work – a critical aspect of mainstreaming new skills into work outputs.
- Make learning more social while also building an at-your-fingertips support network for future challenging tasks with that technology.
- Have deep interactive collaboration benefits – creating new levels of ideation and innovation.
- Can be done during normal work time – increasing work-life balance and happiness.
Read more: 8 ways to achieve work-life balance in DevOps
Synchronous versus Asynchronous Communication
I love working remotely. Doing it effectively translates to a known bias to asynchronous work – and I love that as well. This article encourages synchronous meetings to improve social support for learning. Asynchronous communications are better than nothing, but they are at risk of not feeling much different than isolated self-learning – thereby not addressing the core challenge that holds folks back.
Building Blocks for Championing Peering Learning
The following is a list of components of a program, some optional. While the program I ran incorporated most of these, it is important to construct a program that does not make you feel overwhelmed. So please do not take the following as a manifesto of requirements, but rather as a ‘menu of possible program elements’.
1. Identify and Enlist Existing Experts
You will likely find some early adopters are already using the technology that you are hoping to champion. Approaching them and obtaining their help can add a lot of energy to the effort. It is important to keep their burden light when building out ways for them to participate – be sure to handle the details for them and ensure needed collaboration resources are built-out for them. If all they have to bring to the table is their expertise, they are much more likely to engage in sharing it. It is also important to publicly acknowledge and celebrate their contributions – especially to their managers. This important step is not only a positive reward, but it helps facilitate the participation of other existing experts.
2. Make Inclusivity a Top-Level Objective
While inclusivity is very important across all aspects of professional life, being a champion gives you a special opportunity to lead with inclusivity. While identifying experts you can also make an effort to find participants from underrepresented groups in your IT teams that would be willing to be charter members and encourage participation of others who identify similarly.
I personally enjoy volunteering for the Economic Opportunity Impact non-profit Code the Dream. Economic Opportunity Impact nonprofits seek to increase lifetime earning potential by ramping individuals from economically and educationally diverse backgrounds into a career in coding. A company’s internal equivalent of this would be openness to career changers who might want to transition into a coding career from another career field. Not all coding stacks are a good place to start for new starters – so it pays to be wise about whether the technologies involved would make for a positive career transitioning experience.
3. Sponsor Internal Meetups
Having a recurring scheduled event on participants’ calendars is an effective way to ensure learners have breathing space to focus on learning. It also serves as a reminder of the commitment they’ve made to develop their skills. The actual term “Meetup’ is helpful to convey a fun, socially engaging event rather than another stuffy, formal meeting. An important aspect is for meetups to be live, whether they are completely online or a blend of online and in-person.
4. Conduct Coding Clinics
Have participants bring real-world work problems to a “coding clinic” where they have access to expert help. Expert mentorship is an effective way to solidify new skills. Yet traditional one-to-one mentorship requires an extended time commitment from both individuals. Coding clinics are like a pooled mentorship model which reduces the time commitment on both parties as they can decide to participate only when specific help is needed. If you’ve successfully enlisted existing experts, you can lean on them for helping with the coding projects that show up. In the effort I led, we held an optional coding clinic at the end of every meetup so that there were not multiple meetings to manage.
5. Encourage Peer Code Walkthroughs
Teaching is one of the most effective ways to learn due to having to think through how to describe something well enough for others to understand it. It is normal to inadvertently skip over key details when we are very familiar with a bit of code we’ve written because we have forgotten certain hard lessons, or we consider something to be self-evident. These inadequate explanations generally lead to what is referred to as ’dumb questions.’ Pairing the explaining presenter with a ’dumb question’ co-presenter can help with this problem as they can ask the dumb questions that are on everyone’s mind. This allows two heads to construct the explanation as you go because the co-presenter can also be thinking about the possible ’missing bits’ as the presenter is speaking.
Having a co-presenter also allows an explaining presenter to relax and not worry quite so much about preparation because they don’t have to ‘think of everything’. Reducing preparation burdens will also cause more folks to be willing to contribute as it does not feel like doing yet another pressure-filled business presentation or training.
Ensure that non-experts feel comfortable sharing their code from the start of the effort. Keep the sessions interactive. I have witnessed many sessions where the presenter takes away multiple valuable insights into the code they came to explain.
Again, in the effort I led, we made this a section of the regular meetup.
6. Lightly Curate a Code Library
Curating a library of various code examples is a great way to share expertise. It is helpful to keep a separation between general and downloaded working examples and code that people in your company have put together. The internal code can be especially useful as it can show common tasks that are frequently used in your company. Making the shared code private also ensures that the examples stay within your company. The code from peer code walkthroughs is ripe for being curated because it generally handles company-specific general functionality, for example, authentication with your company’s specific login system. The code library I curated was simply code files in a directory structure that could be searched with most text editors’ search functionality. This kept the curation process truly light.
7. Curate Other Helpful Resources
A very good way to advocate is to be a self-appointed librarian of helpful resources. Placing a list in a repository or wiki is a simple way to provide an index of resources. People appreciate being able to look through a smaller list of resources that they know someone has curated. Usually, all this takes is a few extra minutes to organize resources that you will be searching for and stumbling across while researching for your current scripting activities.
8. Facilitate Rubber Duck Code Reviews
Offer to be available to help others review their code for best practices and to help with debugging. Rubber Duck Debugging got its name from the idea that even explaining a problem to a rubber duck causes us to use new brain pathways as we try to articulate the problem and we stand to gain similar insights as when we have a human audience. I remember a specific code review early on where the script was working with technologies I was unfamiliar with and the coder was better at the coding language than I was. As we walked through, they discovered several needed changes just because they had to articulate how the code was intended to work as we went through line by line. I didn’t add anything to the technical mix, but my intensive rubber duck listening skills resulted in a lot of learning for me and some significant code improvements for them.
9. Keep a Cadence of Internal Social Posts
To generate engagement in learning a new coding language within your organization, you can use your company’s internal social platform. Encourage everyone to contribute, but commit to posting at least once a week yourself. Share small tips and links to coding resources, rather than creating original long-form content. The goal is to curate and disseminate information to your internal social followers for the purpose of engaging them in the more personal social learning support that your program offers.
10. Serve As A Life Line
Having a positive and helpful attitude is key to becoming a go-to person for information and resources related to a tech stack. By responding cheerfully and proactively to requests for help, you will naturally start to gain a reputation as a reliable source of knowledge. Over time, this creates a virtuous spiral – you gain more knowledge, which allows you to help more people, which in turn motivates you to learn even more. You may be concerned about becoming overwhelmed by the volume of requests, but keep in mind that this is a wonderful problem to have. If you find yourself in this situation, you can leverage the power of social sharing platforms like Slack groups or Stack Overflow to crowdsource information and resources. By sharing your knowledge and expertise with others, you can continue to learn and grow, while making a valuable contribution to your community.
11. Share the Expertise of Your Growing Network
As you continue to work with the group, your personal expertise will grow and you can help others more. But you can be a source of much, much more expertise by keeping tabs on the other existing and developing experts in your organization. You can also direct people to others who have built special skills or who apply the languages and frameworks to specific areas of your company. Knowing who’s who in your organization can provide you with access to a wealth of expertise that goes far beyond what you can keep in your own head.
12. Complement Formal Training
Formal training in any format is helpful and obviously plays a key role in taking on new skills. The concept of being a company’s internal champion is to focus on the support needed to nurture the informal, day-by-day process of truly mastering a skill. If training is needed, then you may be able to sponsor a third-party resource but keep your time and attention on the primary value of informal and social learning needs. It can be important to communicate to participants that the effort is not intended to create formal training, but rather to support learning in every other way.
13. Be Thoughtful About Hackathons
Hackathons have grown in popularity and they can add excitement to group learning by adding deadlines and a competitive spirit. However, common pedagogy models have identified that some learners are very tolerant of failure if they are growing in knowledge and skill (so-called “Mastery Learners”). On the other hand Performance Learners aren’t as comfortable with competition while in the learning process. A thoughtful way to do this might be to make it optional and ensure that teams have a mix of folks who are comfortable with this idea and those who want to stretch into it. Another approach might be to have the company’s internal group sponsor a team at an external hackathon. In any case, it may not be in the best interests of your program to make hack-a-thons or similar events a key approach or a capstone event.
14. Seed New Champions
While working on being a champion you are likely to find others who would like to contribute in the same way. If your group is large or their activity grows, you can tap into these individuals to help shoulder the load. These individuals may want to use what they’ve learned from you to champion other tech stacks for their teams or the entire organization. They can also be ideal candidates to take up the cause if you have changes in your work that prevent you from continue championing the specific technology.
Depending on the size and culture of your organization and the type of activities you undertake, you may not need formal permission to become an advocate for peer learning. You can start by reaching out to others and encouraging participation in informal learning activities. However, to be most effective, an advocacy program should be empowered to allocate some on-the-clock time for peer learning activities. This not only increases participation but also demonstrates a commitment to learning and development by the organization.
Starting an internal social channel or group is usually something you can do on your own initiative, and as it gains momentum and is perceived as boosting developer productivity, you will be in a better position to approach management about dedicating some on-the-clock time to peer learning activities. If you feel you may encounter pushback from management, you can use the ideas in this article to develop a semi-formal program that can be presented to decision-makers.
One of the most rewarding aspects of being an advocate for peer learning is the genuine appreciation shown by those whose skills and careers have been improved. This appreciation can last for years and is the ultimate reward for those who are committed to supporting the ongoing learning and development of their colleagues.
When you play a role in helping people improve their skills and careers they show you genuine appreciation – sometimes years afterward. For me, this aspect is the top reward!