Its funny how software development rotates in cycles. About five years ago everyone wanted to make an IRC client. If you were a geek worth your salt, you were either hacking on an IRC client, a window manager or a media player. It seemed that the world knew no limitations on IRC clients. Instead of just improving an existing client and refining it, the hacker community engaged in feverish itch-scratching that was somewhat anti-social - everyone hacked on their own client. It was evident that some l33t scr1pt f00 was the order of the day for the pointy-haired IRC client hacking fraternity.
Today the same cultural phenomenon seems to have been applied to the much revered Content Management System (CMS). For those of you who have been living under a rock for the last five years, the humble CMS provides a website engine that can be used to create a site without the need to wrap yourself up with HTML, CSS, scripting languages and small paper napkins with strange CSS workarounds scribed upon them. From early successes such as PHPNuke, CMSs have grown dramatically. A quick look at the CMS Matrix provides a head count of 527 CMSs at the time of writing. Yes, 527. Insane.
As consumers, we like products and services that are tailored to our experience, expectations and demands. We don’t want to be bogged down in features and functionality that is not directly related to what we want to achieve. This is one of the core principles behind good design and usability - know your audience, know their expectations and experience, and cater for them. If you step outside of your projected audience, the world starts to get confusing for your users and they tend to daydream and wander off somewhere.
So what has this got to do with CMSs? Well, I believe that the vast majority CMSs are making this very mistake. For the last four or five years I have played with a bunch of different CMSs and they have been quite clearly marketed towards people who want to set up a website, but don’t want to resort to building their own site from scratch. In the majority of cases, the typical user seems to be someone who simply wants to point and click to create their website; a site that they can configure by using software as opposed to writing software. A fairly reasonable intention it may be, but one that many CMSs fail to deliver on.
The problem is that “setting up a website” is an heroically diverse task. Although it sounds simple, there are a huge array of variables involved in building even a simple website - style, organisation, menus, differing types of content, user permissions, media types, report generation, audits, syndication, security; the list goes on. Interestingly, I suspect that out of this list of related issues, you probably read some and thought “sure, but I don’t need that…or that…or that!”. This is exactly my point.
Most CMSs seem to identify their direction in terms of simplicity as opposed to context. The majority of CMSs are geared towards providing a simple, yet generic platform on which a site can be crafted. The problem with this approach is that the number of variable factors associated with the task of ‘building a website’ has a consistent effect on the level of simplicity offered. The concept of simplicity is primarily affected by choice. Put someone in front of three buttons that are clear, intuitive, learnable and culturally grounded, and they will get on a lot better than putting them in front of 100 clear, intuitive, learnable and culturally grounded buttons. Its a simple theory - the more options and configurability you put in front of a user, the more difficult it is for that user to achieve what they want to do unless they know the full extent of the system. This is why cars don’t have aircraft cockpit style interfaces.
Define the context
I am a firm believer in contextual usability, and there is one particular project has capitalised on context and managed to create an incredibly usable CMS - Wordpress. For some time now, the Wordpress project have continually created exceptionally high quality, very usable, well designed software. As a consultant I have recommended many, many people to use Wordpress because it is devilishly easy to use.
When you crack open the Wordpress success story, you can leverage much of it to context. Wordpress is intended as a personal publishing platform. It is primarily intended for use as a blogging engine, and with the recent ability to add static pages to the site, it is entirely usable for someone who wants to create a simple website with the ability to add regular textual content such as news, blog entries, event details and more. With this focused direction you know that everything in the administration interface is to do with something relevant to the extent of your site. As such, Wordpress fits the needs of its users perfectly and they don’t try to solve every web related problem in the world; they just concentrate on their context. Other CMSs really need to take a leaf out of Wordpress’s book, and avoid trying to take a huge overwhelming hammer to crack a very small nut.
I would love to see a number of CMSs that target very specific uses such as band websites, Open Source projects, online art galleries and more. By defining a clear context and dedicating development to simplicity, there is so much more potential to give people exactly what they want with little fuss and little clutter. There will always be a place for these catch-all CMSs, and they are good for large comprehensive websites, but they don’t so much provide a simple way of building a site but really provide a RAD way to build a site. There is room in the pond for everyone and I really genuinely hope we can see more context sensitive projects such as Wordpress stand up and claim their users.
What do you think? Wisdom or rubbish? Share your thoughts here…