
Open source CMS system or custom built, standards-compliant CMS - which is better?

Open source content management solutions (CMS) like Drupal, Django, Wordpress, Joomla, etc. offer convenience and no cost on the front end but how do they compare to a custom built solution that uses standard development practices?
First let me say, we’ve deployed open source based solutions and built our own standards compliant CMS, so we understand the benefits and shortcomings of each. And selecting which is the best option will involve several areas of consideration, such as: cost, convenience, customization, maintenance, etc.
Open source equals low cost - or does it?
Open source supporters will always say that open source is free or low cost. But this isn’t necessarily an accurate statement. Yes, the base systems are freely distributed, but for most businesses, they’re still paying a web developer or designer to install and design their web site. So there’s is a cost. Most of the open source CMS systems allow for novice users to install them, but as soon as you desire something more customized - you’ll need to rely on a developer or find a “plug-in” of some sort, that may or may not cost money.
Open source solutions do offer inherent management functions, but again, once you need to step outside of the basic functions, you’re going to be paying a developer to do it. And we’ve yet to configure a system that does everything we need immediately upon deployment. Further, the learning curve for clients and the time spent training new users can incur costs too. For any new web application, we often devote 8-16 hours for training split up over an initial 4 hour introduction and review with the remaining time related to support and continuing education.
Open source is more secure
It can be, if you keep up with all the security updates, maintenance, and application upgrades. These will all likely incur some additional developer time and costs since any customizations will need to be maintained during security updates or program upgrades. And sometimes, program updates can wreak havoc on sites since open source tends to progress aggressively and drop support for older, depreciated features. This isn’t a bad thing, but it does mean a site you deployed one year ago may become obsolete as your open source cms moves from version 6 to version 7.
By default open source is open to everyone and the source code is available for review by all types. This usually translates into better security, since talented, really smart programmers review the code daily. But it also has a downside. If you don’t or can’t upgrade, your beautiful site is a sitting duck. And if it’s popular, trust me, it’ll be targeted eventually. Open source systems are often attacked with automated exploits that seek out sites that aren’t upgraded to the latest security patch or version. So make sure you’ve got the developers on retainer and committed to upgrading your CMS regularly or you could find yourself very, very unhappy.
But open source is simpler to use.
Not necessarily. Yes, for the most part, the open source cms community maintains a consistent user interface and so do the authors who develop add-ons and plug-ins. However, as previously mentioned, open source solutions evolve rapidly and forsake backward compatibility for overall improvements. This isn’t a bad thing, Apple does it all the time, but it does mean that change is also part of the equation. New default templates, new features, new ways of implementing features, can all lead to user confusion or developer confusion. And if you’ve paid for heavy customization, then you’ll need to pay to have the customizing redone or risk falling behind (in your open source version). And if you start to upgrade your systems you might need to train your staff to use it after each upgrade.
But custom development is expensive
Not necessarily. If you can work within the constraints of an open source deployment, and only need a small amount of customization, then, custom development may not be the best option. But if you’re focused on delivering the best user interface, top quality design, and prioritize user experience, then custom development is a necessity. Open source systems generally rely on templates. Customizing these templates can be difficult especially if your design falls outside their typical structure. Want to tailor the designs of specific pages, you’ll be creating or customizing more templates when using open source. We’ve had to walk clients through this discussion, where the limits of a template derived systems must be balanced against cost increases. If we can limit the template set to five, we can stay within your budget, but if you want a dozen templates for more personalized pages, then the cost will increase. Then there’s the required training in the fine art of taxonomy. Explaining the process of creating a page, selecting a template, building and applying content, can be a daunting process.
Conversely, custom development can provide greater page variability and link the page design to it’s purpose. You’re not trying to fit your design into a template. You’re designing first, then you construct templates or “included file snippets” as necessary to make the code portable and maintainable. Usually, when we walk clients through one of our custom-built systems and show them the consistent admin interface and review what they can and can’t change - they’re very happy.
But your custom code is proprietary
No it’s not. We’ve built most of our custom solutions around existing frameworks or followed functional coding practices and standard coding techniques. The result: most skilled programmers can follow the application logic quickly. We comment our code extensively and provide any required native files (for PHP, ASP, .NET), that is, nothing is encrypted unless it’s an add-on that we’ve purchased specifically for the client - and then the client owns the add-on anyway.
And with us, and with most developers, custom code creates a growing library of solutions and modules that can be applied or adapted to new projects. So unless a client’s request is truly unique, chances are, we’ve already done something that can be shaped into the perfect solution. From ecommerce to lead tracking systems, we’ve created the solutions before, so we can apply our experience and existing code to solve a client’s specific problem. And yes, you can argue that the same potential exists for open source solutions via “extensions” or custom development. And we’d agree. You can pay for custom development for your open source solution - but that immediately negates it’s openness and can cause future upgrade headaches. And of course, you’re now paying for custom development, the antithesis to your open source choice. And it’s been our experience, if you can find a “plug-in” or “add-on” that suits your needs - you’re still be settling since it won’t be perfect. And more importantly, add too many “extensions” and you’ll likely encounter bugs as they begin to conflict with one another.
And while we can’t speak for all developers, our custom code is based upon industry standards and traditional programming languages (PHP, ASP, .NET), so once our engagement is done, our continued involvement is optional. Often, we’ll outline the web application to internal teams, and they’ll continue to develop and maintain the code moving forward. Sure, they might hire us for future expansions, but it’s not a requirement. There’s nothing secretive about our coding practices - we just don’t distribute our code to the community as open source.
Whatever you decide, choose your developer wisely
It’s been our experience, that no matter which direction you proceed, open source or custom code, the most important decision is choosing the right partner. You want to make sure they have a good history and that they’re stable and will be around to support your immediate and future needs. You don’t want to be forced to retrain or reeducate a new team each time your need a modification. So make sure the web designer / developer you choose will be around for direct or indirect support. And like we’ve said, open source or custom code you’re going to quickly wade into customization as soon as you go beyond the basics - so make sure your chosen partner will be there when you need them.
Mar 26, 2011
By:
Additional Posts You May Find Interesting:

We're not a good fit for everyone... but that's OK.
We work with large and small companies, but sometimes budgets, schedules, or differences get in the way. There's always the next one.

We produce results quickly and long-term.
We're not miracle workers, but we've been known to perform a little magic and help your businesses take off. And we keep working hard.

What our clients say about us means a lot.
Our biggest reward is when our clients tell us we've done a good job and thank us for it. And then when they hire us again and again.
There are comments for this entry. Leave a comment below »
Leave a comment. *Required