Sunday, January 11, 2009

The Benefits of Open-Source Software

I was reading this thread on Open-Source ESB's at The Server Side and that got me pondering why more companies don't go after open-source software. While I am a fan of open-source in general I do see several issues for enterprise wide adoption. It also started me thinking why folks who are proponents of open-source in their enterprises really like open-source. Is it truly because it's open or is it because it is generally cheaper to initially acquire?

Let's start with the issues of open-source software. The two main ones are probably support and longevity. I haven't done any studies so this is just based of my experience but typically support is not used heavily for an enterprise class application. There maybe a few "serious" tickets in a given year for an application. Out of these "serious" tickets, how many are actually resolved by the vendor? There is a pretty big premium paid for that availability of support that is not used all that regularly. However it is there if you need it. The perception of open-source software is that in general you are on your own.

That perception is not always based in reality. A lot of the better open-source vendors have similar support offerings as the major proprietary vendors. Of course the cost of those open solutions goes up a lot when the support contracts are added on to the price. If you take a look at SUSE or Redhat on the OS side of things, you will find their support contracts comparable to Microsoft, Sun or HP in terms of cost. The down side to support contracts is that they can also require you to upgrade on the vendors schedule instead of yours.

The other issue with open-source is longevity of the vendor. The perception is that going the open-source route can be a gamble in terms of whether the vendor or users who maintain the code base will continue to exist. This is a legitimate concern but with a caveat. If the vendor or users no longer maintain the code, the source is open and in your possession. The real question is, is that a useful thing? Most enterprises usually negotiate with their proprietary software vendor a clause in their contract that says if the vendor goes out of business the company does get the source code. Is that useful? Would most enterprises be capable of doing anything with the source code?

I have never really bought into the proprietary argument of software. My opinion on this has always been the vast majority of enterprises are not equipped to or even should take advantage of having source code. Enterprise IT shops are there to provide business solutions not spend time on the platforms or packages that deliver those solutions.

There are some quality open-source software out there that many large enterprises and smaller companies should consider. There are cost savings and quality that can be gained by going that route. But you have to evaluate those cost closely with you existing proprietary solutions on an even basis. The upfront cost of software acquisition usually pales in comparison to the cost to maintain it. So while open-source is generally easier and cheaper to initially acquire, the long term maintenance of the software can be just as expensive as its proprietary counterpart.

2 comments:

Ken said...

Mark,

I work for an open source vendor and found your post interesting. However, I think there are some benefits you are not considering.

If the vendor goes away, you don't need to maintain the source yourself. There is the community and others in the community can pick up and provide support. You just don't have that option with a proprietary solution. Also, there is a lot of other benefits from having an open code base that the customer realizes. The code is typically cleaner, easy to understand, easy to build, etc. If a proprietary vendor goes away, don't expect them to help you figure out their build scripts or navigate the code.

For support, it's not just about fixing or working around a bug. Open source vendors offering support can assist you in implementing the best solution for your business by leveraging their unique knowledge of the product. This can reduce the need to have a large team internally trained up to support the product and solve problems that arise.

Mark Griffin said...

Hey Ken,
Good comments. I don't really disagree with your statements but just like my post they are kind of subjective like this one "The code is typically cleaner, easy to understand, easy to build, etc.". I happen to agree with you but its still subjective.

I think the points you make are what companies that are not using open-source are missing. Less emphasis on the open part, which I still don't think most companies will benefit from, and more emphasis on the quality, ease of support etc. I know from my experience that when I have had questions I usually end up talking with one of the developers instead of some first level support person. It really makes a huge difference.

MuleSource is a very good open-source vendor by the way. I've always had very positive experiences with the software.