Setting expectations for Open Source participation Dr. Brett Cannon Microsoft / Python programming language PyCascades 2018
Who am I? Dev lead for the Python extension for Visual Studio Code Python language team member Contributor to over 80 OSS projects
What is the purpose of an open source project/community? To collaborate on the maintenance of a project ??? To have fun ???
How do you sustain an open source project/community? Attract new people Retain current people
We need to work together to set reasonable expectations so that open source is enjoyable for everyone. Remember, everyone is either a volunteer or being paid by someone other than you to work on open source, so we should strive for a symbiotic relationship that works for everyone involved.
Unfortunately , we are not succeeding at this laudable goal
People tend to forget 2 key things…
Everything in open source has a cost. Whether it’s time, effort, or emotional output.
Open source is a series of favours. It’s like people giving you “gifts” that you didn’t necessarily ask for.
Some typical scenarios in open source Meet Stuart and Brett, a user and maintainer, respectively. The arrows in the following slides show who is doing a favour for whom.
Using open source Brett ⇨ Stuart It can be like someone leaving out pamphlets denying climate change.
Providing feedback Stuart ⇨ Brett It can be like a family member telling you, “you’re stupid”.
Submitting a contribution Stuart ⇨ Brett It can be like when someone tries to give you a puppy you didn’t want.
Contribution feedback/acceptance Brett ⇨ Stuart It can be like someone saying, "you’re doing it wrong” or reacting with "why don't you love me?!?"
Maintaining Brett ⇨ Guido It can be like arguing with your siblings about politics.
If this sounds biased towards maintainers, that's because it is. Simply based on scale, maintainers are abused much more often than contributors.
Everyone needs to act like everything is being done as a favour for them. You can always say “no thanks” graciously, but you shouldn’t place demands on someone who is doing you a favour, otherwise you’re simply being unreasonable.
How should you act towards each other when someone does a favour for you? Open Considerate Respectful
If I had to give guidelines on how to communicate online 1 Assume you are asking me for a favour 2 Assume your boss will read what you say 3 Assume your family will read what you say
Pay for open source with kindness. In other words, don’t make people regret participating in open source by being inconsiderate and disrespectful.