November 23rd, 2009

The Underlying Meaning of Content Management Systems

A spontaneous flash fire burst into flames this past weekend surrounding content management. Scratch that; it focused on WordPress. Like many of these debates, it was sparked by a seemingly unrelated Tweet, this time by Nathan Smith. My personal reaction to the post was to let it be. I appreciate knowing that a designer knows how to work with WordPress, not so much Dreamweaver, but can understand referencing WordPress as a skill, albeit an outlying skill. Could the designer list PHP as a skill? Sure, but when a lead comes through asking for Drupal development, the designer is worse off and faced with a dead end.

I always get a chuckle when designers list 'WordPress' amongst their skill-set, or say 'I use Dreamweaver' with a straight face.

I’m going to infer that what resulted was not Nathan’s intention, but a small powder keg went up in flames. He was hit with instant recoil from the massive troll population plaguing both our community and the rest of the Internet. Without taking the time to find out his true intention, people instantly felt Nathan was bashing both WordPress and Dreamweaver, and felt the need to express a targeted response. I’m all for debate, but there are certain ways of going about it. The odd part about this occurrence, however, was that people on both sides of the fence were being quite overzealous about their home turf.

The philosophy of content management

I think a major talking point throughout this conversation needs to be the premise of content management itself. How is content management defined? To me, a content management system is something that manages content. It can be “enterprise level” content management (whatever that may mean), blogging, or the one page site your aunt asked you to put together for her.

Much of the support “in favor” of Nathan’s opinion surrounded the stigma WordPress has as a blogging platform. Nate Klaiber made a great point throughout the back and forth; that custom fields != CMS. That’s more than true. I absolutely 100% agree with that sentiment. It was at this point I learned that what we’re dealing with is again the mass adoption issue with WordPress. More on that later.

WordPress has its roots in blogging, that is the founding purpose without a doubt. The continuation of the story, however, is that WordPress has essentially conquered blogging. WordPress moved beyond blogging on the order of years ago. Since then, WordPress has begun to accommodate a nearly endless combination of site types it can handle. Not to toot any horns, and not that it’s the end all be all, but over the past years WordPress has worked its way up the Open Source CMS Award rankings to take it home this year.

How WordPress fits in

Nathan’s primary argument regarding WordPress was the fact that to him, while it makes a decent blogging platform, to call WP a proper content management system would be pigeonholing. Many rejoiced, many took offense. Surprising to me, a number of designers I’ve come to respect went so far as to say that if you use WordPress as a CMS you’re doing your client a disservice. That was tough to hear, not because I’m defensive of WordPress, but because that’s quite a dig to take at a large population of what I feel are talented people.

I’m a huge fan of WordPress. I use it for 98% of my projects and it’s worked out swimmingly. I’m not dumping dozens of custom fields into every Post and Page though, I’m using a set of plugins I’ve come to know, trust, and work with for an extensive amount of time that helps me provide terrific content management platforms for my clients.

That’s where a light bulb went off for me through this back and forth amongst my peers. The people supporting WordPress know it on a higher level than those who were bashing it. I then continued to process the discussion by justifying some comments by realigning them to target an out of the box installation of WordPress, sans plugins. But then I went on to think about some of the content management systems suggested as alternatives to WordPress. The primary of which being ExpressionEngine and Drupal.

That’s where it got interesting to me, and where I felt zealotry was taking over a bit. I respect both ExpressionEngine and Drupal, and although I’ve never used either beyond a basic installation and run through, I can see that lots of time and effort has gone into both. I also know and respect the large, talented, and knowledgeable communities surrounding both platforms, but I also know that I’m turned off by both systems for daily use. I’m not here to start another flame war, but my trials with both ExpressionEngine and Drupal have shown that they’re not the system for me, not at this time. I say ‘at this time’ because I fully intend to explore both systems in full detail for an extended amount of time before officially signing either off as incompatible with the way I want to present a CMS to my client. Drupal also won big this year in the unofficial CMS Awards; it took home the Hall of Fame Award, and has a long standing streak of winning Best Overall Open Source CMS in past years.

I continued on with my thought process to realize that many of the people who know and love ExpressionEngine and Drupal also have their secret weapons in the form of plugins or mods that make the CMS work the way they want. For example, I can’t count the number of times I’ve heard people say that they’d never build an EE site without Structure. I’ve also heard that Structure completely changes the way you work with EE. I use Pods for every WordPress project I build. It completely changes the way you work with WordPress.

What does that say about each respective platform? What does that say about the plugin architecture? What does it say about the people using the systems?

My final remarks on the issue

As I mentioned previously, I feel that a major aspect of the WordPress vs. “CMS” ordeal is mass adoption. As with PHP in general, people do lots of stupid crap with WordPress. I admit that fully. When it’s so readily accessible and open, it’s an impossible thing to avoid. There are also, however, people doing some amazing things with WordPress, and it’s got nothing to do with shoehorning or pigeonholing.

I also feel that the minor aspect of the debate is (for lack of a better term) ignorance tied in with a touch of overzealousness. It’s hard to become intimately involved with every CMS in an effort to find a fully encompassing opinion on it. That takes quite a bit of time and even more effort, a resource everyone in the world ran out of long ago. If your initial experience with a CMS didn’t work out in the way you had hoped, you’re going to move on to the next until you find something that does. Once that project goes smoothly and you’ve covered the basics, you’re going to learn even more on the next project, so on and so forth. Before you know it, even considering the original CMS was a laughing matter as you’ve become so accustomed to what worked for you. Why, if that original experience was so lacking, would you keep up with development, keep up with new plugins, or even bother reading up on the system at all? You’ve got work to do and you want to get it done with the system you know to be effective.

In the end, I’d just like to conclude this opinionated piece by reminding everyone that it’s not always the tools you use to get the job done, it’s the end product itself. While content management is a unique case in that your client will see the tool you’ve chosen, it’s about education. Instead of talking bad about one system or another, how about we build some websites? Let’s tout the good things we’ve come to know and love about our choice content management system, and leave the rest to the wayside.

 Comments

20 Comments

  1. Ross Johnson November 23rd, 2009

    I agree with your thoughts in a lot of ways. The fact is that there is no perfect CMS solution out there, and I would challenge anyone to find one that didn’t require knowledge of how to extend it and truly use it on a most of their projects.

    If the argument is that wordpress is a blogging platform first and needs to be extended into a CMS the same could be said for drupal, EE or joomla.

    Find one Drupal CMS site that doesn’t have the CCK or Views module.

    I used to dislike wordpress as a CMS, I felt that it was inadequate and difficult for a client to use and learn. However recent enhancements to the UI and some excellent plug-ins latter (like pods, flutter or custom write panels) and it can handle anything from small sites to large corporate sites.

    Just like any other CMS or software platform it does require specific skills and knowledge to learn and makes sense to list as a skill. Yes knowing wordpress is valuable, knowing Joomla, EE or Drupal is valuable too and it is a skill.

  2. Jake November 23rd, 2009

    Great article Jon.

    I don’t think there is a CMS that can exist without plugins. There will always be plugins that we rely on to do things whether we write them or someone else does. There is no such thing as a CMS that has every single thing every developer wants. That reason, along with the comfortable factor, are why one CMS is no better than another.

  3. Tweets that mention The Underlying Meaning of Content Management Systems - Monday By Noon -- Topsy.com November 23rd, 2009

    [...] This post was mentioned on Twitter by Jake Przespo, suffolksoftware. suffolksoftware said: great post from @jchristopher: The Underlying Meaning of Content Management Systems (http://bit.ly/7NRIRZ) [...]

  4. Mubashar Iqbal November 23rd, 2009

    It’s hard to provide context in 140 characters and the trolls definitely over-reacted to Nathans tweet.

    Most of the websites I build end up needing a custom CMS as they are usually pretty unique, but I see the value of Wordpress, EE and the other CMSes, especially with the plugins that extend their functionality beyond their core focus.

  5. Nate Klaiber November 23rd, 2009

    Thanks for the breakdown, Jonathan. CMS means different things to different people. I have always been a proponent that WP is not a CMS, because I went through the pains of trying to extend it. My personal experience was with posting Book Reviews. I wanted something that understood the context of books, not just a blog entry amidst a list of other blog entries. Books are a specific model, and carry with them associations that simply couldn’t be made through WP. This was also the brief example I gave in a response on Twitter.

    ————————-
    A book has a title, ISBN (10/13), Page count, Hard/Soft cover, Price, Description.

    A book also has classifications. This is a specific hierarchy of classification, not just a random category assignment. So, a book could be classified inside of many different ‘buckets’.

    A book has 1 or many roles (author, technical reviewer, etc), and the roles could respectively have many other books associated to them. A book author also has their own specific model. First Name, Last Name, Biography, Links, etc.

    May times a book also has extra resources found online: downloadable chapters, downloadable code, or a full site dedicated to the book.

    In my context, I had reviews. A review is it’s own distinct model as well. I have the title, the review, the rating, the date it was reviewed, and other metadata. This review then gets attached to a book.
    ————————-

    I used to try and manage this process through WP. It was a logistical nightmare, and you simply couldn’t make the necessary associations that make this up, and this is just a small sampling. So I built my own.

    While WP is great for a blogging engine, I have many qualms with the code underneath – this includes both the PHP and the Database – where there are so many inconsistencies. It’s not a clean architecture design, but it gets the job done for 99% of the people. I am in the 1% where I don’t like the architecture decisions being made (PHP/Database Schema).

    I plan on writing more of a response, but my frustration is when people take WP, and then try and shoehorn a client’s needs into THEIR model – not the proper model for the client’s business. That’s the main reason I stated it was a disservice. It wasn’t meant as a jab to any designers out there, but if all you know is WP – then when a client comes to you, you are going to find a way to fit their model into yours to make it work. That’s not right.

    Look forward to some more discussion around this.

  6. Meredith November 23rd, 2009

    What a terrific piece Jonathan,

    One can never discount one platform over another – or the need to constantly be learning. They all have unique strengths and weaknesses. It’s amazing how much all of these platforms have changed – there’s no place for complacency.

  7. Adam Wood November 23rd, 2009

    I find a lot of designers who use their mad-skills to put together sites on “higher-end” CMSes (not WP) are doing their clients a disservice.

    I generally work with clients who want to update and add their own content to their site, instead of paying someone (me?) hourly to do that for the rest of forever. We can set up a WP install and teach them how to do that incredibly easily:
    “Oh- I just type in here? Wow- thanks Adam!”

    If they forget what they’re doing, or want to do a little bit more, and don’t want to pay me again, they can Google “Wordpress” and find easy tutorials on everything.

    WordPress as a CMS has liberated my clients from obnoxious webmasters and given them control over their own sites.

    Will it work for everything? Of course not. WP is especially good at websites that primarily deliver informational content (which is what my firm specializes in). If you’re doing something more complicated, you might need to use something else. But the vast (VAST) majority of potential web design clients can be well served with WP.

    It’s easy to forget how many individuals and small businesses are out there that just need good solid design and straightforward content delivery.

  8. Jesse November 23rd, 2009

    Thanks for this write-up, Jonathan. I recently decided to focus on EE because I want my clients to have support when they need it, and I’m no EE guru. Nonetheless, if it wasn’t for that fact, it’d be WP FTW.

  9. Leon November 23rd, 2009

    I agree. Pods is the deal–breaker as it removes the need for lots of awkward custom fields. Add that to the huge range of plugins and wp is pretty flexible.

    I find that potential clients have often heard of WordPress, so listing it as something one does isn’t necessarily a bad thing.

    My main issue (I design sites for small businesses/one–person operations) is foisting a CMS on someone who just needs to change a bit of content on their site. I’ve started to use Unify for simpler stuff.

  10. Matthew Fedak November 23rd, 2009

    I love learning about new techniques, practices and the like from php geeks who install wordpress as a quick way to communicate with others.

    I personally use my own cms though, benefits are that because people do not know the directory structure behind it and where core files are kept its in theory less obvious to hackers who like taking down lots of wp blogs at once.

    It also encourages you to learn more and develop your skills. I dont think anyone should learn php by playing with wordpress. That to me is like learning to play guitar by completing “sweet home alabama” on guitar hero. Its fun but you wouldn’t then put on your cv your a skilled musician then would you!

    …would you???

  11. Luc Latulippe November 23rd, 2009

    Well said Jonathan.

  12. Chris November 23rd, 2009

    I’ve never understood how anyone can claim that wordpress is not a CMS. wordpress manages blogs. blogs are a type content. therefore wordpress is a content management system. it may not be an all-encompassing CMS, but a CMS it is.

  13. David Sutoyo November 23rd, 2009

    Great concluding thoughts, Jonathan. For me, I was less concerned about whether WP is a CMS than the (seemingly) disparaging remarks by both sides. That’s what worries me. Was it necessary to make people who have WP on their resumes feel bad? Was it really necessary to convince someone of the superiority of WP when it’s obvious they are of a different opinion? Do the clients really care what you use as long as it meets their needs? They probably have other things to worry about, and that’s why they hired you.

    It would be unfortunate (and ironic, obviously) if the equalizing power of the internet actually made us web geeks elitists.

  14. Matt Kline November 24th, 2009

    Food for thought. What if WordPress suddenly went away? There are an awful lot of people that wouldn’t be able to run a website without it. I know that I messed with Joomla quite a bit before finally choosing WordPress for it’s ease of use. My opinion is it is rapidly becoming a good CMS, And the price is right.

  15. Mubashar Iqbal November 24th, 2009

    I usually end up having to integrate with some kind of enterprise system that the company already uses, and doing that with a off the shelf CMSes **usually** presents more problems than it solves.

    All the sites are built on a Framework of some kind (RoR, KohanaPHP, etc) , which provide a lot of platform for building what we need. I guess building from “scratch” doesn’t really exist any more, or at least shouldn’t.

  16. Nate Klaiber November 24th, 2009

    @Jonathan
    This is where I struggle with this stuff. Pods doesn’t solve the problem I had, it only hides it. I saw their example of ‘books’ and ‘authors’ – then checked out how they organize a relationship like this. If you look at http://pods.uproot.us/codex/database_diagram – you can see that I can’t create true relationships in a database. It’s setup with their pseudo-relationship structure, which is more robust than custom fields – but it’s the same premise. I want true DB relationships. Having a true DB relationship allows me to:

    1. Index fields based on needs
    2. Add proper foreign key constraints to specific fields – deleting or cascading as necessary. Integrity of the data is important to me.
    3. Add proper validations to ensure the uniqueness of my data in given contexts. This can’t be done with this architecture as it stands now.

    These are just a few – but are very big reasons for me as I expand data sets and want to keep the DB layer clean.

    I would agree that this is a better solution than custom fields, though – but it doesn’t come close to building exactly for needs. Couple this with implementing a robust search index and other implicit/explicit relationships at the core – and you will easily see how this type of DB structure wouldn’t work for that.

    I think this is a lot of what Nathan was trying to say with his original post – that a DB structure like this misses out on some very key components to making the connections in the UI. The derived relationships from organized data at the core is extremely valuable.

    Anyway, just a few more notes on the topic :)

  17. Kevin November 24th, 2009

    @Nate Klaiber: Maybe it’s just me, but your requirements seem to be way past what I would consider content management. I haven’t taken a look at EE, but I have with Drupal and I don’t see the ability to do this without some sort of Custom Module. CKK may come close, but even there I see limits.

    @Jonathan Christopher: Never heard of Pods before. ThanX for that. I’ve been struggling with Flutter myself.

    @All:
    There are advantages and disadvantages to all platforms.
    Wordpress:
    I like the simplicity of it all. It’s widely known and supported. Is the structure horrendous, yeah, but it gets the job done 90% of the time.

    Drupal: Although I just started, there are some things I’m in love with. I like the built in minifying of CSS and JS files. I like “regions”, I like the fact that you can customize the “admin” section to look as complicated or simple as the client needs (Admin templates FTW….That’s the next step WP team, :P )

    But at the end of the day, it’s whether the clients are happy and choosing the right tool for the job.

  18. Content Management November 27th, 2009

    Wordpress is a great way to dip a toe in the water, however the issue I have with lumping it in with other CMS products it the ‘management’ part of the acronym.

    To manage content, you need to be able to control it – scheduled publishing, rollback, audit trails, versioning etc… all common place in any good CMS.

    Without the true ‘management’ functionality, you are little more than operating a glorified page editor.

    We’ve been using Infomaxim now for several years and found, despite being relatively unknown, it has many great features, a nice admin interface that uses AJAX extensively, is responsive and easy to use.

    My favorite feature is the ability to point it at an existing database, regardless of the field structure and be publishing content from it within an hour or so. Nice…

 Leave your mark

Leave a comment