Let’s first take a look at what advantages do CMS bring to the table.
- CMS is widely used, hence they become stable and secure with strong architectural frameworks.
- CMS integrates beautifully with the ecosystem allowing add-ons to come on board at a reasonable cost and effort.
- Extendable architectures allow you to extend the functionality of the system by writing custom web parts or extensions.
- Strong User and Session Management along with content publishing support CMS by default.
- They allow quick time to market.
With such appealing benefits, there are pit falls as well, as we experience during some of the product and system developments.
- Rigid Architectures & Functionality: You can face architectural challenges with CMS. If your application or product requires you to do things differently than what CMS has to offer, you may have to face some problem. .
For example, for one of our HealthCare clients, a simple need was to reveal the limited functionality to the assistant doctor. Joomla’s permission hierarchy did not allow such a setup as permissions are purely driven by publishing roles. The above issue though was resolved with the latest release of Joomla which allows wider set of permissions.
Being open source Joomla, Drupal & WordPress have the privilege of being able to change core libraries and functionalities. It is something doable but not recommended as you may be impacting parts of CMS which you do not understand, when you make changes.
- Version Lock-In: While CMS’ next set of releases are mostly on the latest technologies and language, it might not be possible to upgrade to the next level of CMS after you have built a system.We had one of our clients whose system was built on Joomla 1.5 (which only supports PHP version 5.2.9 or lower). Hosting spotted certain security vulnerabilities with this particular version of PHP and recommended enhancement to the higher PHP version. Unfortunately, Joomla 1.5 would not work with the higher PHP versions. And we could not upgrade to the higher versions of Joomla as it requires lots of re-work.
- Not all 3rd Party components are right: While there are plenty of 3rd party extensions available, they may not match with the feature to feature as needed. Also, as there is no quality control on extensions, at times you can end up fixing lots of bugs which come along.
- You may order more than needed: Lot of times applications or products may be simple in nature and may not need all the horse power of CMS. This horse power comes at a cost, which is performance. Lots of operations which might be using resources may not be needed.
What’s our advice?
If you have a strong development team with strong architecture fundamentals, have resources and time on your side and in for a long haul, it is advisable to go for custom development. This gives you higher control as you know what is important for your product in next coming years.
If you are looking for quick idea validation, have limited resources and technical horse power, using CMS may be the way to go till the VC dollars knock your door. As an example, a simple e-commerce portal with standard features might just work fine with Joomla and VirtueMart combo. A dashboard which plugs into existing system and generates charts and reports might be a perfect candidate for SharePoint as platform.