Earlier today, the GNU/Linux Action Show had Richard Stallman on to celebrate their 200th episode. For the most part, it seemed like RMS was talking about some complicated issues, and they had a lot of trouble understanding what he meant by a lot of his statements.
However, one thing RMS mentioned that sort of struck my nerve was something that had struck it before. One of the parts of his philosophy is that it is unethical to sell non-free software, and that much I can support. But one of the ways he supports it is to say that programmers don’t need to be paid for their work.
(note: this section was added after the initial publication of the post, at 18:11 on the same day)
I feel I should define, briefly, what “ethical” means in this context. I mean specifically, when I say that something is “ethical”, that it does not violate the freedom of others. Most of the people this post can help will already be very concerned with their own freedom, but they may in one way or another be affecting the freedom of others in a detrimental way.
It may be called into question whether that is a reasonable definition of the word “ethical” in all contexts, but I am not reaching so broadly today, I am only discussing a very small subject.
The funny thing is, I’ve gone through college and several jobs in order to train myself to make software. I happen to be similarly committed to free software, and I agree with RMS in that the jobs that produce non-free software should generally be shunned. However, that does not mean that programmers cannot have programming jobs!
I’ve long supported the Free Software movement, and a large part of my support has been explaining the ways that you can make money in an ethical way. So, here I am to explain it again, in a blog post.
Another motive for this blog post is that the hosts of the show specifically asked for a suggestion or two, so I’m here to give them some!
What I Am Not Saying
I want to note that I do not suggest these solutions for programmers working under others. If someone doesn’t have some way to support themselves, as a matter of staying alive, I would suggest that they maintain their current situation until they find a more ethical solution. Continue to lobby the people above you to release free software, but avoid jeopardizing your job.
This advice is leveled at people who make decisions about licensing, which might include some individual programmers who self-publish. Most programmers working under other people will be unable to follow this advice.
Ways to Do It
So, on to advice.
The first business method, touched on somewhat in the show, uses the new concept of crowd-funding to achieve funding. This would basically be an exercise of balancing the community’s interest in the software and the real costs associated with its production. So, if the developers need a few months of rent and food money, then they come up with a reasonable number to represent that amount of effort on their part, and ask for the money. It should be noted that there is no limit on how many projects you can have on a crowdfunding site, nor is there any requirement (unless self-imposed) with respect to delivery date, so you could theoretically set up several proposed projects at once and work on them in any order, depending on whether or not they got funded. So long as the end result was a freely-licensed software package, this would be completely in line with the four freedoms.
Another method that was mentioned in the show was to produce individual custom software packages, licensed under a free license (though probably not copyleft), which would also be extremely ethical. Most companies won’t care about the license, since the software won’t be distributed anyway. This method requires much more active involvement in the local business community, and any company that plays this game must be tied into many connections.
There are also several companies that primarily provide paid support for software that they produce, then release under a free license. The business model here would be somewhat less definite, since you could not give a specific price for the package, and would be counting on the fact that companies would need support. Similarly to the previous model, you would need to fight hard with companies to get them to buy your support, as opposed to passive involvement. In other words, you might not get much business just linking to your support hotline on your main page, you may need to market the software to companies and subsequently sell them a support package on the side.
A final business model, which might not be technically what most programmers want, is the non-profit one. The GNU project has survived in this capacity for over two decades (actually, nearly three), so it’s certainly not an unrealistic model for a software producer. Set up a cool suite of software, ask for donations, and sell t-shirts and mugs with your logo(s) on them! RMS went so far as to sell books and documentation, though a smaller shop might not be able to do that right away.
Now that I’ve written this, it is a great weight from my shoulders. I can finally just link to it, as opposed to writing long-winded explanations every time.
If you feel I’ve missed a viable option, or have misrepresented something, please use the link below to email me your feedback. I’d love for this to be a comprehenzive resource for someone looking for advice with respect to starting a free software business.
And finally, as always, go freely.