Open vs closed: secrecy, competition and business
Lately I’ve been thinking about a couple of binary oppositions: open source versus proprietary, and more generally, openness versus secrecy. Starting from the basic premise that if you’re selling software you’re doing so in the hope of making some money (a living, even!), what then is the most likely course to be successful? Should you side with openness or with secrecy, with competitiveness or co-operation?
The basic goal
So the basic goal is to make money, but we probably need to explore that idea a little bit before going on.
There are number of ways to make money; I’m not just talking about things you do here but rather the "ways" you do them, in the more ideological sense. The desire to make money is the engine of capitalism; in general it works wonderfully but sometimes it has some unpleasant manifestations. You can try to make money ethically, or you can throw your moral code out the window (as many corporations do) and adopt a cut throat "win at all costs" sort of attitude. Many businesses walk a particularly nasty gray zone in which they do all they can to maintain an appearance of ethicality but their surface decency is really only a marketing ploy, a mask for the underlying ideology of profit at any cost.
Bearing this in mind, let’s move on…
Open source vs closed source
I’ve written on previous occasions that I don’t really think that open source works for the small vendor. Donation rates in my own experience have always been worse than 1 donation per 1,000 downloads, and the truth is that the rate is probably closer to 1 donation per 10,000 downloads. You may chose to release some products as open source as a marketing exercise, to bring more people to your site, to return something to the community, or simply because you think it’s the right thing to do, but you’re extremely unlikely to make a living off of open source software as a small vendor.
It’s not so much that open source itself is the problem; it’s the donation model which is broken. Basically, if donations are optional then you’ll get very few donations. Many developers would love to make their products "donationware" — imagine the "feelgood" effect of making a living while sharing with your community — but they can’t because of the poor donation rates; if they want to make a living from their software they’re forced to charge for it and that generally also means implementing some kind of license code scheme (experience has also shown that "I’ve paid" checkboxes are just as unsuccessful as donation-based schemes).
This straight away sharpens the dichotomy between open source and closed source. Developers can’t really choose "open or closed" and choose "donations or paid" independently. If you choose "paid" then you’re basically forced to choose "closed" as well. If you choose "donations" you may as well choose "open".
So why does choosing "paid" force you to choose "closed" as well? Three main reasons spring to mind:
- Most license code schemes rely on at least some degree of "security through obscurity", forcing you to close your source.
- The competition at the heart of capitalism tends to penalize those who share their secrets. To clarify, you might be an ethical capitalist who believes in competition through innovation, developing original ideas, and hard work; but there will always be others who believe only in profit and will have no qualms about taking your source code and selling it as their own.
- Even in an ideal world where competition was only ever respectful and ethical, open sourcing almost invariably means using a free software license, and that means that along with the source code you grant the right to produce free derivatives; that freedom effectively guarantees the emergence of a free version of you product, thus eliminating any motivation that customers might have had to purchase it.
Openness versus secrecy
So it seems clear that at least some of your portfolio has to be closed source, but does that necessarily mean that you have to be closed and secret in every respect?
Imagine that you find out about a really useful command line trick that will help you out with your development. Do you make it public, benefitting the people who visit your website? Or do you keep it secret, knowing that the information could be useful to your competitors and you want to do everything in your power to maintain a competitive advantage?
My advice is the following: share it; you’ll sleep much better at night, have lower blood pressure, feel less stressed, and you’ll probably come out in front in the long run anyway as your site becomes more useful, turns up higher in Google search result listings, and more people visit your site and learn about your products.