DEV Community

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

There are plenty of good reasons to do open source for free

Jerod Santo on March 28, 2019

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 na...
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?