I tried to kind of ignore this problem and not write about it. But it kept appearing and reappearing on my daily Slashdot feed up to the point I’d also want to say something. We seem to have a problem that about defining what it means to be open-source and what is expected of the developers behind these projects.
Let me first start by saying I’m an advocate of open-source. I’ve tried my best to use open-source software in all my architecture designs, respecting the licenses of the products I’ve used, trying to also give feedback where it mattered (eg. Docker/moby on IPVLAN, Grafana’s Elasticsearch support and other tickets). I did this directly or through my fellow peers encouraging them to take action and feedback the community. I’ve always been thankful of the hard-work some people (not me) are putting in. I made myself small contributions, bug reports I could call them, from using the open-source software. I was thrilled to be a part of that and to contribute something that got into the next change-log as a fix (eg. Cassandra).
It is however with great regret that I find that some folk expect these communities to work for free. Note that even my contributions or my peers, they were made as part of on-going work for my employer, not on my free time. Of course, I was paid to work to reuse some software in a design, where the license allowed commercial use. The maintainer however was not. If I had a bug in the component of the design I was using I had 2 options:
- find the bug and fix it in the source code and re-build the library internally with the bug-fix and of course contributing that back to the community so I would not have to maintain a separate patch;
- live with it or work around it if it wasn’t all that critical;
Never would I expect someone to work for free to fix a bug of a piece of free source code I was grabbing and using. Never! But of course, it depends on someone’s morality or principles to understand that some maintainer, somewhere on a given project has put up an effort to open-source a piece of code and we should be thankful for that and nothing more.
Open-source means that some piece of code is not encrypted, is easily viewable, editable, understandable by human beings wishing to add new features or to collaborate on that piece of code to improve it. It doesn’t mean the maintainer is obliged to fix it. He may not. If he doesn’t, that’s what “forking” is for to start from a given “base” of the maintainer and to add your features that the original maintainers don’t accept. From that “forking” process do alternative implementations (and diversity from my POV is a good thing to have anywhere).
Open-source tends to be free, meaning it doesn’t require no upfront payment to download the code. But the time of the people behind these projects, well, that is not free. Neither did their tuition. Neither does their rent, bills or food they ingest to “spit out code”. None of that is free.
I once went to a store to buy one loaf of bread. It was 2 RONs (romanian heavy Leu). I had 1.8. They seller would not give me that loaf of bread of 1.5 even if that’s a commodity and nobody gets poorer by 0.2 RONs. Neither do these people which have the skills and willingness to code in the public space. I do appreciate their courage. I don’t have that courage.
I took a different, more commercial route, working for my employer and having a side-business with an accounting application that my mother uses. She “pays” my work with a “licence” let’s say by covering the costs of my car lease. But it’s our agreement. The sites however that I’ve built for her to support this application for the people she interacts with were made on an PHP framework (RA PHP Framework) I’ve open-source some years ago. Even if I made that framework free, she does not expect me to work for free.
Neither do I expect the open-source community to work for free. And you should not. If you’re an open-source maintainer, ask your local Github, Gitlab or Bitbucket to impose an “fee per bug-fix” or “in-app feature purchase” just like the App stores (iOs, Google Play) do. I would do this, as my time is valuable. Your time is valuable. The moments with your family, kids, your loved one is something you’re missing.
Time is not something that can be easily recovered. If there’s such a need for your skills, at least charge for it. The extra inflow of cash will be good for rainy days. If you’re unwilling or value time with your loved ones more, then, in the spirit of the open-source community, there may be someone else eager to take that cash and to solve the bug for you.
Github, Gitlab, Bitbucket and all these free code-hosting sites are better off if they become a free market of code collaboration where people pay to get bugs fixed, features added, security enhanced and other changes.
Your anonymous client that just “git cloned” your project should pay for your time when he comes back to the “Issues” tab to post some need he has for his own project or use-case.