Judge the Project, Not the Contributors


I recently read a blog posting titled, The 8 Essential Traits of a Great Open Source Contributor (by 2022, the original post was withdrawn - archive.org never captured it). I am disturbed by this posting. While clearly not the intended effect, I feel the posting just told a huge swath of people that they are neither qualified nor welcome to contribute to Open Source. The intent of the posting was to say that there is a wide range of skills needed in Open Source. Even if a potential contributor feels they lack an essential technical skill, here's an enumeration of other skills that are helpful.
Over the years, I’ve talked to many people who have wanted to contribute to open source projects, but think that they don’t have what it takes to make a contribution. If you’re in that situation, I hope this post helps you get out of that mindset and start contributing to the projects that matter to you.

See? The author has completely good intentions. My fear is that the posting has the opposite effect. It raises a bar as if it is an ad for a paid technical position. He uses superlatives that says to me, “we are looking for the top people as contributors, not common people”.

Unfortunately, my interpretation of this blog posting is not the need for a wide range of skills, it communicates that if you contribute, you'd must be great at doing so. In fact, if you do not have all these skills, you are not useful. So where is the incentive to participate? It makes Open Source sound as if it an invitation to be judged harshly.

I had my own experience of avoiding harsh judgement in open source when I was first learning Python back in the early 00s. I discovered a bug in the implementation of a standard library method (I don't recall the details of which function it was). As I really needed this method to work, I dug into the Python source code and realized I could easily fix this problem. I made my patch and tested it. It worked fine.

Then I looked into how to submit a patch to Python and was completely balked by one sentence. (Paraphrased) "Patches must be submitted in as a tarball'd patch file. If you don't know what that means, we probably don't want your patch anyway." Even though I understood what they wanted, I was so offended by the statement, I dropped the idea of submitting a bug correction. I made my own replacement for the buggy function and moved on with my project.

That bug persisted in Python for at least ten years before someone corrected it. That offensive statement in the patch submission instructions lasted for at least ten years, too.

Ok, I know this interpretation is through my own jaundiced eyes. So to see if my interpretation was just a reflection of my own bad day, I shared the blog posting with a couple colleagues. Both colleagues are women that judge their own skills unnecessarily harshly, but, in my judgement are really quite good. I chose these two specifically, because I knew both suffer “imposter syndrome”, a largely unshakable feeling of inadequacy that is quite common among technical people.   Both reacted badly to the posting, one saying that it sounded like a job posting for a position for which there would be no hope of ever landing.

I want to turn this around. Let's not judge the contributors, let's judge the projects instead. In fact, we can take these eight traits and boil them down to one: essential trait of a great open source project:

Essential trait of a great open source project:
Leaders & processes that can advance the project while marshaling the skills of imperfect contributors gracefully.

That's a really tall order. By that standard, my own Open Source projects are not great. However, I feel much more comfortable saying that the project is not great, rather than sorting the contributors.

If I were paying people to work on my project, I'd have no qualms about judging their performance. Contributors are NOT employees subject to performance review.  In my projects, if someone contributes, I consider both the contribution and the contributor to be “great”. The contribution may not make it into the project, but it was given to me for free, so it is naturally great by that aspect alone.

Contribution: Voluntary Gift

Perhaps if the original posting had said, "these are the eight gifts we need" rather than saying without these traits your gifts are inadequate, I would not have been so uncomfortable.

A great Open Source project is one that produces a successful product and is inclusive. An Open Source project that produces a successful product, but is not inclusive, is merely successful, but will never be great.