What makes a good community?

*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:

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*

Edit: Please stop suggesting BSDs or Canonical/Ubuntu as “better” communities.

Closing a door

This post has been sitting in my drafts folder for a year now. It has never been the right time to post this. I have always been worried about the backlash. I’ve skirted around talking about this issue publicly for some time, but not acknowledging the elephant in the room has eaten away at me a bit. So, here goes.

Here’s the deal: I’m not a Linux kernel developer any more. I quietly transferred the maintainership of the USB 3.0 host controller driver in May 2014. In January 2015, I stepped down from being the Linux kernel coordinator for the FOSS Outreach Program for Women (OPW), and moved up to help coordinate the overall Outreachy program. As of December 6 2014, I gave what I hope is my last presentation on Linux kernel development. I was asked to help coordinate the Linux Plumbers Conference in Seattle in August 2015, and I said no. My Linux Foundation Technical Advisory Board (TAB) term is soon over, and I will not be running for re-election.

Given the choice, I would never send another patch, bug report, or suggestion to a Linux kernel mailing list again. My personal boxes have oopsed with recent kernels, and I ignore it. My current work on userspace graphics enabling may require me to send an occasional quirks kernel patch, but I know I will spend at least a day dreading the potential toxic background radiation of interacting with the kernel community before I send anything.

I am no longer a part of the Linux kernel community.

This came about after a very long period of thought, and a lot of succession planning. I didn’t take the decision to step down lightly. I felt guilty, for a long time, for stepping down. However, I finally realized that I could no longer contribute to a community where I was technically respected, but I could not ask for personal respect. I could not work with people who helpfully encouraged newcomers to send patches, and then argued that maintainers should be allowed to spew whatever vile words they needed to in order to maintain radical emotional honesty. I did not want to work professionally with people who were allowed to get away with subtle sexist or homophobic jokes. I feel powerless in a community that had a “Code of Conflict” without a specific list of behaviors to avoid and a community with no teeth to enforce it.

I have the utmost respect for the technical efforts of the Linux kernel community. They have scaled and grown a project that is focused on maintaining some of the highest coding standards out there. The focus on technical excellence, in combination with overloaded maintainers, and people with different cultural and social norms, means that Linux kernel maintainers are often blunt, rude, or brutal to get their job done. Top Linux kernel developers often yell at each other in order to correct each other’s behavior.

That’s not a communication style that works for me. I need communication that is technically brutal but personally respectful. I need people to correct my behavior when I’m doing something wrong (either technically or socially) without tearing me down as a person. We are human. We make mistakes, and we correct them. We get frustrated with someone, we over-react, and then we apologize and try to work together towards a solution.

I would prefer the communication style within the Linux kernel community to be more respectful. I would prefer that maintainers find healthier ways to communicate when they are frustrated. I would prefer that the Linux kernel have more maintainers so that they wouldn’t have to be terse or blunt.

Sadly, the behavioral changes I would like to see in the Linux kernel community are unlikely to happen any time soon. Many senior Linux kernel developers stand by the right of maintainers to be technically and personally brutal. Even if they are very nice people in person, they do not want to see the Linux kernel communication style change.

What that means is they are privileging the emotional needs of other Linux kernel developers (to release their frustrations on others, to be blunt, rude, or curse to blow off steam) over my own emotional needs (the need to be respected as a person, to not receive verbal or emotional abuse). There’s an awful power dynamic there that favors the established maintainer over basic human decency.

I’m not posting this for kernel developers. I’m not posting this to point fingers at specific people. I’m posting this because I grieve for the community that I no longer want to be a part of. I’m posting this because I feel sad every time someone thanks me for standing up for better community norms, because I have essentially given up trying to change the Linux kernel community. Cultural change is a slow, painful process, and I no longer have the mental energy to be an active part of that cultural change in the kernel.

I have hope that the Linux kernel community will change over time. I have been a part of that change, and the documentation, tutorials, and the programs that I’ve started (like the Outreachy kernel internships) will continue to grow in my absence. Maybe I’ll be back some day, when things are better. I have a decades long career in front of me. I can wait. In the meantime, there’s other, friendlier open source communities for me to play in.

When one door closes, another opens; but we often look so long and so regretfully upon the closed door that we do not see the one which has opened for us.

– Alexander Graham Bell

(FYI, comments will be moderated by someone other than me. As this is my blog, not a government entity, I have the right to replace any comment I feel like with “fart fart fart fart”. Don’t expect any responses from me either here or on social media for a while; I’ll be offline for at least a couple days.)

Edit: I would highly recommend you read my follow-up post, “What makes a good community”

Edit 2: Please stop suggesting BSDs or Canonical/Ubuntu as “better” communities.

I won Red Hat’s Women in Open Source Award!

At Red Hat Summit, I was presented with the first ever Women in Open Source Award.  I’m really honored to be recognized for both my technical contributions, and my efforts to make open source communities a better place.

For the past two years, I’ve worked as a coordinator for Outreachy, a program providing paid internships in open source to women (cis and trans), trans men, genderqueer people, and all participants of the Ascend Project.  I truly believe that newcomers to open source thrive when they’re provided mentorship, a supportive community, and good documentation.  When newcomers build relationships with their mentors and present their work at conferences, it leads to job opportunities working in open source.

That’s why I’m donating the $2,500 stipend for the Women in Open Source Award to Outreachy.  It may go towards internships, travel funding, or even paying consultants to advise us as we expand the program to include other underrepresented minorities.  There’s a saying in the activist community, “Nothing about us without us.”  We want to make sure that people of color are involved with the effort to expand Outreachy, and it’s unfair to ask those people to perform free labor when they’re already paid less than their white coworkers, and they may even be penalized for promoting diversity.

I urge people to donate to Outreachy, so we can get more Outreachy interns to conferences, and expand our internships to bring more underrepresented minorities into open source.  Any donation amount helps, and it’s tax deductible!

Sarah Sharp wins Women in Open Source Award!

Donate to the Ada Initiative!

Want to support women in tech? Donate to the Ada Initiative!

For the last two years, I’ve been going to the conferences the Ada Initiative has put on for women in open technology and culture. It’s a really awesome experience to be in a room full of hundreds of techie, geeky women. There’s everyone from open source developers to security analysts, hardware hackers to fan fiction writers. Heck, I even met a documentary producer at the last AdaCamp in San Francisco.

One of the most important things I learned at Ada Camp was how to combat impostor syndrome. It’s basically the feeling that you’re not really that smart, that your accomplishments are just luck, and some day, someone is going to find out, and you’ll get humiliated/fired/shunned. It’s surprising the number of highly successful tech women who experience this feeling.  I used to have the worst case of impostor syndrome, until the women at AdaCamp taught me how to fight it.

Read More

Summary on Civility

Peace, love, and Linux by flickr user amayita
The LKML thread where I stood up against verbal abuse has been winding down. I’ve posted a summary of my position. As I noted, I have been listening and learning from the arguments on the thread. In the course of the thread, my personal viewpoints have changed subtly, and I’ve chosen to push for change in areas where I think I might actually make headway. It wouldn’t be a discussion if no one changed their mind.

Nothing is going to change overnight in the Linux kernel community. As Casey Schaufler pointed out, I cannot force or demand change. I’m merely asking to discuss the possibly of change at the Linux Kernel Summit.

Thank you for listening and debating on this subject. Open discussion can only improve our community.

No more verbal abuse

I’m standing up against verbal abuse on LKML.  I will happily stand alone, however you can also support this cause.  Please speak up, either by resharing this post, or commenting on this post with words of support.  If you dare, you can also reply to my LKML email.

“Where do I put this fire? This bright red feeling? This Tiger Lily down my mouth? He wants to grow to 20 feet tall… I’m so tired of being shy; I’m not that girl any more. I’m not that straight-A anymore.”

Update

Examples of verbally abusive behavior on the Linux kernel mailing list:

Preventing Violence Against Women

Trigger Warning: Violence Against Women, Rape & Victim BlamingThis week, Facebook came under fire for not pulling several pages that promote violence against women.  Pages like “Violently Raping Your Friend Just for Laughs” remained up, even after they were reported to Facebook.  After a dedicated campaign to get ad sponsors to pull their ads, Facebook said they would retrain staff to take down pages that promote gender-based violence.

That’s not enough, in my opinion.  Sending the message that violence against women isn’t socially acceptable on Facebook is a step in the right direction.  However, silencing the conversation on social media does not change how our culture views violence against women and rape.  Thoughts on how to prevent rape and violence are below the cut.

Read More

My Zora List

My friend Maria (@ubergeeke) once mentioned reading about someone’s Zora list.

Without further ado, here is my Zora list:

– Eat 70% of my food from my garden for one summer. Yes, that’s a big garden.
– Sail the San Juan Islands with my husband in our boat.
– Live out of panniers, on a bike, for a month, with no plan and no reservations. This gets at the heart of my greatest fear: being homeless without a plan.
– Be one of those people who the neighbors go to have tea with and talk over their troubles.
– Teach someone to read. Watch them grow and help them to love learning, exploring, and being curious.
– Learn to spin a yarn about my adventures (my family’s tradition).

Dinner by the fire

Last night we had “going away” dinner at Arabian Breeze because my friend Deepak is leaving Montavista Linux. Deepak isn’t actually moving away from Portland. He’ll be working from home and occasionally flying to Boston to meet with his coworkers at the “One Laptop Per Child” (OLPC) company. It sounds like OLPC still wants to work on the Sugar UI and Linux infrastructure, despite Nicholas Negroponte’s recent remarks about developing Sugar for Windows.

The dinner was good, but it got off to a harrowing start. When I arrived at the restaurant, I discovered that there was a giant warehouse fire across the street. The police had the entire block (including the restaurant) roped off with caution tape. They did let us through, once we explained where we wanted to go. I guess they just didn’t want a crowd of gawkers hanging near the fire.

Still, it was a little dumb of us to continue eating at the restaurant, considering there was a gas station next door.