A friend asked my opinion about DHH’s essay from last year: I won’t let you pay me for my open source.
He makes some interesting points about how Bill Gates and Richard Stallman, the poster children for capitalism and open source, normally considered polar opposites, are actually driven by the same economic fears of scarcity. Gates’ fear is that people will use software without paying, Stallman’s fear is that they won’t contribute.
But then he moves into his ideal view of open source, which is that it can be completely removed from these economic fears and constraints, because there is no scarcity. If I write software, and you use it without paying or contributing, I am not harmed. And your actions also don’t harm other users who might pay or contribute. So there’s no scarcity!
He goes on to celebrate writing software as a form of self-actualization. Creating something for the pure joy of creation, with no expectation of anything in return. He touches on autonomy, mastery, and purpose as three pillars of motivation to act.
I totally understand this view. I write side projects. I like that I can choose what to write and how to write it (autonomy). I learn while writing, and enjoy learning (mastery). And I can decide for each project why I’m writing it (purpose).
DHH eventually gets to the core of his philosophical outlook:
There is no universal meaning to life. You’ve been thrown into the world without a preordained purpose, which is both a terrible burden to bear and the ultimate freedom to embrace. You get to decide.
Do I get to decide? In some sense, yes, but actually, I can only choose among the options available to me.
- I want to work on a side-project full-time!
Oops, no, that’s not a choice, because I have to pay for food and shelter.
- I have a day job, but want to have time and energy to maintain a project!
Reality: I’m tired after a full day of work, and my family needs me, and there are other chores to do.
To get back to purpose: my ideal for open source is that I write something useful, and other people like it and use it. The more people the better.
I’m lucky, because I’ve managed that: coverage.py is widely used, and I am known because of it. But there’s a downside: 221 open issues, many of which are complex, or vague, or require difficult decisions.
This idea that I can decide my purpose feels a bit like a genie granting me a wish, and then I have to deal with the unanticipated plot twists that result.
A project like coverage.py can eventually become a lot of difficult time-consuming not-fun work. It’s true, I am not obligated to continue working on it, or to answer those issues. But that wouldn’t fulfill the purpose I was aiming for. I didn’t start a project so that I could abandon it when lots of people are using it. I didn’t start a project so that I could ignore the problems people are having. I don’t get to decide my purpose. I can only choose among the options that reality offers to me.
Nadia Eghbal Asparouhova studied open source and understood that there is scarcity: a scarcity of maintainer attention. (If you want to read more, she wrote a book: Working in Public: The Making and Maintenance of Open Source Software, and also a Ford Foundation research report: Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure.)
When open source maintainers complain that big companies use their software without providing support, DHH is right: there was no transaction promised. He’s right that there’s a kind of freedom to avoiding those transactions.
I think what drives that negative tension between maintainers and “freeloading” users is that missing possibility: there’s a conceivable reality where the maintainers’ open source ideal situations are achievable. Support commensurate with use would let maintainers focus on their projects. Not only would this make maintainers’ realities better match their desires, it would make for better software, which would help everyone.
I’ve written before about corporations and open source: Corporations and open source: why and how. I understand how companies work: they won’t pay for something if they don’t have to. Why are we as a society OK with this? Suppose someone said, “I never tip waiters, why should I? I don’t get anything extra by doing it, and my kids should have that money.” Where I am from, people would be horrified by this attitude.
But companies’ standard operating style is exactly that: “I can get that software free, nothing is requiring me to pay for it, so why should I?” We all shrug and expect nothing different. But why not expect something different? Companies are just large collections of people. Why is it acceptable for a company to act so differently than each of its component people individually?
As an open source maintainer, it feels like my ideal situation is just on the other side of a locked fence, and I can’t get it. Corporate support could make that a reality, but no one expects it, so it doesn’t happen.
BTW: if you want to help with coverage.py, get in touch!