Peer learning levels up your developers
Every new tool has a learning curve. The longer your users are stuck, the more frustrated and discouraged they become. Stay in the red too long, they may move on and try an alternative approach that doesn’t include your project. Conversely, getting unstuck quickly restores them to the satisfaction of flow state, where they feel great because the problems they face are tractable and satisfying. Programming can be high friction. In particular, adopting new technologies presents meaningful barriers to entry, as developers learn new APIs, design patterns and constraints. When we don’t know the solution, but everyone else seems confident, it can create unpleasant feelings of self-doubt. Interrupt this loop—with helpful humans—and you’ve got the basis for loyalty and passion for what you’re building. It’s isolation on the one hand, and relief on the other. These constructive interactions result in real relationships. These relationships result in positive associations with your tool. My friend Dave told me the story of how an early freelance job involving microcontrollers had him stuck in the mud. He found an IRC channel, asked questions, and found an expert who promised “we will figure this out.” They went back and forth for weeks. Dave was in Brazil, his new friend was in Austria, and by the end, Dave was being tempted to consider an AV job at an Austrian opera company. His relationship to microcontrollers was changed forever. Your team can create these positive associations. Early career developers who receive help from staff or project leads are especially impacted. These investments show folks that they are worthy and valued. As a young bootcamp grad once told me, receiving help from a project team member “was the first time [he] felt like part of the developer community.”When you level up your developers, your business wins
When people feel like your tool gives them superpowers, they’re going to talk about that. The best marketing campaign in the world pales in comparison to the power of word of mouth and grass roots support. Imagine what you could accomplish if your users did things like:- Blog about how they use your product
- Publish tutorials
- Help others navigate known issues your team hasn’t patched yet
- Start consultancies selling their expertise in your product
- Lobby their managers to let them use your product on the job
You can have this!
Let’s talk about what it takes. First, understand that a healthy peer learning community requires balancing opposing needs and scarce resources. You need to serve both askers and helpers, who have different incentives. You need strangers to show up and be constructive, in consistent ways. You’re going to be managing an economy of social capital with volunteers who don’t all want the same things. Every successful technical community has invested countless hours resolving these challenges. They’re hard, but solvable.Define your parameters
Understand the purpose of this space. This is not a social watering hole. I know, I just mentioned the international friendship opportunities of a successful microcontroller community. I’m sure you want that too! But there’s a catch. It’s too common for developer engagement teams to reach directly for friendships and good vibes without first building the foundations that make those things possible over distance: shared accomplishment. Going through something hard lets you really know and trust someone. If you want meaningful relationships, set people up to win real triumphs together. What you want to build is a place for your users to become more sophisticated technologists. You want a place where people can get answers to “how do I…?” questions. Finally, you want a place for maintainers and your formal team to jump in when there are high leverage opportunities to create impact. You can learn a lot about how people are using your tools just by maintaining conversation with them, and these inputs can feed into more formal processes, like pitching a project evolution in your GitHub repo. This is also a venue for your team to create super-supporters. Remember: a little attention from your experts can go a long way.Choose your software
While it can be tempting to spin up a number of peer support channels to stir up as much engagement as possible, I recommend against that. Don’t spread your team and community too thin, especially in your project’s early days. Think about the consequences of how your community software is designed. There’s a tradeoff between the fluidity of chat, and the stability and discoverability of forums. They often work well in concert, but decide what to invest in first.What do people want?
Think about the broad personas your peer support community needs to serve. New users will need reliable debugging help, progress toward mastery, and support in their quest to be worthy technical contributors. Power users need access to maintainers, public recognition, and paths to career advancement. Maintainers and team members need a successful project and sustainable use of their time. You don’t want to overwhelm your crew.House rules and social norms
Here are some questions to help you establish guidelines for your community.- What level of question is welcome?
- What are the responsibilities of those giving and receiving help?
- How can you turn your newbs into helpers?
- What do you consider off-topic?
- How do you reward your loyalists and create a sense of progression?