I am not against open-source. I am not a Microsoft evangelist. I am in favor of using logic and rational thought when approaching business challenges that require a technological solution. This post is in response to the quasi-religious fervor I’ve observed for many years related to the open source movement and some of the misinformation built up around it. It is not an argument against open-source, it is a request for those in favor of open-source to use better reasoning to support their case.
What I’ve seen is that developers and wannabe developers, who often pride themselves on their mathematical and pragmatic approach to problem-solving, are often caught up in a pride of another sort which can potentially lead them to bad decisions. This pride is the pride of the underdog looking up, the pride of sticking it to the man, or the pride of being anti-conformists. As my father often says, “You non-conformists are all alike.”
The cost of this pride is that open-source technologies are sometimes chosen as a development platform for no reason other than that they are open-source. Most (not all) of the reasons I’ve heard for why open-source is inherently superior are weak, emotional, and those who use them come across sounding like teenagers talking about the latest clothing fad.
Here are some commonly used reasons for open-source superiority that I find lacking:
1. It’s free!
2. Microsoft is lame.
3. Open-source developers are better/smarter.
1. It’s free! – Open source is not free, and sometimes it’s more expensive than using proprietary software. You’ve got to consider total cost of ownership. As stated by Ron Goldman and Richard P. Gabriel in Innovation Happens Elsewhere: Open Source as Business Strategy:
Open-source software is not always free–sometimes you may have to pay for it, as you do for the basic Red Hat Linux distribution–but what you are paying for usually is the convenience and quality assurance that went into packaging the software. Of course, once you have the software you can install it on as many computers as you wish (although the other installations might not be covered by the support agreement). So, instead of needing to purchase multiple licenses, one for each computer you wish to run the software on, open source immediately saves you money, possibly quite a lot of money. However, keep in mind that your total cost also includes the cost of deployment, training, and support, plus indirect operating costs due to ease of use (or, more appropriately, how difficult it is for your employees to do their jobs using it) and interoperability with other software you use. According to some studies, software and hardware costs account for less than 20% of the total cost.
In my experience the software costs are generally less than 5% of the total cost, which is why I tell my clients not to choose open-source based on the cost of software alone.
2. Microsoft is lame. There are plenty of credible arguments as to why Microsoft is the big, bad corporate giant, but frankly, I don’t care and neither do most business folk. The question is whether their software is any good. When it comes to .NET vs PHP or MySQL vs SQL Server you can’t credibly argue that MS is trash while the OS is gold. At best you can argue that in certain situations one technology might be slightly better at something than other, but these differences generally tend to equal out or are temporary and unsustainable. You don’t get as big as MS by having completely lame products.
3. Open source developers are smarter. My experience is completely anecdotal, but during my six years of running a web development firm I’ve had a much harder time finding dependable open source developers vs. Microsoft developers. I’m not sure exactly why that is, but that’s the case. In general, the developers I’ve hired to do Windows-based development get more done in a shorter period of time, work better with clients, and produce more reliable systems, therefore keeping clients happier. The cost of software itself is nothing compared to the cost of my employees’ time or the cost of one unhappy client.
Why should you use open-source?
1. You’re already stuck with it. I make that sound like a bad thing, although it isn’t necessarily. What I’m saying is that if your company has already committed to open-source then the cost of switching is probably not worth any real or perceived benefit. Although that changes with the situation.
2. Security. There is ample evidence to suggest that if you run a Linux-based web-server, such as Apache, you are less likely to be hacked than if you use IIS. However, I wouldn’t take this as synonymous with saying that if you use IIS you will get hacked. Getting hacked/cracked depends on many other factors such as the server environment, quality of network and server admins, quality of developers, quality of security procedurs and policies, etc.
3. Licensing. Even thought I have a certain affinity for some Microsoft products (as I do for certain open-source products as well) I hate Microsoft’s licensing policies and I think it’s one of the main detriments to their business. I would compare Microsoft software licensing, ironically, to the Apple vs. Microsoft war of the 80s and early 90s. Microsoft won because their software was compatible with hardware that Apple saw as lame. Now Microsoft stands a chance of losing in the long-run to open-source because they make it more difficult for people and buisnesses to implement their software, not because of the software itself, but because of how you purchase it.
To sum up, open-source is not necessarily better than Microsoft, nor is the opposite true. Each situation must be examined upon its merits, and while it’s fun to get excited about the politics and get into quarrels with the other side, it makes more business sense to keep an open mind.