I recently read the keynote address by Ruby on Rails’ founder DAVID HEINEMEIER HANSSON at RailsConf 2019, titled “Open Source Beyond the Market” and wanted to share my reaction. I think it was a seminal work, and highly recommend anyone working with open source software to read it , but don’t entirely agree with some of it.
Bill Gates and Eric Stallman both relied on laws to protect their software (one with copyright, the other copy left), and fundamentally feared people using their software without giving something back. They both have a scarcity mindset.
Gates was afraid that users would take his software and not pay him for it. Stallman was afraid that users would extend his software and not hand over their contributions.
He then points out that this “scarcity mindset”, that if you use something then I can’t, doesn’t apply to software.
The magic of software is that there is virtually no marginal cost!
He points out Ruby on Rails has been downloaded 170 million times, but that hasn’t harmed him in any way.
He is skeptical of those who think
open source software just isn’t “sustainable”. That unless we somehow find a new way to force users to “give back” (i.e. pay/donate!), we’re going to burn out people who donate their “free labor”, but won’t do so forever.
Never mind the fact that actual, observed [floundering open source projects] are so rare that everyone keeps using the same example when it comes to this debate: OpenSSL! A famine that was promptly alleviated as soon as its effects were apparent.
ie, he feels it’s fine if a project has millions of users but nearly no contributors, because each new user doesn’t add the contributors workload.
Conversely, people often feel they’ve done a project a service by using it.
There are plenty of open source users who think themselves less as a recipient of a gift and more like customers with warranty claims. That they’ve done the makers of said open source software a great honor by merely choosing to use their thing.
Then, based on the assumption that the user is doing some service to the contributor, they start to make demands for free features and support.
That paradigm isn’t entirely a user’s fault, as many open source projects are almost indistinguishable from proprietary ones.
if you dress up like a salesman, it’s a little disingenuous to be surprised when people think [you are one… and expect you to provide free services because they think they’ve already purchased something from you.]
He points out that the MIT software license is actually significantly different from the GPL. The MIT one has no strings attached, whereas GPL says it’s users are obliged to share.
His purpose in creating Ruby on Rails wasn’t commercial, but to
build something that would allow others to pass through these same rings of delight that I had been sprinting through.
…there’s a deep sense of satisfaction that comes from having done work that’s genuinely useful to other people.
He acknowledges that not everyone is in a situation where they’re privileged enough to be working for “fulfillment” instead of actual money, because we’re struggling to provide for our more basic needs.
At times do not feel like we’re either able to win for ourselves or to strive to help others win. Because we’re stuck at the base levels. Either in reality, being deprived of security and safety, or in our minds.
DHH quotes the author of Ruby
that his with
Philosopherswe have many through source involved source just frustrating endeavor
originally in mathematics and computing and it’s overlook human side programming language is one algorithm another But programmers argued decades reaching a conclusion
There is no Best Tool For The Job. Only a Best Tool For That Person At That Moment In Their Life For The Job. A set of personal truths to be discovered / decided upon by each individual practitioner.
We’re so wrapped up in the science (or business), that we’ve lost all other meaning.
I don’t think it’s a coincidence that a lot of people in software development struggle with mental-health issues. I think a significant portion of these struggles stem from a core lack of meaning in our work. And the cognitive dissonance that arise from thinking about our industry almost exclusively in these rational, market-based terms.
Startup companies try to provide purpose for developers who have lost theirs.
There is no church on Sundays. Just an all-nighter at the startup office. So it’s no surprise that work now feels obligated to tend not just to your needs for making a living, but also for putting all the purpose into that living, since there frequently isn’t room for anything else.
DHH described some times he lacked purpose in his work
There was all this work I could be doing, but I couldn’t bring myself to do it. At the time I couldn’t quite put my finger on why. I just knew that the motivation wasn’t there. So I spent a lot of time procrastinating and seeing weeks go by with no progress.
…The main thing that kept me moving forward, professionally, was working on Rails. I was suffering from what clearly felt like burnout at Basecamp – not from overwork, but from under-purpose – but being able to keep my brain engaged with Rails soothed the soul.
Working on open source, outside of the context of the marketplace and its expectations, was a lifeline.
Then he acknowledges it’s also possible for open source to be a major cause of discouragement.
The open source world is full of examples of maintainers and contributors who ended up turning a labor of love into just that dead end of “free labor”, and hating the work (and sometimes themselves) in the process!
He refers to Maslow’s pyramid of needs, and that if a developer has baser needs than just “self-actualization” through their open source contributions, it becomes very difficult to delight in it.
This can happen either because they’re out of ideas for work that they can connect to on a personal level. Because they’ve allowed themselves to think that the “customer is always right”. Or because open source suddenly needs to shoulder their livelihood for one reason or another.
For any of these reasons or others, it’s surprisingly easy to end up feeling like all you’re doing is “free labor”, and how that’s a rotten deal. Because it is! If base needs aren’t satisfied through other means, and you’ve lost connection to your higher strivings, the whole thing quickly devolves into a fight for survival.
But “should your personal pyramid of needs allow it” helping others through open source can be a great source of meaning.
It can be an escape from
WHAT CAN THIS DO FOR ME? WHAT CAN YOU DO FOR ME? AM I GETTING ENOUGH BACK FROM WHAT I PUT IN? WILL IT FURTHER MY CAREER? WILL IT GET ME A JOB?
Open source, [when offered as a gift with no strings attached] has the power to break us free from this overly rational cost-benefit analysis [junk] that’s impoverishing our lives in so many other ways.
Great read, big paradigm shifts, and he has two decades more experience in open source than I. I’m a big fan of his writing. So my opinion is really of no value, but here goes anyway.
I think there are substantial marginal costs for each new user of software. They have questions about how to use it, extend it, why it doesn’t work with their unusual setup, they find unusual bugs, feedback on how to improve it, etc. Daniel Bachhuber’s presentation “My condolences, you’re now the maintainer of a popular open source project” expresses that well.
The more users of your open source, the bigger that chunk of the needs pyramid becomes and starts to crush the lower levels.
In fact, the open source project’s needs can become so big that there is no time left for other things. This was why people like DHH and Matt Mullenweg get employee to work, for money, on open source.
If you only get 1 hour a day to work on open source (because you’re doing it in your spare time), the project won’t be as good as if you had 8 (because you can do it full time).
He said that Open SSL is the only mentionable example of open source projects that are struggling (he used an analogy of a “famine”). In my opinion, any WordPress plugin with over a few installs, but hasn’t been updated in several years, is also a “famine.” There are thousands like that, and that’s just in the WordPress ecosystem.
I still think the ideal is for open source to fulfill both your needs for self-actualization, and some baser needs.
But, I agree that for most developers, open source can’t provide for our baser needs directly, and so should be treated as a gift to humanity. A refreshing escape from the rat race of the market.
Should open source just be a gift that fulfills your needs for self-actualization? Or is it reasonable and healthy to expect financial return for it? Any other thoughts?