At its beginning, every open source project starts with code, and one or more developers. What turns that project into a community are the people who engage with each other around that code. No matter what the maturity level of your project, one of the most important things to encourage and maintain is engagement with the users and contributors of your projects.
When a user of your project makes the effort to engage with the developers of the project, treat it as you would a gift from someone close to you. This person has taken time that they could have spent on something else, and they have chosen to spend that time contacting you. Whether it is a bug report, a feature request, or a pull request, these first interactions are critical to whether that person will have a positive or a negative impression of your project.
Here are a few things you can do to create a welcoming culture that treats user engagement as the gift that it is.
Accept the Gift
Sometimes it can be hard to react positively if (for example) a user is upset because something does not work as they expect in your project. At times like this, remember that this person is making an effort to tell you about their issue. Think of it like the time that your well-meaning aunt got you the cheap knock-off building blocks instead of the Lego set you were hoping for. When someone engages with your project for the first time, you have a one-time-only opportunity to give them a good first impression.
First, thank the person for their contribution, and acknowledge it. Many times when people turn up to your project upset, the very first thing they want is reassurance that it’s not them--reassuring them that, yes, this is harder to use than it should be, and helping them over the particular speed bump they are hitting, will turn them from critics to cheerleaders for the project.
Provide Actionable, Useful Feedback
In the case that someone is asking a question, you may need more information from them. If you are reviewing a pull request that does not match the project’s coding conventions, you will want them to make some changes to their contribution. In the case where you are giving feedback or asking for something from them, it is important to look at your project with a beginner’s eye. There is nothing more frustrating than having a question answered with “Just frobding the dollygagger,” and scratching your head and saying “How on Earth do I do that?”
When reviewing code, do not assume a high level of proficiency with the programming language, your project, or even with how to update a pull request in GitHub. If your project runs on Kubernetes, do not assume that the person you are dealing with is an admin on the Kubernetes cluster, or is familiar with Kubernetes internals.
If in doubt, you can always ask some level-setting questions, but if you are telling someone to change an option in a config file, give instructions on where to find the file, and what the file’s format is in. If the person you are dealing with cannot act on the feedback you are giving, the feedback is not actionable.
Give Engaged Users a Good Experience
When someone engages with your project, do everything in your power to ensure that they come away feeling good about the interaction. This is important not just for the person you are dealing with, but for all of the people you never hear from who are looking on. Whether it’s a reader who finds a StackOverflow question six months later, or a bystander in a community chat forum, when you see others having a good experience, it makes you feel better about the project, too.
People Over Process
Continuing on the previous theme, large development teams rely on process for efficient operation. Whether they use bug tracker workflow management to validate when changes can go into CI or be merged, or smoke tests that run on every pull request, we build up layers of tooling to help developers work through a large number of changes without going mad.
For someone active in the project, this kind of thing provides huge value! But for a newcomer to your project, it’s all very mysterious. As a community software developer, be mindful of newcomers to your project--if their first PR does not pass smoke tests, it is worth taking an extra minute to explain what the tests are, and why they are important, rather than just commenting “CI fail” or “Whitespace issues” without any context. In short, value the person making the contribution more highly than the contribution itself.
Build Relationships
Finally, when a new contributor shows up to your project, you have an opportunity to engage with someone who is using your project, to find out more about how they found it, what they like and dislike about it. That information is golden - direct access for developers to their users is one of the things that separates open source software development from proprietary software development, take advantage of it! And having a conversation has another by-product: for a user who may have been considering your software as the product of a faceless corporation, you are putting a name and face to the project. In short, you are building a relationship.
Think about the first time you turn up in a new school, neighborhood, or company - the thing that makes you feel like you belong is that human connection with someone who, just a few minutes before, was a stranger. This relationship, as small and as nascent as it is, is what will bring this person back, and turn them from a consumer of your project into a participant in your community.
(Image by The McClouds, CC by-SA 2.0)
저자 소개
Dave Neary is the Field Engagement lead for the Open Source Program Office at Red Hat, communicating the value of open source software development to Red Hat customers ad partners. He has been active in free and open source communities for more than 15 years as a consultant, community manager, trainer and developer. In that time, he has worked on advising companies in finance and telecommunications industry on effective adoption of, and participation in, open source projects.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.