Web developers have always struggled with the buy vs. build dilemma when it comes to content management systems. Do you buy a commercial CMS or do you use an open source CMS? Or should you customize and build your own CMS based on an open source CMS framework? Let's run through some of the pros and cons to each approach.
First, some market history
Just a short time ago, if a client wanted content management and didn't have the budget for a commercial CMS, developers could just sell the client a "maintenance package," which meant that an HTML coder would make site changes manually at regular intervals. The business case was simple: It was cheaper to buy manual maintenance than to pay for a CMS license or the cost of in-house CMS development. There may still be the odd time that a maintenance contract makes sense, but most clients today demand a CMS.
A CMS is now a fundamental part of the modern Web development experience. The incredible rise in the mass adoption of the CMS has a lot to do with the availability of high-quality, relatively inexpensive CMS tools. Not that long ago, the only choice was a costly commercial solution from a large vendor such as Interwoven or Vignette. Several commercial CMS applications are available at a more reasonable cost today, and an even greater number of free open source solutions are available.
Buying a commercial CMS tool offers a number of distinct advantages, not the least of which is commercial support and well-defined service level agreements. A commercial CMS tool may already be ready-built for your needs and will likely be faster to implement than an open source CMS. Documentation and training for commercial CMS products are usually significantly stronger than for an open source solution. Your average person also associates a certain degree of safety with commercial software as opposed to open source. If you or your client has the resources to purchase and appropriately license a tool, it can often be the safest bet.
Arguments against buying a commercial CMS come down to one issue: cost. Commercial CMS license costs can be prohibitively expensive, and customization/integration expenses can send these prices even higher. Commercial CMS systems rarely represent a "budget" solution.
Open source CMS
The reason many users originally try an open source solution (myself included) is price. An open source CMS will be significantly cheaper than a commercial CMS. As with many open source programs, because the code is "open," the opportunities for customization are also greater than they are for a commercial CMS. Depending on your CMS needs, there may very well be an existing open source CMS that will fulfill your requirements.
The arguments against implementing an open source CMS are numerous, but are generally tied into one key concern: uncertainty. Product support, documentation, and user training are often subject to the whims of volunteer (read: unaccountable) developers. As a result, there is often no brand name or customer service department to offer assurances or assistance in maintaining CMS stability and security. Enterprise-level workflow management may therefore be difficult to achieve, and product implementation may take considerably longer than with comparable commercial CMS products.
Custom CMS based on an open source framework
Your clients are a demanding bunch. You, the Web developer, are interested in creating a customized, branded solution to offer to your clients. Customizing a "new" CMS based on an open source CMS framework can bridge the gap between a pure open source CMS product and a commercial CMS. The Zope Content Management Framework, for example, includes workflow as part of the framework. It may or may not be robust enough for your particular requirement, but it's customizable. A solid content management framework gives you the basis for your own customization tailored to the unique requirements of your client.
The arguments against a custom CMS built on an open source framework are based on uncertainty, much as the arguments against a direct open source CMS product. And customizing a CMS introduces the added concerns of taxing internal development resources, which can further increase implementation times and introduce large product support demands on your development team.
Build vs. buy checklist/scorecard
The top five issues that I talk to clients about when figuring out what makes sense are:
- Support issues
Table A is helpful in identifying a trend toward a particular CMS development approach. In addition, the Vignette Web site offers a return on investment (ROI) calculator that can help you determine whether your chosen approach is cost-prohibitive. (But since it's a vendor site, take any advice found there with a grain of salt.)
|Issue||Commercial||Open source||OS framework|
|Do all the features required exist in the product?||Yes; if no ->||Yes; if no->||Build it yourself|
|Do you have the developers/support on staff necessary to support the product?||Just pay for support||<- If no||<- if no|
|Will the requirements change over the next six to 18 months of usage?||Going to cost you money||May be customizable||Have fun and customize away|
|Will the number of users increase over the next six to 18 months?||Going to cost you money||Bring 'em on||The more the merrier|
The final cut
Deciding which way to go on your CMS deployment depends on a number of factors. But ultimately, you want the best ROI possible on the deployment. It really comes down to your requirements, your resources, and the demands of your particular situation. In my case, we had low budgets, clients with high requirements, a shop full of developers, and reasonable timelines. So we customized a CMS based on a framework. It's been a process that has had its hiccups to be sure, but it was the right approach for us. Some of the high-priced CMS solutions really look fantastic, but the bottom line is the bottom line; just do what's right for your situation.