Why open source is good for business (and it's not why you think)

Everybody thinks open source is good for business because it's free. (as in beer)
But no software's free.
There's still support and infrastructure costs, maintenance, configuration, backup and upgrades.

One much-advertised advantage of open source is the ability of end users to change the code to fix bugs or extend the utility.

But how many users actually do that? Not many.

But open source has its roots in the Internet, let's look a bit at that culture.

The protocols on the Internet are documented by RFCs: Requests for Comment

The process:
  • I build something I think is cool
  • I document it in an RFC
  • If somebody else thinks it's cool, they build one based on the RFC
  • we test mine and theirs to see if they interoperate
  • if so, we have a possible standard

So the internet was built on interoperating software based on well-documented protocols.

With these protocols, software could be written that would plug into the internet and function well.

The internet's architecture is a bunch of machines that plug together to extend the network. Each of these machines has configuration options to allow it to operate in its niche.

Open source software grew up in this culture, so it tends to be build with the same philosophy.

So let's look at software with the eye toward extensibility, configurability, interoperability and hackability.

There have been open source/free software world there has been much discussion on the 'free' side: Free as in Speech, Free as in Beer, the Various open source licensing issues, etc. Freedom has been been well-trod.

Lets look at various dimensions of 'open'

first some definitions:

Configurability: making changes to the basic look or feel or behavior of the software.
    This may be
  • rearranging user interface elements
  • adding new skins/themes/templates
  • hiding or showing features

Extensibility: Adding functionality to the software that wasn't in the original distribution.

A couple of counter-intuitive examples:

Microsoft Office: how does it fare on the configurability front?
Ever been through all the settings to configure the toolbars and menus of an Office Application?
How about extensibility?
That's where VBA shines. How many VBA extensions are there for Office? Countless!

Contrast this with osticket.com: an open-source helpdesk/trouble ticket system. It's a nice enough system, but for all practical purposes, it's 'closed' there's no extensibility or ocnfigurability.

Interoperability: the ability to work with other programs over a network: i.e. a robust API

Hackability: the ability to change core functionality. this is the big plus of opensource

But the most successful opensource projects are actually the least hackable: see eclipse and apache. Why? because their core is very, very small. Like microkernels of their problem spaces. Everything is a plugin or an API.

Thus we see the keys to making software successful: it's not really about opensource or not, (hackability) it's about extensibility and interoperability.

Now the debate moves to whether the extensions are opensource and hackable, and if the API is powerful enough or needs to be extended or is extensible, and SOAP vs. REST or whatever.

For instance: my vision for an e-commerce system: zoo for products, ups/usps for shipping info, paypal for payments, the ecommerce system should be a microkernel

same for the crm: mailchimp for mass email, google for docs and email, mongodb for database records, microkernel to tie it all together