As I’ve talked about in this space in the past, I’ve been coming to some conclusions about free software (open source, or whatever you want to call it): the economics of it, like anything else, are rooted in scarcity, and if you don’t have a bit of that scarcity yourself, you have a lot less leverage
This line of thought comes from the age-old question “how to create free software and make money at it?”. This is a very important question for me, because I enjoy hacking on free software very much, and would love nothing more than to spend my days doing so. Creating new things, though, rather than working as a “system integrator” and tying pieces together with the smallest amount of glue possible. It’s obvious that there is plenty of money to be had for people who simply use free software for their own ends. But what are those ends? We live in a world of scarcity – not everyone can have a fancy car, the nicest house in town, or the fastest computer. Market economies work via the exchange of scarce goods and services. If you have nothing to trade, you have nothing. Now, free software is worth something. Worth a great deal – that is beyond the shadow of a doubt. But since anyone can make a copy, there is no scarcity – once it’s out there, you can’t trade for it.
So… where does this leave our potential free software creator? Let’s think about some of the ways around this problem.
You could, as some have argued, decide that since software has aspects of a public good, and decide that it should be provisioned by the government. Computer users pay taxes and there is a ministry of software that pays people to work on infrastructure type projects like the Linux kernel, Apache web server, and the like. Whether you like this idea or not probably depends on what you think of governments, free markets and so on, and thus becomes a much broader debate, but suffice it to say that it’s not going to happen soon, because free markets do provide software, so most governments aren’t likely to fiddle with the system in radical ways.
Work on contract to create custom systems for clients. This works, up to a point. Since the initial system doesn’t exist, there is your source of scarcity. The client wants it, and won’t get it – free or proprietary – unless they pay you. It’s also worthwhile to think about the “chain” of trade in this case.
Where does your client get their money? If you’re writing free code that will simply become a cog in their proprietary system, the actual money comes from the scarcity they have created, so while you may be writing free software, in one sense, you’re simply offloading the burden of creating scarcity to someone else, who is then able to pay you for your time. The other possibility is that your client works in the “real world” of scarcity directly – they sell books or beer or cars or something else where the product is, by its nature inherently scarse.
In this case, they still have the leverage – you work to help their business, but they are the ones in the driver’s seat. Your work isn’t worth much without their scarcity-based business. And they’re not very sensible if they pay you for things that aren’t directly related to their business. So it’s going to be harder to create something new and interesting from scratch.
I’ve alluded to it in the past, but consulting operations have several problems, especially when considered from the point of view of someone who wishes to create software:
The more time you spend putting existing pieces together, the better you are doing financially, because you can finish the project quicker, in less time, and so have more of a margin. These sorts of business will tend towards system integration, rather than the creation of new things. That’s not a bad thing, and I mean no disrespect to those who are in that business, but it’s not really what I want to do, and it certainly doesn’t answer the question of how to write new free software and get paid to do it.
When you create a one off solution that is not completely tailored to one client, if you make something that’s proprietary, and know you can sell it to a few more people, perhaps you can beat the free software guy on price, because you can afford to sell yours at a lower price, knowing you’ll spread the costs of producing it over a few clients. If the free software guy manages to sell the same free thing to several clients, you have to ask how ‘free’ the software is in the sense that it is apparently controlled tightly enough that these other clients can’t come into possession of it on their own. Once, again, scarcity.
It’s not a business that ‘grows’ as well as having a proprietary product, because it’s very linear. To make more money, you have to add more people (of uncertain quality, I might add). With the proprietary product, on the other hand, you could likely sell 100, 1000 or 1000000 copies with a workforce of the same order of magnitude. This leaves you a bit more breathing room – if you’re a consultant, the minute you take a break, be it a vacation, or even go to sleep, you’re not making money because you’re not engaged. That’s sort of a scary prospect as one ages, and needs to dedicate time to other things in life. At 20, I could spend all day every in front of the computer. At 30+, now I have a wife. Maybe there will be kids some day. A successful product-based business would allow me time for those things that a billable-hours business might put more constraints on (of course, there are obviously no guarantees that any business will be successful, but for the sake of argument, we’ll treat failure as failure and not worry about it more).
So, there you have it. In one way or the other, to make money at something in the long run, you are going to have to find and sell a product that people cannot effortlessly get for free.