I’ve always wanted to contribute to Open Source projects; wanting to be ‘that guy’ whose GitHub profile is spotted with stars and sports a healthy looking contributions graph.
However, I like to think that there are a couple of key areas which prevent me from contributing. Perhaps prevent is a bit of a strong statement; I would like to use a fairly arduous metaphor here. On the other side of the river, is some lovely, green grass and a perfect place to build a house, raise a family, and all of that jazz (representative of building my open source contributions career); however, the only way across the river is via a shaky, possibly rotten bridge, that is suspended over a 200ft gorge (representative of my reasons for not contributing just yet). I’m not ‘prevented’ from contributing, but there are some reasons why I haven’t just yet. You have my thanks for bearing with me over the course of that analogy.
I’ve read the guides (GitHub and jQuery) to help ‘onboard’ myself to Open Source, and each of them describe the mechanism for contributing, but both seem to skirt around the most important piece of advice. How do I deal with people?
I’m perfectly familiar with how to interact with people online and in person, I’m not particularly socially anxious, however, contributing to someone’s project is still something that deeply intimidates me. It’s an area of life that makes me question myself constantly, like no other.
Seth Ross (Author of Unix System Security Tools) devised a list of rules pertaining to security in Unix. Rule 6, I felt, perfectly encapsulated my feelings on contributing to Open Source projects:
There’s Always Someone Out There Smarter, More Knowledgeable, or Better-Equipped Than You
How does this pertain to Open Source, I hear you ask. Well, the concept that there are always people better than me, is one I often keep close to myself as a way to stay humble, and enforce my always-learning mental attitude. Though in this case, it does present me with a slight case of anxiety. What if the Project Owner, is this person who is better than me, and this bug I’ve identified, isn’t simply a bug, but a feature, and I’ve simply misunderstood. I’m not going to spend time fixing and raising a PR for this bug because I have an inbuilt fear that I’m actually fairly stupid, and my code, nor my assumptions aren’t up to scratch.
In all other areas of life, I like to think I’m fairly confident. Though in my profession, I try to keep myself learning, so that I can always improve. This, in some instances, breeds a case of “I’m not good enough”, and this is the main cause behind my intimidation with working in Open Source projects.
All I hear about these days is about toxic open source communities, unwelcoming or downright abrasive collaborators, sexism, minority exclusion and all sorts of other nasty behaviour. Open Source contributor Lennart Poettering has recently said the below:
If you are a newcomer to Linux, either grow a really thick skin. Or run away, it’s not a friendly place to be in. It is sad that it is that way, but it certainly is.
Now, Linux isn’t my area, but I’ve heard that other Open Source communities are the same; and with the prevalence of the #phpdrama hashtag on Twitter, I’m sure my chosen area of expertise suffers from similar issues. Even community leaders are guilty of breaking into full-blown, epic, public argument, I’d hesitate to figure out what some of the slightly-more private discussions would have been like within GitHub Pull Requests/Issues.
Despite the obvious benefits to contributing, I can’t help but feel averse to joining such a community, for fear of being grouped with these people. I am, after all, also a western, white, straight, male – I’m the demographic that, straight up, causes all of this nonsense.
I have to add, just so we’re clear, I’ve not experienced any mistreatment in my (very) limited experience of contributing so far. The issue is that I know this stuff is happening, and I need to do my best to stay out of it; that to me, is a fairly daunting prospect.
Just do it
Hopefully, I can avoid litigation from Nike for this section’s title. When I was six years old, there was a fairly steep drop on a small mountain bike track near my house. I remember sitting atop my bike and agonising over the drop; running through all the possible scenarios of injury, or death. The longer I stayed at the top, the worse these anxieties became. Then what happened, was I became anxious for what people would think if I couldn’t do it. If I backed out, what would my friends say? This catch-22 situation is similar (though less emotionally driven) to my struggles with contributing to Open Source.
You want to know the outcome?
I sucked it up, and just did it. I flew down that drop, completely injury free. You know what, I ended up riding to the top and dropping it again, and again and again; I thoroughly enjoyed every moment.
I now need to apply this technique to open source contributions and just get in there and start contributing. Some things will go wrong, it’s inevitable, but I need to overcome those and drown them in a sea of successes.