The biggest problem with open-sourcing commercial software is the risk of a blatant ripoff.
Some entrepreneurial spirit will come along, replace the application icon, repackage the whole thing and start selling it as his own. Perhaps just in his own country, perhaps you won't even notice, but it will eventually surface and you will need to deal with the situation. Now the question is if you want to spend your time and nerves on resolving the issue or would you rather continue working on the product. Especially if you are a "lone programmer" and especially if opening the source doesn't give you much to begin with.
Let's say this happened, and someone in a random foreign country made a clone of my software and started selling it there. Would that really cut into my sales? Or would that perhaps increase the legitimacy and recognition for the type of software I'm selling, if not for the specific brand I'm hawking?
It has less to do with cutting into your sales, and more with jeopardizing your IP and ownership rights. If this sort of theft is left unattended, the other side may start asserting its non-existing rights and escalate the situation.
It all really comes down to the risk tolerance. Opening the source establishes great deal of a goodwill towards your customers and potentially provides you with an access to free improvements and bugfixes. On other hand it opens you to the risk of needing to actively protect your IP rights, which is something that not everyone want or can do.
That's not even getting into how emotionally draining these incidents can be. It requires a really thick skin and a strong ability to ignore being taken an advantage of. Again, not everyone's traits.
If the source is open, then anyone who bases a product on it has to abide by the license. Are you talking about the case of someone who downloads the source, and bases a derived product on it without abiding by the license and releasing the source code? Can't illegal distribution happen with closed source software as well? Or are you saying it's more likely to happen if the source is open, and therefore more of a potential headache?
So perhaps yours is a case in which open source doesn't make sense. My thesis wasn't that it always makes sense, but simply that micro-ISV developers should rationally consider whether it does in their particular business.
Can you give an example of where it does make sense?
I'll venture a guess that you probably think that it made sense for Digium to open source Asterisk. At first, it did seem to make sense since they made the telephony cards that it worked with the best.
However look at them now. Sangoma, Pika, NxtVox and many other companies are making cheaper telephony cards that work just as well as Digium's do. Now what does Digium do? They start selling a closed source version of Asterisk that has more features in it than the open source one.
Open source is really nice for users but not so much for long term business profits.
I don't know.. Having worked with the Digium source code before, I almost would rather that they had kept it to themselves. :)
Simply put, I think open source can make sense in products where the benefits (contributions/fixes, goodwill, marketing, increased customer comfort and therefore sales) outweigh any downsides (clones, etc).
One reason I made the post to begin with is because I don't think there are enough examples out there. Not because they can't be successful, but because there is a culture of fear of open source. Fear that your product will be ripped off, fear that you'll lose control of its development, and so on.
In many cases, those fears are unfounded. So I'm trying to develop my particular product as one example of software where open source does make sense. And I hope other small business do so as well.
Witten actually gave me quite a bit of advice on open sourcing my application, and he mentioned quite a few of these points. I think there might have been some additional benefits as far as marketing/legitimacy are concerned that he might have mentioned, but he makes a good case for selling open-sourced software.
Depending on your market, only a small minority are driven to invest the energy (time is money) required to get no-cost software - paying someone to have a ready-to-go package is simply more efficient.
(1) The core problem are professional "free-riders" -- Linux distributions being the main candidates. As soon as they include his software in their repositories, his sales will probably stop to increase.
(2) For Linux distributions, it's also hard to make ready-to-go packages. Looking at his download page, there's no sign whether his package installs properly. Can I even use it? Is it RPM or DEP? Or some sort of .run package that needs to be made executable, first?
(3) Expensive software is unlikely to be sold under an Open Source license: think dental office billing systems, for example. Everything more expensive than, say, $25 will make people get the software elsewhere or use the source.
Nevertheless, I agree that selling open source software may provide some benefits for the seller.
1. I've actually considered not charging for the Linux version and only charging for the Windows and Mac versions. From a cultural perspective, Linux users simply don't buy software. No value judgment there, but simply a statement of fact. (I'm a Linux user myself.)
2. I don't yet have official packaging yet for Linux, but I plan to start with Ubuntu and Debian debs when I do. Right now it's just a tarball.
3. You're probably right that expensive software is going to be a harder sell when the source code is available for free. When I wrote the article, I had end-user software in mind, which generally isn't that expensive.
One interesting point to note it is certainly not an issue to sell the source to your program in a bundle with the binaries, allowing enterprising hackers to modify and update the software. You could even allow distribution of these changes.
Allowing this doesn't mean that you are forced to give up copyright on the source, or release it under an open source license. A license that says "You may have, modify, and distribute modifications to the source, but not duplicate or redistribute it" is certainly something that I would find interesting, and would love to see more software released under.
Doesnt Pascal's wager type of argument apply here?
Opening the source has very little benefit in most cases while opening the source presents a very real danger of clones.
Pascal's wager only applies if you simultaneously discount the benefits of having contributors and play up the risks of clones. This seems backwards to me; it would take much less effort for someone to contribute to your project than to fork a new one. As such, you should get more contributors than competition.
I think this is a fantastic idea, but aren't you worried that someone will take your source code, launch a clone, market it well and make a billion trillion dollars?
But let's say it does happen. I'm still the foremost expert in the world on this particular piece of software. Chances are I can develop it faster and better than anyone else. (This isn't to say that I'm a really good coder -- I'm not. It's just that I wrote this software and understand it very well.)
Now, you brought up marketing, so I suppose in this hypothetical example, someone could clone the product, rename it, and just concentrate on marketing rather than development.
Well guess what.. Anyone can do that anyway even without the source code! Most web-based software is fairly easy to clone. Having the source code just makes that a little easier.
I would hope so. Then you don't have to work on the project anymore and you can move on to something else. OR you could take their source code and modify it and make it even better!
Since your product seems to be coded in python the source is kind of "open-source" already isn't it? Also its not the commercial competitors that will screw you, the real danger is if someone will find your project interesting, disagree with some small thing, fork it and release it as a new free open-source product, get a few more people interested to contribute so you as a one-man-shop can't keep up and thereby replace your product with a _real_ open-source product. Heck, I'm almost tempted to copy your repository, do some simple query-replace and put it up on google code just to make a statement and see how you turn-coat and will start complain and whine in your next blog post.
I could very well strip all comments and distribute just pyc files. Those can be reversed to commentless source, but it's not exactly as useful as the original source code. And honestly, anyone could clone the product just fine even without the source code.
If you really want to fork the project, go for it. That's within your rights as per the GPL license. Just as long as you continue to abide by the license yourself. If your fork turns out to be better than my code, and more people end up using it, then you probably deserve any users you "take away" from me.
If, on the other hand, you're just forking the code to be surly, then that's within your rights too.
The biggest thing you are missing is that it potentially limits growth. Most entrepreneurs I know want to create wealth far and beyond what you can make with a small business. You are much less likely to do that with open source, as you either have to scale service (e.g. people, your costs increase linearly as revenue increases) or compete on price (as you get more popular, your margins decrease as the market becomes more competitive) while maintaining the product.
I'd like to hear from some people with a 10-50M sales revenue (not service) product per year who have made the switch, or considered it. Somehow I can't see it happening.
A smart thief may exploit a bug (buffer overflow etc) in closed source banking software system and siphon away funds. This may continue till someone from the bank or the software company notices this bug.
I'm using a lot of open source software which I didn't build myself from source. That's what distributors are doing. It seems to me you are selling the additional service of building the software. I guess it might work because you also got the name - people who know it want to get it from you.
"In other words, if you decide to make your end-user software open source, most of your users probably won't even notice!"
So, why do it then? The two points made by this article don't really motivate me.
1) "Selling closed source software is roughly analogous to selling someone a car with the hood welded shut."
First of all, we are not selling cars. Software is sold more like an HDTV, dvd player, mp3 player, etc. How many of those products really make it easy for you to fix it yourself? The answer is: It doesn't matter. These are throw away products. If it stops working for you, buy a new piece of software or an upgrade.
Don't give away your product just to please a couple of gear-head customers that can code.
2) "Your source code,...is very likely completely uninteresting to almost everyone else."
This is such a bullshit statement. The fact is that while my source code may not be that special, it's ALREADY DONE. If I don't open source it then potential competitors have to spend the time to get to where I am at.
1. It's a rough analogy as I said, and honestly I don't think either the car analogy or the consumer electronic analogy is a good one. Most software is not a commodity, and unlike a DVD player, if it breaks you don't just go out and get a new one. At the very least you fix it so you can figure out how to get your data out of it. And of course, software isn't exactly a physical thing, either, so both analogies break down even further.
2. Any legal competitor who uses your source code will have to abide by the exact same open source license (unless it's BSD), meaning that you can incorporate any improvements they make directly into your original product.
1. I agree that both analogies break down. However, my point stands: Just because a consumer can't fix a product themselves doesn't make the product inherently evil or bad or anything like that.
2. Okay, but that doesn't really address my point. If you don't open source the software in the first place then there are less potential competitors and therefore more potential money for your business.
Look at how well Salesforce does against SugarCRM. Which one do _you_ want to be?
1. All morality aside, you can decide to open source or not based on simple cost-benefit analysis. Will your customers be more likely to make the purchase if the source is available? Will you get more contributions and goodwill if the source is available? If the answer to both questions is definitely no, then I think you have your answer for your particular product.
2. I don't think it's as simple as saying there are fewer competitors if your product is closed source, and therefore more money for you. If all your competitors base their product off of yours, then you have a strong case to make (to your prospective customers) that you are the market leader and everyone else is just a wannabe follower.
And even with more competitors, that doesn't necessarily mean you're losing out on sales. Competitors can also expand markets, increase awareness/legitimacy for the type of product you're selling, and as I mentioned, improve the product if it's open source.
In regards to Salesforce and SugarCRM, I'm not familiar with the product space. But I assume you're suggesting that in that particular case, Salesforce is more successful, and therefore closed source is preferable. That may be the case with those particular products, however there are a lot of factors that go into running a successful company beyond whether the source code is freely available.
I agree that for a single developer, open sourcing a product can be very good. You get peer recognition and probably some job offers. But I bet those job offers come in from places that make closed source software.
For businesses, the risk associated with closed sourcing your app are finite and simple:
1) The people that want source code with their app won't buy it. As was said in the article "not that many people will even notice", so it's not a lot of people.
2) You lose out on _possibly_ getting some work done on your product for free.
It seems to me that there are more and larger risks associated with open sourcing your app:
1) Lower bar to entry for competitors.
2) Definitely losing sales to customers with IT departments that know how to compile source code.
3) Possibly losing control over your own creation.
4) Fragmentation - IMO Linux would be better and more popular if there weren't so many distributions.
> Definitely losing sales to customers with IT departments that know how to compile source code.
Quite possible, but I can say that I've gotten some of my best and most valuable feedback from these sorts of "customers". They don't pay me a cent, but they provide me with really good feature requests and bug reports.
Now you might argue that if the source was closed, I could get the feedback and the sale. Perhaps. But perhaps the savvy IT departments only install open source or freely available software.
Some entrepreneurial spirit will come along, replace the application icon, repackage the whole thing and start selling it as his own. Perhaps just in his own country, perhaps you won't even notice, but it will eventually surface and you will need to deal with the situation. Now the question is if you want to spend your time and nerves on resolving the issue or would you rather continue working on the product. Especially if you are a "lone programmer" and especially if opening the source doesn't give you much to begin with.