Open Source Software

My personal ramble on Open Source software. This article does nothing more than raise some points about open source software which I find interesting.

Open source software benefits

Lower Cost 

For many people, the $0 price tag attached to most open source software is the primary attraction.   Zero cost and open source are not the same thing. Zero cost is not part of the definition of Open Source software, see free beer vs free speech below.

Good Availability

Open source software is easy to find, easy to download and establish if the software is fit for your purpose.  If a piece of software does not work for you, there is no issue with returning the software.

Easy License Management

With Open Source software there is little need to count users or CPU cores running a the software. 

With paid commercial software, you usually pay per user or per CPU core.  For larger organizations, keeping track of how many licenses are required becomes a significant job on it's own.

Wide Support

The reasonable expectation with paid software is you are paying for support, the backup of a business standing behind its product.  However, this does not always work out as expected because support is a cost centre for software vendors.  It is natural for any company to want to keep costs down.  As support costs reduce you can expect the quality of support to reduce.

With open and free distribution, open source software finds its way to large numbers of users.  A large user base makes for large, active support forums. Although there is no vendor guarantee when you use open source software, you can get great support from the community.

Adjustable

Open source software can me modified by the end user.  For 99% of users, adjusting complex software is a last resort to solve a problem, but it is good to know this option is available. 

Open source philosophy

Open source and propitiatory software have different philosophies, yet both are successful. 

Bill Gates founder of Microsoft promotes the merits of proprietary (closed source) software. Starting with his famous open letter to computer hobbyists in 1976, Bill argues software companies need to get paid for their work.  Paying for software allows developers to continue developing their software.  This capitalist sounding philosophy has produced wildly successful and popular software such as Microsoft windows.

Richard Stallman argues software should be free for all to use, modify and redistribute.  The freedom to modify software leads to communities of developers constantly extending and improving software.  This socialist sounding approach has also produced very successful software projects such as Linux, Apache and PHP.

So what is our philosophy?

I try not to get philosophical about open source software, we use a mix of open source and propitiatory software depending on what is best for purpose.

Our desktop workstations run Microsoft Windows.  We pay a reasonable annual fee to Microsoft to license Windows.  From our point of view, Windows desktop OS is easy to install, runs all the applications we will ever need, is stable and well supported by hardware vendors.  Some of our development tools are propitiatory others are open source. 

Our server platforms are all open source. The application stack is LAMP (Linux, Apache, MySQL, PHP).  This server stack is fast, secure, widely supported and easy to maintain.

We include a number of software libraries (plugins/components) when we develop software for customers.  We look for open source libraries rather than propitiatory libraries, mainly for license management reasons.  Often propitiatory libraries are low cost and worth the money to save our own development time.  However, the up front cost is not the problem, the problem is tracking which customers are using software with paid components and making sure the customer has the appropriate license.

The cloud

Hosting software in the cloud mixes the open source argument up. 

Microsoft, the king of propitiatory paid for software, is now embracing open source software in their cloud hosting platform, Azure.  Microsoft Azure are not fussy about which operating system or database software you elect to use, as they make money from hosting the software.  This is a big change from having Microsoft sales reps trying to sell as many licenses of Windows, Exchange and SQL server as possible.

Cloud hosted 'software as a service' (SAAS) makes much of the argument over open source vs closed source irrelevant. Take email for example.   Before cloud email services become popular,  small businesses had email servers on site, either a closed source Microsoft Exchange or an open source alternative such as Dovecot.  Today hosted email services such as Google Mail and Office 365 are popular. The convenience and low cost of hosted email services make them an attractive option over an onsite server.  The openness of the onsite mail server becomes a non issue.

Open source cloud SAAS offerings are also interesting as a potential revenue stream for open source creators.  Wordpress is an example of open source software which has a cloud hosted option.  The customer can download the software for free and do anything they like with it, including going into competition with Wordpress.  Wordpress make money by selling a convenient, ready to go, cloud hosted SAAS version of their software.

Paying open source developers

Open source developers are not usually paid directly for their efforts, much to Bill Gates disgust.  Most open source contributors are not motivated by money, rather a sense of contribution and doing something interesting and worth while.

Developers who can cite involvement in open source projects on their CVs gain an edge when looking for paid work.  As an employer, I like CVs from developers who write code in their own time for reasons other than getting paid.

Some companies, including big players such as IBM, contribute to open source and will pay developers to work on open source projects on company time.  In return companies get access to a community of developers.  The company may find it easier to employ good developers from this community.  Also the company will find it easier to sell product and service to open source communities due to the good will generated. 

Free for development purposes lesson

Free for development purposes can be a trap with for licensed software users.  I don't believe this is a deliberate ploy by software vendors but can be an expensive pitfall for customers. 

I first encountered free for development purposes early in my programming career.  Oracle is a premium software company that charges premium prices.  I discovered the Oracle developers website, you just sign up and freely download any Oracle server product you like for development purposes.  A message on the developers website read something like:  "when you are ready to move your project into production, give our sales team a call".  As a young programmer, I though that was pretty neat, play with the software now and the grown ups will figure out licensing later.

It is easy for the developer to find useful features, switch the feature on and start using it.  Each extra feature increases the total license cost, even if the feature is only used in a tiny part of the application.  The license cost is multiplied by the number of CPU processors required to run the application.

For example, drawing from Oracle's MSRP prices in NZ Dollars, Oracle Enterprise Database software costs $65,037 per Processor.  If the developer turns on in-memory to speed up some queries, Spatial and Graph to do a little mapping and the NoSQL database because it seamed interesting, the per processor price jumps by $69,145 which is a 106% increase in price.  Multiply that by a typical server with 20 processors, that is a $1,382,900 increase in price.  Ouch.

Free beer Vs free speech

For more reading check out wikipedia

Richard Stallman tells us to think of open source in terms of free speech, not free beer.  The cost of open source software is not necessary free, but you are free to tinker with and modify the software.  Redhat Linux is a good example.  Redhat is paid for software, however you get the source code with the software and you can get no cost versions of Redhat such as Fedora and CentOS.  When you pay for Redhat, you are paying for the service and support rather than the software itself.

To confuse the distinction between free beer and free speech, a Danish group released a free beer.  They successfully sold bottles of beer and also gave away the beer recipe under an open source license.  Although the beer costs money, the source code to make the beer is free and open.

In conclusion

There is no conclusion, just a few points I find interesting.