*Pokes head in, sees comments are generally positive*
There’s been a lot of discussion in my comment sections (and on LWN) about what makes a good community, along with suggestions of welcoming open source communities to check out. Your hearts are in the right place, but I’ve never found an open source community that doesn’t need improvement. I’m quite happy to give the Xorg community a chance, mostly because I believe they’re starting from the right place for cultural change.
The thing is, reaching the goal of a diverse community is a step-by-step process. There are no shortcuts. Each step has to be complete before the next level of cultural change is effective. It’s also worth noting that each step along the way benefits all community members, not just diverse contributors.
Level 0: basic human decency
In order to attract diverse candidates, you need to be known as a welcoming community, with a clear set of agreed-upon social norms. It’s not good enough to have a code of conduct. Your leaders need to be actively behind it, and it needs to be enforced.
A level 0 welcoming community exhibits the following characteristics:
- Honest and direct technical feedback is encouraged
- Contributors are encouraged to work out social issues in a healthy manner
- Day-to-day community interactions are generally at DISCON level 1 (Everything is peachy), occasionally dipping down to DISCON level 2 (Non-personal Insults) or DISCON level 3 (swearing)
- Contributors who repeatedly reach DISCON level 4 (personal insults) are encouraged to change
- Contributors who reach DISCON level 5 (threats) are discouraged from participating
- Repeat harassers are removed from conferences and banned from communication channels
- Newbies are warned about any “missing stairs” and people who give unhelpful feedback
- Code of conduct spells out what behaviors are encouraged and discouraged
- When microaggressions are pointed out, community members stop, listen, and apologize
- The whole community, including leadership and community managers actively enforce communication standards
Level 1: on-boarding
The next phase in improving diversity is figuring out how to on-board newcomers. If diverse candidates are only 1-10% of newcomers, but you have a 90% fail rate for people who try to make their first contribution, well, you can’t expect many diverse newcomers to stick around, can you? It’s also essential to explain your unwritten tribal knowledge, so that diverse candidates (who are more likely to be afraid of upsetting the status quo) know what they’re getting into.
Signs of a level 1 welcoming community:
- Documentation on where to interact with the community (irc, mailing list, bug tracker, etc)
- In-person conferences to encourage networking with new members
- Video or in-person chats to put a face to a name and encourage empathy and camaraderie
- Documented first steps for compiling, running, testing, and polishing contributions
- Easy, no-setup web harness for testing new contributions
- Step-by-step tutorials, which are kept up-to-date
- Coding style (what’s required and what’s optional, and who to listen to when developers disagree)
- Release schedule and feature cut-off dates
- How to give back non-code contributions (bug reports, docs, tutorials, testing, event planning, graphical design)
Level 2: meaningful contributions
The next step is figuring out what to do with these eager new diverse candidates. If they’ve made it this far through the gauntlet of toxic tech culture, they’re likely to be persistent, smart, and seeking a challenge. If you don’t have meaningful bigger projects for them to contribute to, they’ll move onto the next shiny thing.
Signs of a level 2 welcoming community:
- Newbie todo lists
- Larger, self-contained projects
- Welcoming, available mentors
- Programs to pay newbies (internships, summer of code, etc)
- Contributors are thanked with heartfelt sincerity and an explicit acknowledgment of what was good and what could be improved
- Community creates a casual feedback channel for generating ideas with newcomers (irc, mailing list, slack, whatever works)
- Code of conduct encourages developers to assume good intent
Level 3: succession planning
The next step for a community is to figure out how to retain those diverse candidates. How do you promote these new, diverse voices in order to ensure they impact your community at a leadership level? If your leadership is stale, comprised of the same “usual faces”, people will leave when they start wanting to have more of a say in decisions. If your community sees bright diverse people quietly leave, you may need to focus on retention.
Signs of a level 3 welcoming community:
- Reviewers are rewarded and questions from newcomers on unclear contributions are encouraged
- Leaders and/or maintainers are rotated on a set time schedule
- Vacations and leaves of absence are encouraged, so backup maintainers have a chance to learn new skills
- Community members write tutorials on the art of patch review, release management, and the social side of software development
- Mentorship for new presenters at conferences
- Code of conduct encourages avoiding burnout, and encourages respect when people leave
Level 4: empathy and awareness
Once your focus on retention and avoiding developer burnout is in place, it’s time to tackle the task most geeks avoid: general social issues. Your leaders will have different opinions, as all healthy communities should! However, you need to take steps to ensure the loudest voice doesn’t always win by tiring people out, and that less prominent and minority voices are heard.
Signs of a level 4 welcoming community:
- Equally values developers, bug reporters, and non-code contributors
- Focuses on non-technical issues, including in-person discussions of cultural or political issues with a clear follow-up from leaders
- Constantly improves documentation
- Leadership shows the ability to recognize their mistakes and change when called out
- Community manager actively enforces the code of conduct when appropriate
- Code of conduct emphasizes listening to different perspectives
Level 5: diversity
Once you’ve finally got all that cultural change in place, you can work on actively seeking out more diverse voices and have a hope of retaining them.
Signs of a level 5 welcoming community:
- Leadership gatherings include at least 30% new voices, and familiar voices are rotated in and out
- People actively reach outside their network and the “usual faces” when searching for new leaders
- Community participates in diversity programs
- Diversity is not just a PR campaign – developers truly seek out different perspectives and try to understand their own privilege
- Gender presentation is treated as a non-issue at conferences
- Conferences include child care, clearly labeled veggie and non-veggie foods, and a clear event policy
- Alcoholic drinks policy encourages participants to have fun, rather than get smashed
- Code of conduct explicitly protects diverse developers, acknowledging the spectrum of privilege
- Committee handling enforcement of the code of conduct includes diverse leaders from the community
The thing that frustrates me the most is when communities skip steps. “Hey, we have a code of conduct and child care, but known harassers are allowed at our conferences!” “We want to participate in a diversity program, but we don’t have any mentors and we have no idea what the contributor would work on long term!” So, get your basic cultural changes done first, please.
*pops back off the internet*