- Lots of WordPress users seem to take the attack personally. This has allowed vocal supporters to drown-out those few with rational arguments.
- The more traditional, non-web, Content Management crowd say that WordPress isn’t feature rich enough to qualify. Of course, nobody has actually provided a comprehensive definition of CMS or a list of features.
So the fight continues. While I am in no way trying to resolve the argument in this post, I am trying to solve the crux of a matter….What is a CMS?
Remember, through all of this, I love using WordPress. Trying to categorize, not demean.
Tony Byrne gave a simple definition: Content Management is the management of content. Extending that, a CMS is a system that manages content.
Simple enough. We know what a System is. No debates on that term.
We have a pretty good handle on Content. There is no requirement for a CMS to manage all types of content, so a WCMS could specialize in browser-targeted content and fail at dealing with documents, video, records, or scanned images. That said, we may have to revisit content later.
So the remaining word is Manage. What does it mean to Manage a piece of content?
So when you want to manage a piece of content with a CMS, what do you want it to do for you?
- Store: Well, duh. Of course, you can do that with any desktop application and some disk space.
- Metadata/Properties: More complex, but important. This goes beyond author and modified date. I should be able to define custom properties. If I publish the text of a speech, I might want to store the speaker(s), date given, and location. I can do this in Word as well.
- Content Types: Let’s face it. When I edit a press release, I don’t want to deal with the property fields for a speech. I need different types to handle different fields. I have this in Word with templates.
- Security: I want to be able to secure it. Check for Word.
You know, there is a lot of things that I can do to manage content using Microsoft Office, and nobody will call it a CMS.
One thing that lots of people say in defense is that you can write/add plugins to add functionality to WordPress. You can do the same with Word. I can write some pretty complex stuff that will allow me to author and publish web content from Word using macros and add-ins. That doesn’t mean that Word is a CMS.
The most advanced out-of-the-box version of Word with all the Microsoft add-ons is still a Word Processor/Content Publisher.
So a CMS needs to clear the WordBar before we even consider evaluating it as a CMS. The type of content does not matter. A WCMS and DMS (document management system) must still Manage content.
Let’s look at some features that are pretty basic, but possibly above the WordBar. They may be implemented/named differently in different products, but the core value is important.
- Versioning: Versioning is critical. It can simple or complex, but it has to be there.
- Multi-Edit Issues: Whether there is a check-out feature or a edit resolution feature, there must be something that manages the scenario where 2 people try and edit the content at once. It doesn’t have to be great, but it needs to be acknowledged and addressed.
- Full Security: This means groups and access control lists. You need to be able to restrict access to groups of users in addition to individuals. You also need to be able to use re-usable permission sets. This also means multi-level, None-Read-Full. I’d prefer to have Write as well, but I don’t think it is necessary from a scope perspective. I just won’t use it myself.
- Lifecycle: This can be simple. There should be some way to DEFINE a simple lifecycle. Doesn’t have to be complex, linear is fine, but not all content has the same lifecycle. Any automatic lifecycle features can be defined in code, but the number of steps and name should be configurable.
- Notifications: If you the system can’t send email without writing code, forget it. I need the system to tell me when events happen, even if it is as simple as telling me my favorite piece of content has changed.
- Change Logs: I need to know what has happened. This needs to have some basic configurations so I don’t have to choose between tracking everything or nothing.
I think that will do off of the top of my head. I intentionally didn’t look at anything while writing this. If I didn’t think of it, and it is a fringe feature, probably not core.
Also, third-party plug-ins granting the feature don’t count. Extensibility in a CMS is great, but it should be a CMS before it is extended.
Content or Text?
Content is pretty simple, blobs that when viewed in their native application provide information. Some blobs, like XML and text files, you can actually breakdown into fields that are stored in a database with no loss of information or fidelity, assuming it is done correctly.
So my question is simple, what does a CMS do with your content?
Here is a simple test. If your system cannot do this with any piece of content that it claims to be able to manage, then if fails and should not be considered a CMS.
If you cannot look at it when it is in the system and tell that it is the same piece of content, then it fails.
Try it out with WordPress. If I import a Word document, which is a feature, can I then export it back later and have it retain all the same features? This includes non-date properties (after-all we can’t blame a CMS for Windows changing modified and last access dates).
If you can’t separate the content from the system, it isn’t managing that content.
So, is the feature list of a CMS valid? Is it complete? Does it have too much?
Second, how does WordPress, installed straight from the core download, measure up? Yes you can extend the install to be a CMS…
…but I can do that with Word.