Culture / Open Source

How to Give and Receive Technical Help in Open Source Communities

19 Nov 2020 11:00am, by

Honeycomb sponsored The New Stack’s coverage of Kubecon+CloudNativeCon North America 2020.

“As a developer, it’s exciting and challenging to stay up to speed with the latest trends in technology. Every day, new languages, frameworks and devices capture our attention and spur conversations in meetups, forums and chats. However, our developer community is made of people, not tools, and it’s fascinating to explore its sociopolitical aspects. We are always beginners at some things and experts at others. Along the way from beginner to expert, we ask a lot of questions, but it can be intimidating to ask for help.”

This is how Sonia Singla, Cloud Native Computing Foundation intern and mentee, kicked off her talk at this year’s Kubecon+CloudNativeCon North America. Fresh off her CNCF internship with Thanos and Outreachy placement at Mozilla, Singla took the lessons she’s learned over the last two years in both toxic and welcoming environments to offer advice for both how to give and receive technical help in open source communities.

How to Ask for Technical Help in Open Source Communities

Some open source communities can be massive. Overwhelmingly so. Kubernetes is certainly one of those. This means that no matter how supportive the environment is, it can be hard to know who to ask and how to ask the right questions.

When Singla started contributing to open source when she started university at age 17, she knew that helping could be hard: 95 percent of the time she asked for help, she never heard back. She doesn’t blame arrogance, but rather she assumed they were busy. But in the end, she realized she wasn’t asking questions in the right way. When she did, she got assistance about 95 percent of the time.

While Singla, like most engineers, loved learning new stuff, she had to develop a new mindset of asking for help.

She said it can be intimidating, but “Even if you are talking to a person who is junior or senior, they don’t need to know everything. You know some of the stuff, they know some of the stuff, and you both know some of the same stuff.”

Singla says you have to push yourself to be ready to ask questions earlier, first and foremost to make sure you are participating in the right culture. That this open source community is worth your time. In order to do that, start to ask questions of the founders, if it’s a small or new project, or look for answers they have already published, for the larger ones. After all, the founders and the maintainers are the ones who set the culture.

Next, once you’ve decided to participate, it’s time to immerse yourself in the culture, norms and different communication channels.

“Don’t just barge in, have a look around,” Singla said.

Some forums and Slack communities have the same questions over and over again. Don’t forget to search the mailing list, read error messages and Google what you’re looking for — StackOverflow and StackExchange help you avoid antagonizing the FOSS regulars.

Singla says to stick to a 15-Minute Rule. Take 15 minutes to solve a problem anywhere. Then you can ask someone for help, but armed with much more context. With that context, always explain what you are trying to achieve with your big picture goals.

She warns against saying potentially offensive things like “I tried this and it didn’t work. Please help!” In fact, she says don’t start any sentence with “I think” — be direct but detailed. Say what you’ve already tried.

And finally, remember to give thanks and (politely) feedback if the help you received was was helpful or not.

Singla reminds to expect asynchronous communication and “Don’t get annoyed if you don’t get an answer in first few hours, someone asks for more detailed, or someone says you are doing it wrong” because you will be often.”

How to Give Technical Help in Open Source Communities

Singla said that sometimes she is inundated with advice, which “at its core plays into the idea that the under-represented people aren’t already skilled enough or aren’t ready for leadership.”

She says mentors need to think about offering opportunity and visibility, not advice, particularly to under-represented groups.

She continued that under-represented minorities “have to work extremely hard and are extremely good at the work they are doing, but are consistently under-represented and under-promoted.”

Quote from Kristy Tillman reading "Advice is just one thing a mentor can give. But there are residual benefits from visible proximity and tangential relationships to be gained."

The alternative she offers is nurturing an open source culture of helping others. This makes a huge difference for how community members can transition in different fields and from contributors to maintainers.

Singla admitted that “It’s also true that you have stuff to do, you have a full-time job, you have kids. And if someone comes in and interrupts you it’ll take your time away from whatever you’re working on and that’s challenging.”

But she says you have to remember that “Helping a team be successful is helping everyone be successful in their own work.”

The role of a mentor in an open source community is unusual because you can have people from places like Google and Uber, but you may also have senior members who’ve never had a paid gig. Each contributor is at a place where they can help someone else take a step back and talk about the big picture.

But with these diverse career paths, comes the shared challenge that it can be difficult to remember what it’s like to not understand everything. Singla offers tricks to help with that too.

First and foremost, she says an open source community must be welcoming, gentle, compassionate and curious. It must encourage asking questions. If you aren’t getting enough questions, implement some sort of rewards or recognition for those who ask. Be publicly excited about helping someone else solve a problem.

However, while Singla says to be prepared for a lot of questions especially from newcomers, and you should welcome them, don’t always answer them right away. Never grab the keyboard and do it for them. “Teach them how to ship” and let them struggle a bit.

Just never respond with “How could you not know that?” Because that’s where the toxic culture ferments.

“Obvious to you doesn’t mean obvious to another person and if it’s not obvious, it is clearly rude,” she said.

Always try to explain things constructively as well as politely.

And do it with inclusive language. Avoid common tropes like:

  • Easy
  • Obviously
  • Just
  • FWIW (for what it’s worth)
  • Guys

She warns you shouldn’t always give them the answer, but it is your job as a mentor to explain the process and reason, how you approached the problem. Use your experience to explain how things are run behind the scene. And provide them with enough data, context or documentation links that helps them know better. Take them through your complex decision making process and make sure they can access the resources and tools to self-learn.

Singla reminds us that we are never taught how to give nor receive feedback or how to be experts. Be open-minded that everyone, especially in an open source, mainly volunteer setting, is just picking things us as they go.

“Building a successful and healthy community takes a long time,” she said.

But it can be worth it and it’s essential to keep the wheel turning, where contributors become maintainers, and the project continues to grow.

KubeCon+CloudNativeCon is a sponsor of The New Stack.

A newsletter digest of the week’s most important stories & analyses.