*cough* This was a draft post that it turns out I totally forgot about. Looking it over though, it seems fairly complete, despite my never having posted it.
I was at FOSDEM speaking as part of the Ruby DevRoom this year. I had a great time, and you can watch my talk here.
However, the Ruby track was only on the first day. The second day, I spent some time at the "Community" track... despite the fact that I couldn't get into most talks because of room size issues!
During the Mentoring 101 talk, those who couldn't get into the room instead held a round table in the hall way outside the room, which I found fascinating. The topic of the round table started with "How do you mentor new people to your community", but also stretched into how do encourage new people to become part of your community.
There was a good spread of projects participating in the talk, including community members from WordPress, LibreOffice and Apache Spark.
I took some notes from that discussion, that I'll share and expand below:
Sign posting:
Many people made the point that it's really important as a community that you demonstrate the variety of ways in which your community is willing to take contributions. https://make.wordpress.org/ was called out as a good example of this, which calls out 16 different subteams on wordpress, each of which points out what kind of work they do and how you can get involved.
Other signposting pointed out:
- Issue labels Beginners is a good choice, though some communities go further and have a "first time contributor" tag. A comment made by a number of people was the importance of curating these beginner tags and ensuring that they are properly laid out. Similarly, it's really important more experienced developers don't tackle these, to avoid them drying up. Stories were told of some projects that would actively reject pull requests for "first time contributor" bugs if someone had done work on the project before.
- Some people pointed out a good tag that's not common enough was "second time contribution" -- these are the slightly larger tasks that really help hook people into a community.
- Recognition: Some projects make a big deal of recognizing everyone who contributes. LibreOffice apparently sends out a paper certificate.
- Non-code contribution: Super important to call out the value of them! Documentation, bug triage, reproduction got a huge number of nods.
Onboarding
- Face to face is super important: Hangouts, skype, etc. Important to build those personal relationships. If you're geographically close, coffee shops.
- Open sprint day: A day where a large fraction of the community tries to show up simultaneously to work on a sprint together (virtual or real world!)
- Have people document their own onboarding struggles. Easy contribution, but also super valuable.
Advertising to new contributors:
Sites exist to pull in new contributors.
There are university programs asking students to try to contribute to OSS: Having smooth paths to help them is great.
Culture
- Be aware! The Loudest culture wins