DEV Community

Cover image for There are plenty of good reasons to do open source for free
Jerod Santo
Jerod Santo

Posted on • Originally published at changelog.com

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. ✊


  • Disclosure: TideLift sponsors changelog.com. We only partner with folks who ensure our editorial and creative freedom.

  • It must be free as in beer. It might be free as in freedom, too.

  • And continue to do! 😉

Top comments (14)

Collapse
 
ssimontis profile image
Scott Simontis

I would love to contribute to open source, but after I read all the policies and procedures to contribute to a project, I'm generally just like...meh. I get that a lot of projects are so successful and lively precisely because of the structure they have adopted, but I just want to write code and not worry about it being rejected for some random technicality. Maybe I just need to search for some different projects to contribute to.

Collapse
 
jerodsanto profile image
Jerod Santo

I feel ya. I've had way more success contributing to small/indie projects that aren't backed by corporations or have large communities. It also feels more personal; like one person doing another person a solid vs submitting your code to a massive, moving entity. Have you tried that?

Collapse
 
ssimontis profile image
Scott Simontis

It's a good idea, I think I will keep that in mind. I don't really care if people use what I build (it would be cool for sure), I just want to create things and learn from others.

Collapse
 
sebvercammen profile image
Sébastien Vercammen • Edited

I was a maintainer and the lead contributor of an open source GitHub project that became large, and got crowdfunded via Patreon to write open source code for about two years.

A. Comparison to spec: Your argument falls flat when you start asking more questions to open sourcers.

E.g. "If you would have been paid to do this same thing, with the same freedom, would you have been happier / in a better position / able to reach more people / ..." = Yes.

B. Free is not accessible.

This is a reality charities have had to deal with for years: If you do free work, it's less sustainable, growth is held back, and you will have the hardest time reaching all the people that are in most urgent need.

An economically sustainable model scales better, helps more people, and can still be free for the end user.

C. Free is not payment.

You can do work that is simultaneously social, fulfilling, and paid.

The creators that originally had fun making it, can eventually find themselves in a position where hundreds of thousands of people are using their software, but the creators' lives are in the deepest pit they'll ever be in, with their "fun" project not contributing to the immediate improvement of their lives (e.g. bills that need to get paid).

D. The best part of open source is:

It is what it is, and there's nothing quite like it.

It's free, it's open, it can bring people together or strongly divide them, it can teach/inspire or smash people's hopes. It can be fulfilling when your contributions are intentional, well thought out, and come without sacrifice in your own life.

But open source should not be your default choice unless you want to be an activist.

Collapse
 
jerodsanto profile image
Jerod Santo

I'm sorry you had such a bad experience. Please allow me to address a few of your points, but I'll preface it by saying whether or not to work on open source is a personal choice and it's definitely not for everyone.

If you do free work, it's less sustainable, growth is held back, and you will have the hardest time reaching all the people that are in most urgent need.

Software that doesn't exist won't reach as many people as software that is developed for free. Sustainability only becomes a problem after software has proven its value. This is a choice one has to make, because the number of people who can convince others to pay them to produce things that haven't proven their value is very small.

An economically sustainable model scales better, helps more people, and can still be free for the end user.

There are huge swaths of software projects that will never find an economically sustainable model. Would the world be better off if these didn't exist?

You can do work that is simultaneously social, fulfilling, and paid.

Of course you can, but that wasn't my point when I said free is payment. My point was that as a developer I've benefited from free software, so I feel socially obliged to also produce free software as a form of payment back to the community.

but the creators' lives are in the deepest pit they'll ever be in, with their "fun" project not contributing to the immediate improvement of their lives (e.g. bills that need to get paid).

This sadly happens all the time, which is why we talk about sustainability all the time on our shows! But if I'm being honest, a lot of the problem here is improper expectation setting and an improper outlook by the open source maintainers themselves. Mike McQuaid embodies the healthiest worldview on this topic. His post Open Source Maintainers Owe You Nothing is a must-read for all maintainers.

Collapse
 
sebvercammen profile image
Sébastien Vercammen

I never said I had a bad experience. I had a pretty great experience, and it was an awesome project. But I worked hard to come up with a way to make it sustainable.

Software that doesn't exist won't reach as many people as software that is developed for free. Sustainability only becomes a problem after software has proven its value.

And you're assuming software you get paid for doesn't get made?

That's exactly one of the problems with this mindset.

Don't get people to do open source by convincing them of stuff that just isn't true.

  1. Whether it's paid or free software, if you can deliver it when you make it for free, you can deliver just the same if you get paid.
  2. Making software is already value. From the moment you have an idea that you can test in the market, and that you can deliver, you can get paid. You don't have to start coding, do open source, or have users.
  3. If you launch open source just to get validation, you're misunderstanding what validation means.
  4. The only real validation of your sustainability is the moment people pay you.

In short, sustainability is your responsibility from before you start. Open source is a decision with consequences you need to think through beforehand, and with its own serious cons.

You can get paid for exactly the same work you'd otherwise do open source, including if you're still a new coder gaining experience. They're called paid traineeships, with experienced teams that will pay you to learn from them.

Open source should only be promoted for what open source is. If you misunderstand open source, people will sacrifice the money they could've earned by being convinced that open source is always a smart choice.

People who get paid well also have more room to work a few less paid hours to contribute to open source or charity. "Help yourself before you help others" is great advice, and more open sourcers should listen to it.

More open source projects are also moving to dual licensing: open core code, but some features come at a premium. And I think that's a healthy example of sustainability, while giving back to open source without sacrificing yourself for it.

But if I'm being honest, a lot of the problem here is improper expectation setting.

I mean, if you're writing articles titled "good reasons to do open source for free" without including the obvious cons and a statistical overview of dying versus growing projects (sustainability), what expectations do you think you're setting?

Thread Thread
 
jerodsanto profile image
Jerod Santo

I feel like we’re talking past each other, so I won’t continue here. I’d love to have you on The Changelog to dive deeper into this conversation in a more profitable format. PM/email me if you’re interested.

Collapse
 
zacharypatten profile image
Zachary Patten

I have an open source code library, and I made it open source because I love teaching people how to code. So many people write their own mathematics, data structures, and other stuff that there are a ton of bad examples out there. I want to help show people how to fix those examples and design code properly. :)

So for me... It was 100% a moral choice. To help people.

github.com/ZacharyPatten/Towel

Collapse
 
clsource profile image
Camilo

Totally understand the "do it because you can and want" idea. I wish I could dedicate full time to my open source projects and see how much impact those projects could have on people lives. But if the open source project does not generate a decent amount of income to support your living expenses then the only time dedicated to them is your leisure time.

For toy projects only leisure time is ok. For more serious projects that require huge amount of effort then you have two options. The first option is only leisure time and the project would be super slow to grow and maybe die by stagnation and be forgotten. The second option is to dedicate full time and see if you can make an impact, but that needs funding.

Without proper funds most open source projects not backed up by a non profit organization, or a company will die because lack of incentives and resources to continue development and marketing.

My opinion is:

1) Do free/open source software if you can and want.
2) If you want to create a project that will require huge amount of effort look for a way to fund or it will slowly die because lack of time and funds.

Collapse
 
jerodsanto profile image
Jerod Santo

Good points. I agree there is a time and a place for open source. My key takeaway from what you're saying here is "have a game plan" depending on what you're trying to accomplish. That's always great advice. 👌

 
jerodsanto profile image
Jerod Santo

Open sourcing a website doesn't always have the same effect/impact as open sourcing a library or platform. That being said, if your goal is to build a community around it and attract meaningful contributions, then open source is the way to go. If not, I'd advise at least waiting until you have something tangible and production before making the decision.

Maybe take a cue from the dev.to team, who waited awhile before open sourcing it.

Collapse
 
ryuuji159 profile image
Daniel Cortés

I have doubts about open sourcing a project that I'm doing, is a java app that aims to help little restaurant business doing their diary accounting.
My idea is to eventually sell it to local business but at the same time I don't know any open source solution for this. I would love to hear what other people thinks about this. Should it be open source and sell the support or I just go closed source and forget about it

Collapse
 
jerodsanto profile image
Jerod Santo

It depends on what you mean by:

My idea is to eventually sell it to local business

If by this you mean sell the software as a service that local businesses can pay for on a recurring basis, then I don't think open sourcing it will hinder you much there. Restaurants aren't well equipped to self-hosting open source applications, so you won't lose too much business in that regard.

If instead you mean sell the software as in the intellectual property to a local business... in this case I'd keep it proprietary because if it's open source they have no incentive to purchase it from you.

Collapse
 
jerodsanto profile image
Jerod Santo

Happy to comment (and hopefully help)!

I'd need to hear more about the website and what it offers as well as what you mean by 'future exit'. Do you mean financial exit? Is the goal to monetize the site somehow?