bug repellent

a blog by @captainsafia

<= go home

Open source: the other side of the contract

I tweet a lot about the actions that open source maintainers and contributors can take in order to make their open source projects more inclusive, welcoming, and healthy.

But maintaining the health and inclusivity of an open source project is not a task that follows on contributors and maintainers — it falls on users as well.

I feel that sometimes the conversation about the responsibilities of users in maintaining a healthy open source ecosystem is non-existent or negative. Maintainers are often frustrated (rightfully so) by users who are inappropriately demanding or unaware of the struggles of managing an open source project. Users are often frustrated (rightfully so) by what they perceive as inaction on the part of the developer.

It’s a classic People Problem rooted in the misalignment of vision and a misunderstanding of intentions between users and builders.

In this post, I’d like to share some things that open source users need to be aware of to positively engage with open source projects.

Open source is about empowerment. If you’ve ever asked for a feature on an open source project and been told by the maintainer that it won’t be included for X reason — don’t be angry/upset/petty. The maintainer has way more technical expertise on the project than you and likely has better reasons for rejecting the feature request. If you do get angry, use that anger to productively address the problem. Open source allows you to create your own fork or pull request to discuss the problems that you’d like to see fixed. When given an opportunity to take advantage of this power (like when your feature request is turned down) — take it! Use it to grow as a developer, designer, and human being. Do not under any circumstance use it to belittle the project maintainers/contributors. They are human beings with their own dreams, visions, and obsessions — let them be.

In the process of navigating the open source ecosystem, you might come across maintainers and contributors who are inappropriately hostile. The best you can do in this situation is disengage. Did you ask a question on an issue tracker or a messaging board and get a hostile response? Leave the conversation and seek support somewhere else. Did you receive a hostile response to a pull request that you opened? Close your pull request — they don’t deserve your effort. Open source involves saying “no” a lot, but there is a right way to say no and a wrong way to say no. Don’t engage with the people who don’t know the right way to say no.

If you are particularly passionate about a project that you use, but don’t have the technical skill set to contribute, evangelize on behalf of the project. Maintainers and contributors are likely too busy developing the software to speak at conferences or Meetups — but you can.

You can also put your money where your mouth is. Several projects talk donations via PayPal, Patreon, OpenCollective, or other platforms. I’m certainly not the first to say this — but if you care about a tool, give what you think is appropriate for it.

Open source is a two-way street. The best open source projects have kind and passionate maintainers/contributors and understanding/patient users. Whether you’re a maintainer, contributor, user, or all the above — remember that everything you do is a contribution to the open source ecosystem, so make sure it’s positive.