A one-for-all, all-for-one solution to website content management is the holy grail of my profession. For my web development work for clients, I find that several of them have a lot of specific features they want in their content management system (CMS). But soon enough I’m walking the tight rope between simplicity and flexibility.
Selecting a tool to build such a website or application is a matter of audience. The first audience, software developers, need either a lot of freedom or a lot of options. In practical terms, for my PHP development, this is a choice between CakePHP and Drupal. Working with both of these equally has been eye-opening, because without fail there are many features that are much faster to implement in one or the other—it truly ends up about 50/50. Want to display a custom calculation in a specific place on the site? With CakePHP it’s simple. Want a paged image gallery with Lightbox functionality? Drupal can get you there much more quickly.
For both these platforms, the other audience comes into play as well, namely the client. Obviously the client needs to have their available options presented as concisely as possible—they don’t need (or want) a huge amount of freedom or options. So the creation of such a simple interface falls to the developer. The trick is knowing which stuff to allow them to change and which stuff to hard-code. In both cases, priority #1 is defining these as variables (or object properties) as soon as possible in the code, so we can switch back and forth if need be. Yet clients will always possess an uncanny knack for requesting the tweaks that are most troublesome to implement. Granular permissions, anyone?
Creating robust software that is still easy to use is the challenge facing any software developer. Apple has rightly gained a reputation for striking this balance with substantial success, yet they are certainly not above reproach. In the web industry, the balance of power is more volatile, as anyone with a great idea can launch a web application with little to no concern for infrastructure—innovations from Google, Rackspace, Amazon, and the like are taking care of those issues. And while there are a wealth of options in the realm of content management, several of them quite good, I believe this abundance indicates the ongoing problem of balancing features with simplicity in these applications. After a myriad attempts, the world still awaits a truly excellent CMS.
NOTE: Parts of this post were originally a comment at Gadgetopia.