There are plenty of good reasons to do open source for free
We recently covered a post on Tidelift’s blog1, where Havoc Pennington makes the argument that open source has a working-for-free problem.
The narrative around open source is that it’s completely OK—even an expectation—that we’re all doing this for fun and exposure; and that giant companies should get huge publicity credit for throwing peanuts-to-them donations at a small subset of open source projects.
He also likens the plight of the open sourcerer to that of the reluctant designer who submits hermself to spec work in the hopes of future compensation. I don’t think that analogy is usefully transferrable.
Why the spec work analogy falls flat
When a designer creates spec work, they are speculating about the future value of that work. Hence the name. Most often this work is prompted by a 3rd-party who hangs that future value from a stick and dangles it a few inches from the designer’s nose. This is problematic, because:
The designers work for free and with an often falsely advertised, overinflated promise for future employment; or are given other insufficient forms of compensation.
Open source software, on the other hand, is rarely (ever?) conceived under these circumstances. We’ve talked with many open source developers over the years and I’ve never heard a Genesis story that sounded like spec work. The reasons we hear why people create open source usually sound like:
“I was scratching my own itch”
“None of the existing solutions fit my needs”
“I thought others might find it useful”
“It’s my little gift to the world”
Designers begrudgingly submit spec work. Developers joyfully open source their work.
We still have a problem
I think it’s worth drawing the distinction above, but do not misread my overall sentiment: I do believe there’s a money problem in open source. If you listen to our shows you know I believe that. It’s just that in open source that problem doesn’t manifest until much later in the process.
It waits until the software has matured, the value has been proven, the community has been built. Then, it sucks the joy out of the developer(s) who gave a gift to the world and turns it in to the worst kind of job. An unpaid job!
Focusing on the ‘why’
So, going back to the beginning. If you open source your work to (speculatively) make lots of money… you’re doing it wrong. There are much easier means to that end. But there are plenty of good reasons to do open source for free. Here’s three of them:
1. Free is accessible
If you want your software to improve the lives of as many people in the world as possible, do it for free2. The fact is that many people can’t afford to buy your software and many of those who can afford to buy it won’t anyways. This ‘why’ was described wonderfully by Jérémy Lal with this comment (emphasis added):
I’ve been contributing to open-source for more than ten years. Why ? because open-source made software accessible to people without funds to try new and crazy ideas. Not for exposure, not for publicity, and certainly not for big companies. Open-source, and free licenses, are the nicest thing that ever happened to humanity. Also i did not make a single dollar out of it.
2. Free is payment
That may sound like a contradiction, but hear me out. The reason that I began producing open source software was because I had benefited from so much of it. I cut my developer teeth on Vim and the Linux command-line. I started my career writing Perl scripts and later Ruby and Rails-based web applications. The saying, “we stand on the shoulders of giants” may be cliché now, but clichés become clichés because of their wide application!
When I came to a point with my developer skills where I was confident enough to contribute back, I felt obliged to do so. It’s a small way of paying it forward, or in other words: payment for all of the freeloading I’d been doing3. I don’t think I’m alone in this.
3. Free is fun
Open source has grown and matured over the years, but let’s not forget that much of open source software exists because the creators were just having fun.
There’s nothing fun about enforcing the commercial side of a license. There’s nothing fun about picking which features go in the ‘open core’ and which features require payment. There’s nothing fun about selling support or hosting.
What is fun is creating something new, giving it a name, and just putting it out there to freely be used and enjoyed by others.
What about you?
I’d love to hear the ‘why’ behind your open source work. Are you hoping to get a job from your efforts? Is fame the driving factor? Are you paying it forward or just having fun? Sound off in the comments and feel free to link up your project(s) so others might join you in your work. ✊
Discussion
Sign in or Join to comment or subscribe
6yr ago
For me Open Source is a way give back for all the open source software I have used over the years that has helped me in my life, job, career growth. I want to give back.
I feel it also helps rapid innovation since code is not locked behind doors and licenses.
There is truth though in the argument that the billion dollar companies do not give back enough, are big companies open sourcing their proprietary money making platforms? They don’t act like individual contributors, paying back what they have received, they act on profit.
6yr ago
Absolutely 💯
6yr ago
I often submit issues and comment on project issues because I need to get work done and solve problems. I occassionaly submit PRs (but almost never receive any response from the maintainers). This kind of participation is pure utility, I need to solve a problem and can see how to make the connections between what exists and what could be. I can fork a project, make my changes, depend on my own git repo in the
package.json
, then I submit the PR for adoption back into the main project — it’s an amazing system (except for where the humans are involved).Also, I have written and published a couple frontend packages just for myself, and have done that mostly for the value of learning how package maintenance and authoring all works, rollup, semantic-release, NPM, tagging, documentation, testing… all that fun stuff. Very educational.
6yr ago
Yeah, I do this a lot too. It always feels great when a PR finally gets merged and a new release gets cut so you can stop pointing at your forked version and go back to the upstream dependency 👌