Open Source software and the expection of free laborfoss open-source economics
Over the last few years of starting and then maintaining an open source project that has received a decent amount of attention, converse.js, I’ve noticed some interesting things about the expectations some people have towards developers who work on FOSS (free and open source software).
People of course love to receive something for nothing. Dan Ariely, in his book “Predictably Irrational” illustrates some of the biases people have when it comes to free stuff. When confronted with the words “free” (as in gratis), people do things that are irrational and are at odds with how a rational actor (the mythical homo economicus) is expected to behave, which is the bedrock upon which most economic theories are based.
The outcome of the various studies Ariely conducted was consistent: when faced with multiple choices, the free option was commonly chosen. With the opportunity to receive something for free, the actual value of the product or service is no longer considered.1
“Most transactions have an upside and a downside, but when something is FREE! we forget the downside. FREE! gives us such an emotional charge that we perceive what is being offered as immensely more valuable than it really is.”
The biases regarding “FREE!” apply not only to monetary costs, but also to time. We forgo some of our time when we wait in line for free popcorn or to enter a museum on a free-entrance day. We could have been doing something else at that time, so there’s a resultant opportunity cost.2
Freedom isn’t free, it costs folks like you and me
These biases of course can also come into play when people evaluate free (as in beer) software. In the same way that people didn’t take into consideration the cost of the time they spend in trying to get something for “free”, people often also don’t consider the non-monetary costs of using FOSS.
A common retort that usually surfaces on Slashdot, Reddit or Hacker News whenever a discussion around using a Linux distribution on the Desktop takes place, is ”Linux is only free if you don’t value your time“.
That’s of course completely true. I do value my time, took that into consideration and still concluded that I want to use GNU/Linux and free and open source software.
Using FOSS requires a certain amount of commitment, and it should be clear to the user why they are willing to go that route (freedom from vendor-locking, the ability to control and keep private your data, the ability to modify the code to your liking etc.).
I think people have been hyping the “FREE!” aspect of FOSS way too much.
Software for nothing and your support for free
I consider a certain amount of support and maintenance as a requirement for a successful open source project and not something you (as the developer) can ignore.
I try to channel bug reports and feature requests to the Github issue tracker and general support questions to a mailing list, where hopefully other people would also be willing to share the load by answering questions.
So while I complain about people wanting “something for nothing” below, I invariably mean people who write to me directly, instead of on the issue tracker and who are often trying to get me to work on something right away.
So, when considering that many people don’t properly evaluate the costs involved in using FOSS, some requests and emails that I sometimes receive start to make sense.
“Please guide me”
One common recurrence, is to be contacted by someone who is integrating converse.js into a project for a paying client, and somehow got stuck. Perhaps they didn’t read the docs or perhaps they don’t have the requisite technical skills to do the job. These emails sometimes have a pleading, desparate tone to them. Perhaps to instill some sense of guilt or obligation or perhaps just because the person is really desperate and under time pressure.
What gets me every time however, is that as far as I can tell, these are people working for commercial businesses who get paid for the work they do. They then trawl the web looking for hapless FOSS developers to do their work for them for free, or as expressed in the commonly used phrase in these kinds of emails: ”Please guide me“.
The novelty and warm fuzzy feeling of altruistically helping strangers solve their problems disappears like mist before the sun when you realise that they’re getting paid for the work you’re doing for them right now.
And make no mistake about it, maintenance and support for an open source project is work and sometimes even drudgery. The fun part is writing new code or trying out new things, not helping people who can’t be bothered to study the documentation.
We need a feature and we hope you’ll do it for free
Another common theme is emails where people somehow just assume that I’ll implement some feature for them. At first this presumptuousness startled me.
I think it’s totally fair to ask when the project is charitable and the people involved don’t receive any payment themselves, but that’s often not the case.
Instead, the underlying assumption appears to be that I love working on open source projects so much that I’ll do it all for free and that I don’t have ideas on what to work on next.
Sometimes people qualify their requests by stating that they’re a small non-profit. Non-profits do however pay out salaries, don’t they?
I’d be willing to reduce my hourly rate when working for a non-profit with a good cause, but I’m most likely not going to do work for free.
The software is free, but the time spent working on it costs money
A nuance that’s perhaps lost on many people, is that I have often worked on converse.js for money. There was a rather long “bootstrapping” phase in the beginning where the project wasn’t good enough for anyone to actually use or pay money for further development, but after the project stabilized I started getting small paying gigs of custom development on converse.js.
In all cases I made it clear that the Mozilla Public License forces me to open source any changes I made to the covered files, and therefore the work I did for these paying customers (bless their hearts) was open sourced as well.
The point is that while the software is free (as in beer and as in speech), the time spent working on it costs money.
Either someone else pays me to spend my time working on it, or I end up paying by doing something for free while I might be getting paid doing something else (opportunity costs) or by taking time away from other activities.
FOSS development costs money, either the developer is commissioned, or they pay for it themselves (perhaps unwittingly).
Doing work for free devalues it and takes the piss out of actual paying customers
The last point I’d like to make, is that by taking on these requests to do free work for commercial entities (and non-profits), I’m not only devaluing my work, but I’m also disincentivising paying customers (which includes non-profits).
After all, why would anyone pay me to do anything if I’m so eager to please that I’ll do it all for free?
The only reason I could see to do that, is to get that mythical “exposure” that’s often also sold to web and graphic designers.
So what do you do if you need work done and can’t pay for it?
Free and open source software is a beautiful, world-changing and paradigm shifting idea. However, software developers, like all people, need to be paid for their work, also when they work on FOSS.
If you can’t pay for software development, then you can still try to incentivise FOSS developers in other ways, but be aware that it’ll be more difficult.
One important lesson that I’m glad I learned early in life, is that when you’re asking someone to do something for you, then you need to explain to them why it’s in their best interests to do so.
People inherently look out for themselves. It’s perfectly natural and doesn’t necessarily mean they’re selfish to the point of being anti-social, it just means that they need to take care of themselves and that they can’t expect other people to do it for them or to even have their best interests at heart.
So when desiring something from someone, such as their help, the best approach is to explain to them what’s in it for them
For example, if you want a friend to help you out with something, let’s say to join a beach cleanup project, you don’t tell them why it’ll be good for you, you explain to them that it’ll be an opportunity to chat, to meet new people, to go for a swim and to have the enjoyment of a clean unspoiled beach.
This is simple stuff, but many people apparently don’t know this.
So if you want someone to help you with a software project, explain to them why it would be in their best interest. If you can’t find a reason why, then perhaps it’s actually not in their best interest and you need to create an incentive for them.
Money works pretty well as an incentive, but there are other ways as well. One sure-fire way to build up goodwill and gratitude (that might translate into more help and assistance) is to contribute. If you can’t write code, fix typos in the docs, evangelize the project or contribute in other areas which you have some expertise, like translations, design, UX, helpful feedback etc.
FOSS development is a community effort and a team sport. There’ll always be people who try to take more than they give, but on average, humans are matchers. When given something, they want to reciprocate and give back. Keep that in mind when you’re trying to get something for nothing.
Hello, I'm JC Brand, software developer and consultant.
I created and maintain Converse, a popular web-based XMPP chat client,
I can help you integrate chat and instant messaging features into your website or intranet.
You can follow me on the Fediverse or on Twitter.