Originally posted 11/13/17 by Sepideh Miller.
A friend asked me about the best practices for encouraging newbie contributors to open source projects. I am not a person who runs any open source projects, but I am a person who has made low-level contributions to a number of projects. I contribute data to Open Street Map. I edit Wikipedia. I helped some people with their English language skills when they were putting in Google Summer of Code proposals for Zulip, a chat application that is somewhat like Slack. I also made a contribution to IgniteSpeak, some software used for Ignite Baltimore.
Create Helpful Documentation for New Contributors
Create some documentation on what new contributors should do.
That can be very simple documentation like what IgniteSpeak uses for the Setup and Development section of its README.md file. I did not know how to add an upstream project in GitHub before this particular project. Even though, I probably made only one contribution to this project, I have referred back to the README.md so many times to refresh my memory on how to set up an upstream project so I could contribute to other things. With this project, I knew some Ruby, but I did not know anything about Rails so I got stuck when I did not quite know how to write more complex RSpec tests than the ones that had been written by people before me.
Zulip has a ton of documentation including a page titled How to Get Involved with Contributing to Zulip. There were a lot of people on the actual Zulip platform sharing information on how to learn the technology that was being used in creating the product. This was helpful. Ultimately, I did not contribute any code to this project because I did not have time to add "Learn React Native" to my list of tech goals.
I had been making minor edits to Wikipedia for years before I found useful documentation on how to contribute to Wikipedia. The WikiAdventure tutorial is an outstanding way to learn how to contribute to Wikipedia. I still have things, like thinly sourced new articles, deleted; but now I understand why.
Create Useful Issue Tags
One thing that I really liked about Zulip was the fact that they had useful issue tags. Issues are tagged "help wanted" and "good first issue" so newbies know where they can start.
See New User Contributions
I joined the Slack channel for OpenStreetMap after attending State of the Map this year, and I learned that they have a bot that fills an entire channel with notifications when new users contribute. This gives more experienced people an opportunity to review new user contributions.
I am not sure if Wikipedia had something like this. I think a user or two thanked me for my contributions and also gave me a list of helpful resources. I turned my Wikipedia user page into a list of resources that I found useful. I listed people that I found to be responsive to my questions. Some of the people who have offered to help others and are on designated pages for newbies are absolutely swamped and less responsive than I had hoped. Making my own list of people was more useful to me.
How to Be Nice
Someone wanted some advice that was less generic than "be nice" for supporting newbies. Do not critique the grammatical skills of your new contributors. English may not be their first language. Some people who program write really poorly. Some people never got their dyslexia diagnosed or treated. If you can understand what is being said, then move the conversation forward. If you cannot understand what is being said, do you have the time to ask more questions to figure out what is going on here?
Refer people to your documentation if it exists before deleting their contributions. Someone took time to contribute something to your project. Talk to them. Is there something that they could do better next time? Do you prefer two space tabs to four space tabs? "Thank you. In this project, we prefer this style, can you adjust your contribution accordingly?"
Have a code of conduct. This is a signal that you have put some thought into who you want contributing to your project. Your code of conduct should be more thoughtful than "Be excellent to each other. Party on Dudes."
About our blog:
This blog (like Flock) was formed to amplify the voices of underrepresented technologists and help all of us fly higher together.