I’ve spoken about this in fragments online and eluded to it in other blog posts, so I figured I’d spell it out here.
Resources Within the OSS Ecosystem
As a possible participant in the OSS ecosystem, I feel we have three possible resources:
- Money
- Time
- Gratitude/Grace
To be a participant in an OSS project, you must be contributing one of those three items. You might contribute money in the form of donations/sponsorship/licenses (if requested). You might contribute time in the form of pull requests, documentation, thoughtful discussion, or picking up administrative work like triaging issues (if requested). Or, you can be grateful for all the impact you’ve received from something despite it not being appropriately supported, and understanding if the direction of that changes. And you can extend grace to OSS authors when they do something you disagree with.
So often, people and organizations are unwilling to contribute time/money, and somehow still exempt themselves from the last bullet point.
Why Do People Forget About Such an Important Resource?
There could be a lot of reasons that people forget about gratitude. Perhaps they’ve built a reputation for themselves within their org as a person who gets things done well (in part because of a tool) or who knows tools to help the organization, and they don’t want that reputation to be called into question. Perhaps they have used something for so long that they come to see it (incorrectly) as their own. Perhaps they simply don’t like the feeling of change and don’t know where to place that emotion. Perhaps they do not like to see their own lack of contribution to the project reflected back to them in the situation they now face.
But so often, as we’ve seen, it is the sense that an OSS author’s purpose is to create a free lunch for everyone else, making sure that nobody else has to think about it too hard, while simultaneously receiving very little help/support. Sometimes, they try to hide these feelings behind the idea of a “supply chain” and the threat it would pose if the tool went away, which misses the entire point.
If You’re Not in a Community, Your Opinion on its Direction is Irrelevant.
But here’s the thing – if you’re not contributing your time or your money to an OSS project, your say in that project is exactly zero. And if you’re not responding to a major change with gratitude as you move away from the tool, or grace as you work through the issue, you’re not a member of that OSS project community, and aren’t acting as an OSS community member at all. You’re acting like a leech, which makes you part of the problem – and anyone invested in a solution would be best served by ignoring you entirely.
In terms of the supply chain, I think Thomas Depierre sums it up well in his blog post “I am not a supplier”:
Now, I am more than happy to become a supplier. You want me to work a certain way, I am more than happy to do it. But to do that, I am going to have to become a supplier. Which means you are going to have to start to pay me. A fair price, that we can negotiate. Under a different license.
Until then, I am not your supplier. So all your Software Supply Chain ideas? You are not buying from a supplier, you are a raccoon digging through dumpsters for free code.
How This Plays Out for Me
- I try to contribute where I can, to projects and people I care about or appreciate and want to support. It will never be as much as I want; I, too, have to balance my priorities in life across my personal/family life, work, and extracurricular activities.
- When Moq changed its approach to seeking donations using SponsorLink, I respected what they were trying to accomplish. Our team at work evaluated the change, and felt fine with sticking with the project unless something made it untenable. To that point, I hadn’t contributed to the project. After that, I made a donation.
- When Fluent Assertions changed to a dual license that required a license purchase for commercial use, our team evaluated it as a product. We came to the conclusion that the value we were getting didn’t justify the proposed licensing cost, so we are choosing to remove it. But we’re not mad at having to make the choice, because we didn’t contribute anything to that point, and it’s only fair for the author to consider what they need.
My perspective on the OSS social contract allowed me to do a few things in those situations:
- Pay more attention to my OSS dependencies
- Look to support OSS in more ways, proactively, before these things come up
- Channel my disappointment / inconvenience in a productive way
- Remain thankful for – and thus aware of – all the value and impact I’ve been lucky to receive, for free, because someone else cared enough to nurture that into being.
Why Did I Write This?
I don’t know, honestly. So many of us have seen these situations play out time and time again. I guess if I can change even one person’s perspective on this and bend the arc away from consumption and toward contribution, I’ll consider it worthwhile.
Leave a comment