sâmbătă, 27 noiembrie 2010

Open Source versus the Enterprise Solution

Let me start by clarifying a few things:

1) I work for a CMS vendor, for an enterprise CMS.

2) I am also a big fan of open source.

Yet, I am attempting to write this article with all bias aside; with all generalizations thrown out the window. Without feeling like I am trying to justify this article, I think it is also worth mentioning that the CMS vendor that I work for produces a product that I would avidly use even if I didn’t work for them.

Every vendor, whether they are enterprise or open source do research on their competition. Although the internal information that these vendors have are usually pretty good, there is not a lot of thorough comparisons readily available on the net. When I look on the web, all I see are generalizations. I want to get rid of this, drop biased opinions and give you the hard, honest truth. Sure, I can only talk from my experience, and I have not used every CMS under the sun, but I have had the pleasure (and sometimes pain) of using a diverse range; enough, I would say to be able to stoke the fires. To back this up if someone asked me:

What is the best photo editing software? I would give an honest answer of Photoshop. But Paint.net is free and so is Gimp, I hear you say. Although expensive, it is the best tool for the job.What is the best Media Player? I would say VLC! But Microsoft had dedicated teams to build Windows Media Player, I hear you say! Doesn’t matter, VLC is free and the best tool for the job.What is the best Developer Environment? I would say Visual Studio? But I don’t use .net, I hear you say! Great, because you should choose the best tool for YOUR job…..the whole point I am trying to get across with this article.What is the best FTP Client? I would say FileZilla!What is the best browser? There is no ONE tool for the job.

I think it is important to first define what the two systems are in order to be able to thoroughly compare the two options.

Open source describes practices in production and development that promote access to the end product's source materials. The public is allows to copy, modify and redistribute the source code without paying royalties or fees. Some consider open source a philosophy, others consider it a pragmatic methodology.Proprietary software is computer software licensed under exclusive legal right of its owner. The purchaser, or licensee, is given the right to use the software under certain conditions, but restricted from other uses, such as modification, further distribution, or reverse engineering.

From a high level perspective you could argue that both have advantages and disadvantages. It is only when you analyze the functionality of the two systems when the decision on what way to go is made that much easier.

I think it is also important to highlight some of the advantages and disadvantages of each system

Open Source FreeCommunity DrivenMany more sites are running on Open Source than Enterprise, but not necessarily enterprise level websites.Lots of Modules built by CommunityBroader Developer BaseSupport level is not guaranteedMoney runs the world, and without investment open source products can’t evolve as much as they couldSecurity fixes are not guaranteedRapid DeploymentA lot of bloat ware….pack everything in so that you can compete with the vendorsEnterprise License CostBetter documentationQuicker response to Security HolesDedicated roadmaps for releases and updatesBetter supportDedicated training by the vendorLarge customers feel safer with Enterprise SolutionsEnterprise vendors usually have local presencesUpgrade paths are usually much smoother instead of e.g. getting the latest release from an SVN repositoryThe process of choosing a CMS is made much smoother by an Enterprise level as they are able to guide you through the process.Accountability…a big factor. One neck to choke.ScalabilityVendors usually make strategic alignments with third parties to make integration easier, instead of having to create custom connectors to talk to different systems. A vendor will typically work with the third party to establish a connection pointBottom-line is, upper management will usually feel safer paying for a license for a big project rather than starting a project on the cheap. How often do you here, “I am so happy we chose open source because we saved money” versus, “I knew choosing free software would end in a disaster”

To add to the complexity of decisions you have to make above, when choosing a CMS, you are usually fronted with the following feature request list, which also plays into the decision of which system to go with:

Level of functionalityImplementation Language (PHP, C# ASP.net, Ruby)PriceComplexity and ExtensibilityUser SimplicityLevel of SupportPerformanceManagementInteroperabilityBuilt-in ApplicationsEnvironment (Apache, IIS)

As you can probably gather, these decisions should not be taken lightly and enough time should be designated to run the software through its paces.

I promised I would offer the honest truth and discard any generalizations that are out there, so let’s highlight the generalizations and expose the truth.

1.       Developers that work for an enterprise vendor are better developers and get paid accordingly.

There is nothing magical about developers working with Enterprise that make them release better products and be better coders  than Open Source and vice versa. This idea spawns from the fact that that there are dedicated product teams that work to build, extend and test all components of an enterprise CMS, modules etc. This does not translate to better developers. In fact, with Open Source, people are more likely to make cleaner and better code as they know it will be modified and scoured over by developers in open format.

2.       Enterprise is more expensive.

Enterprise is not free upfront, but look at the ROI, and evaluate the overall return of investment of the entire life cycle. Upfront license costs are one thing, developer costs are another and maintenance is sometimes even worse. (Compare Open Source projects versus Enterprise costs)

3.       Enterprise means better.

Of course not! In fact, in my opinion, some of the worst CMS’s have a license cost involved in them. It is not about that, it is that an enterprise CMS has a greater chance of being an excellent CMS because they can usually throw money at more developers to get a product released on time, tested or extended.  It takes an excellent CMS and an excellent organisation to make a good product.

4.       Open Source Support is terrible.

This will vary from product to product but there is a tendency to think that Open Source support is only people from forums. Not only is this incorrect, but who says that is bad? I probably work with hundreds of different developers every year, and the number of times I have heard that support for enterprise CMS software is beyond shocking may surprise you.

5.       Community built applications are bad quality.

Once again, this is untrue. Some of the best pieces of software are Open Source.

6.       Open source feels cheap in quality and build.

I actually understand this feeling and I know that most of the companies I consult with hold this mentality as well. Without exposing the spoiler, this is definitely ammunition playing into the whole meaning of this article, being that, price should be the last thing on your mind when choosing the right CMS for you.

7.       I don’t use enterprise because Open Source is free.

Let’s face it, most developers have a computer at home where they have software without the proper license, whether it be that you are running Office on more computers than it should be installed on, or every piece of software you own is pirated. Take things out of the equation, such as “I have license software; you have to pay for it”. Well you don’t, and if the tool was good then your workplace would buy it, full stop. If you could prove that a piece of software would make your work more efficient, more productive and get projects done before schedule, with better quality output and reusability then I guarantee a good organization would buy you two licenses just for you, just in case you ever feel like installing it at home as well to play around with. If not, then I would say that your business or place of work is less embracing of innovation and productivity than they should be and that perhaps choosing between Open Source and Enterprise is not the first problem you need to solve.

8.       It isn’t the right tool, but we need to have something.

Budget restrictions also restrict innovation, and suffocating innovation means a dull product. If you have identified the right CMS and it is out of budget, then perhaps go back to the drawing board.

9.       I have $200 to spend, which tool should I get?

There are thousands of productivity tools out there. Some Open Source, some require a cost, so which do you choose? Easy, take money out of the situation and simply pick the best tool. Most of the tools might cost $500 a license, buying a $400 tool that is not exactly what you need will end in a developer spending a lot more than $100 on making it do what you want.

10.   Open Source means no licenses.

This is another generalization that is untrue. Open Source does not mean you still don’t have to manage licenses. Sure, you might not pay for them, but you still have to keep them out of expiry.

11.   Exposing code in an Open Source manner equates to fewer vulnerabilities.

This is also incorrect. If you don’t believe me, simply head to major security houses and take a look at known vulnerabilities in Linus versus Windows. This also plays into the idea that this is usually only the case because proprietary software have dedicated teams to fix vulnerabilities.

12.   Open Source means free.

If the definition of Open Source didn’t make it clear enough, maybe the proof is better to analyze. Check the maintenance costs, some “Open Source” CMS’s have huge maintenance costs which are far greater than any Enterprise CMS. The overall price may still be cheaper, but this of course depends on how many years you plan to keep the CMS and continue to pay for support.

13.   Enterprise vendors, means expensive support.

Open Source Freelancers can charge like a wounded bull because they know they don’t HAVE to support their software. When you sign up for most Open Source tools, they stipulate in their terms and conditions that they hold no responsibility for support. Vendors will usually have dedicated support options which can be far less expensive than that of an Open Source developer.


So after all of this, who stands as the winner? Open Source, or Enterprise? The answer is both. There is a time and place for each. A common theme that you can get out of this article is that cost should be the last thing on your mind when trying to find the right CMS.  Free is a bonus, but not a decision maker. I work with a lot of web agencies as a consultant and the question of which CMS to go with will always arise. There is a simple answer to the question of choosing a CMS. Find the best tool for the job, if it is within budget, great, if it is not, push for a bigger budget highlighting the ROI that would be expected with an early investment. These could be in the shape of less developer cost, less maintenance cost, less configuration and hosting cost, less stress.

There is so much more to think about than just the initial investment. The truth is, although we see a lot of CMS’s moving towards it, no CMS is the best at everything. There are some that are perfect for Ecommerce, some for Learning Management, some for Document Management and some for Web Management. Choose the best tool for the job and leave the cost out of it. There is a commonly known paradigm for building projects, “Cheap, Good, Quick…choose two”. I think this translates well too many things, including this topic. Happy CMS hunting, I hope these tips help you make the right decision.

View the original article here

Niciun comentariu:

Trimiteți un comentariu