Based on my experience and thoughts over the years, and feedback from a number of very smart and talented people, I believe that Content Management Systems (CMS) are far from the promised savior, but rather the bane of web sites.
Back at the end of the 1990s, people wanted to start controlling content creation on the web. They were offered all kinds of hacks, and to be gentle, let’s just say they were “a bit varying in their quality”. Most of the time, there were no support or documentation (since developers just want to code, right?).
To fix this situation and bring some stability to the market, a number of CMSs were developed, and to this day, they keep on popping up around every corner – I bet of majority of the developers out there has, at one time or another in their career, worked on building their own CMS. The initial idea with them are good, trying to collect knowledge and experience, but all of them, without exception, fail sooner or later in some aspect.
“One size fits all”
The problem with any CMS is that it tries to accommodate to as many needs as it can, both from a developer, business and editor perspective. This also goes for a market filled with a vast array of different ideas, hopes and desires. Basically, common sense tells us that the result, at the very best, will only become decent.
Virtually any web site that is sold as CMS-controlled is easily set up and installed, and then months, or even years, are spent “configuring” it – and by configuring, I mean patching, fixing, mending and hacking it to remotely meet the usage wanted by the customer.
What I rather suggest is that it is our responsibility as professionals to not just throw a CMS at our customers, and then have editors and developers alike being miserable, but rather to listen to our customers’ actual needs and then custom build what will be best for them. It is also inline with working in an agile manner, developing what should be there, instead of wasting money and time on a CMS filled to the brim with bulky features that most people don’t need nor want.
“Don’t reinvent the wheel”
“No, no, don’t reinvent the wheel, don’t brings us back to the wild west-mentality of before!” I hear you cry out. That is very far from what I am suggesting. Instead, I think the scale of developers’ choices look something like this:
- A poor developer uses only one CMS, and recommends it over and over, no matter what the customers ask for.
- A decent developer knows about the options, and chooses a CMS he/she thinks will be the best (rather, bring the least amount of implementation and maintenance pain to everyone).
- A good developer doesn’t choose a CMS, but rather cherry-picks the best components out there and binds them together in an optimal result, custom-tailored for their customer.
What I mean with components are specific things, that could be found as parts of an existing CMS, but function stand-alone as well. We’re talking WYSIWYG editors, data saving, friendly URLs, tree controls etc etc. What you will get from this is choosing the best tool for the job, for each specific part. You can scour the market until you find exactly what you need, and if you do a responsible choice, you can find the best for a certain task not only out of code and maintenance perspective, but also in regards to community involvement, support, proper documentation and a huge number of other people working with the same thing.
Your part will be more like a conductor directing an orchestra, binding all small and independent things into the best and optimal end result. Naturally, and this is very important, apart from delivering this to the customer, you should also offer support for your part in this, tying all this together in a beautiful architecture.
It will also give the customer the option to, in the long run, just change or upgrade the components they wish to change, instead of the enormous undertaking of upgrading an entire CMS. Think one part out of all isn’t optimal? Just get a new one, while doing it in a very cost-effective manner!
They will be around
CMSs will, no doubt, be around for quite some time. But my belief is that instead of focusing on products, it’s vital both for our customers and the climate of the web, that we start taking some pride in building the best possible things we can, instead of just having our hands tied behind our backs by a CMS.