A presentation at @media 2008 in in London, UK by Drew McLellan
content management
(without the killing) drew mclellan, edgeofmyseat.com If you're here expecting to hear something about superheros, then you're in the wrong place. Andy Clarke's presentation is in the other room. Otherwise, you're here because you're prepared to say in a loud clear voice to the world that you think content management is more interesting than superheros! Well, actually I don't think content management is more interesting than superheros, but I know it does have more impact on my day to day life, and therefore it's an important topic if a slightly dull one. I'll be charitable and assume that's why you are all here too.
o hai! Hello, I'm Drew Mclellan, you may remember be from web sites such as allinthehead.com, web development agencies such as edgeofmyseat.com, and grass root coalitions such as The Web Standards Project.
edgeofmyseat.com a specialist web development agency experienced in building web applications from content management systems, e-commerce applications, to the systems that run your business.
so, content management then. Whilst you probably thought you were coming to @media to listen to a bunch of gu ! from pencil-twiddling designers, the reality is that there's some really boring aspects of our work that we have to know about. Stu ! that enables all the creative stu ! to sing. If we're helping clients to communicate their content through good design - we can't escape the fact that behind the design is this mass of content, and like it or not (usually not) this has to be managed in some way. Your content management system may be the work experience guy going around and pestering people for copy and collating it in a folder on his desk. That's content management, with a vague manual system. As soon as you have two or more items of content, you need some kind of system (automatic or manual) to control where it goes on a site. As the volume of content grows, a manual system can become overwhelmed and hit its limits very quickly. Manual systems often have pysical limitations - be that the reliance on having access to materials (that perhaps are locked in someone's desk drawer whilst their out for the day), or just relying on one person who's holding the entire thing in their head whilst having increasing demands placed on their time. Manual systems of content management can work (and did work for decades in professional publishing). We're not professional publishers, however. Your clients are not professional publishers (usually). They have their own business to run. Very quickly an automated system of content management is required.
" I want to pause there and talk for a moment about these...
http://flickr.com/photos/hddod/536392298/ or more accurately, about these...
http://flickr.com/photos/neilw/138493599/ Eggs. I don't know how you like your eggs cooked. Prince Charles apparently has seven boiled eggs in a sliding scale of varying hardness cooked for him each morning, enabling to pick his egg based on his mood that day. I don't know if you've ever tried poaching an egg using the swirling water technique... you swirl the water in the pan until a vortex is created in the middle and then drop the egg into that. With a bit of luck the water is su " ciently hot to poach the egg before the vortex subsides and egg gets sprayed around the pan. I've tried it, and I can't do it. When needing to do something with greater e " ciency or predictability in results, human beings look to build tools that will save labour and help in the process or doing whatever we're trying to get done.
In the film Chitty Chitty Bang Bang (you only get the best cultural references here) central character and garden-shed inventor Caractacus Potts constructs a machine to prepare his eggs exactly the way he wants them. If you can withstand the stomach-churning cheesiness of the following clip, let's take a quick look at it. We join them as they prepare dinner whilst singing each other a soppy song. ... let’s cut to the end of the song ...
a tool for preparing eggs should be as simple as possible, but no simpler.
eggxactly. Of course, he's not the only person to has tried to over complicate the simple procedure of cooking an egg. In the summer of 2006, a chap called James Seddon pitched a product called the Eggxactly Egg Cooker to potential investors on BBC2's Dragons Den. Here’s how he described the problem in his pitch...
“A boiled egg makes an
almost
perfect breakfast
. It's the most
nutritional breakfast money can buy.
The downside is that it's a
bit of a
hassle
to prepare.
First you have to
wait 5 minutes
for
the water to boil,
place the egg in
the boiling water, remembering to set the timer, fish it out when it's cooked and finally you have to wash up the pan .”
" So what's this got to do with content management? Well, I don't think the parallels I'm trying to draw here are hard to see. When looking for a system to help manage content, often people will think of everything they can imagine a content management system might do, draw it up as a list, and then submit that list as a set of requirements for the system they are looking to install. They specify a Caractacus Potts machine when often all that's needed is a pan, some water and an egg timer.
as simple as possible, but no simpler. This often leads to over-investment in a solution and therefore creates political ties to a system which can outlast the usefulness of the technology. What I'm talking about today is Content Management Without the Killing - how we can go about making sure any content management we build or put in place for a client is going to meet their needs without any unnecessary bloodshed.
say when. When Do I Need Content Management? - There are typically two key scenarios that indicate a web site may have a need for some sort of content management system. The first is when you find the person who's responsible for your site sat in the carpark each morning, weeping because they can't admit that another work day has begun. The first, rather obviously, is the case whereby a site simply has a lot of content that is turning over on a regular basis. These could be news items, articles or blog posts, press releases or whatever. Content may need to be repurposed in the format of RSS feeds or in cross-site summaries or promotions, or published in multiple languages. Even with a skilled workforce, keeping all that content organised manually is a monotonous task at best, at worst expensive, odious and unfulfilling. It's precisely the sort of job that computers are good at, so it makes sense to give it to one. Consider content management duties a computers punishment for making us deal with printers.
so controlling. you’re not the boss of me The second case where content management becomes key is when you need to take more control over the editing process. the editing process needs to be stepped back from the simplest system of someone editing web pages directly. This is usually either because the content editor doesn't have the required skills to work directly with HTML, or because direct access to the content needs to be managed for the purposes of rights, versioning or scheduling.
you don’t understand my needs that’s all I’m saying A mistake people often make is thinking that because part of a site needs some kind of content management system in place, that the entire site has to be placed under content management. They have some frequently updated news items being posted to the front page, would like to o ! er the option of customers subscribing to those items with RSS, and so draw the conclusion that a content management system is required for running the site. That, or they think that because they need part of their site content managed now then it's likely that in the future they'll want more and more of the site under control of content management, as so specify a system that can cover the whole shooting match. This falls into into a common trap - that we'll be looking at more later - of specifying a system today based on the perceived needs of tomorrow.
you’re not my type . There are all sorts of di ! erent types of content management system, of course, each with their own purpose.
offline management Tools like Adobe Dreamweaver and Contribute fall into a category of tools that enable a number of content management tasks in an o
ine sort of a way. They enable non-technical users to edit content, have functionality to control who can edit what, and contain rudimentary tools such as link checkers that can aid the more manual aspects of using an automated tool. Making changes is a case of performing actions on an o
ine version of the site, and then having that tool upload all the touched files to the web server. This comes into its own for large static sites. Whilst this may seem to limit your options in terms of o ! ering alternative representations of content (RSS, for example) it actually needn't. Just because you're generating static pages doesn't mean you can't have multiple representations, content reuse and so on - your tool just has to support that. What something like Dreamweaver and Contribute won't give you, however, is the ability to publish to schedules, easily manage multiple languages and show di ! erent content to di ! erent users and lose all those dynamic features that are almost par for the course with a modern site. However, for certain types of content this can still be a good option.
online management Far more common in the content management arena are the familiar online CMSs. In this instance the CMS is a web application that basically runs your site. A request comes in for a page, gets passed to the CMS and it's that system's job to decide what content, templates and so on to show. Editing of content is typically performed through web-based forms, and stored in some kind of database. This is what we typically think of when we talk about a web based content managemnt system. And they come in many di ! erent guises. Whether custom build or o ! -the-shelf, or even somewhere in between, online content mnagament systems can generally be divided into two distinct and very important camps.
build something , anything. A lot of o ! -the-shelf solutions quite logically fall into the category of content management systems that are designed to build any site you may want to build. They include a generic set of general purpose tools for creating and categorising content, methods of managing pages and templates, and often include some kind of plugin architecture so that you can add custom functionality on top of them. For sites that fit a common pattern, such as a blog, news site, or managed brochureware site, these are often a really good fit. However, because they are generic tools, they tend to fall down in areas where anything slightly out of the ordinary is required. The crunch point often comes with structured data. A generic tool might o ! er the ability to, for example, publish articles that have a title and perhaps a date. For most uses that's perfectly fine. If however, you need to be able to associate that article with perhaps an event or an address or a discussion group
your site , your way. So if you're not using a generic system designed for building any site, then the flip side is using a system designed specifically for your site. This may consist of an existing system customised and extended for publishing your content in the way that you need to publish it. Obviously if it's a system tailored to your specific needs then the chance of there being limitations that need working around is dramatically reduced. You should be able to publish your data in whatever formats you need to, without any restrictions.
it’s not you, it’s me. If there's two important things I've learned about content management over the years it's that a) everyone hates their cms - and that's because chosing and implementiing a content management system is hard to get right. b) The good news is that no CMS is forever. Needs change over time, often in ways that you cannot anticipate. Attempting to find an implement a solution that works for today's needs and will continue to meet a set of future unknown needs is almost impossible.
common features. COMMON FEATURES There are a lot of features that are common to most content management systems - or at least should be common even if not.
/shiny/happy/ urls One of the key features to look for when evaluating a CMS is its ability to publish content with clean URLs. Not only because you want to be publishing content with nice clean URLs, but because this tends to betray the manufacturers underlying understanding of how the web works. Being able to write software and having a good grasp of how the web works are two di ! erent skills. All too often you find that content management systems - even big commercial ones - can be written by teams with an understanding of the former, yet not the latter. As a result, CMSs all fall into one of three categories a) CMSs that can't deliver content with clean URLs b) CMSs that can't but wish they could - some technical decision made in the past is holding them back, and c) CMSs that can produce nice clear URLs as an option from the get-go. Why is this important?
use readable , reliable
and hackable URLs
/news/technology/messy-urls-are-evil It stands to reason that I should be able to edit out the last segment to get access to a page of news about technology. Similarly at the weekend I needed to lookup some travel information for my sister who was stuck on the M25. By taking an educated guess and navigating directly to bbc.co.uk/travel on my phone, I was able to get directly to travel information without needing to navigate my way around the BBC's useless front page. An implementation of clean URLs signifies an underlying understanding of these very important concepts. “Good URLs are beautiful and a mark of design quality”
data feeds RSS and Atom.
data stored in an open format
customisable and accessible administration interface
search
multi-site support
multi-language support UTF-8
caching
web 2.0 features (cringe)
user generated content (cringe) Things start becoming more complicated when a content managment system has to start dealing with content coming from two directions. Generally content is created by the people running the site, is input via an admin interface and is output to the users at the front end. As soon as you start accepting User Generated Content - that is information submitted by the users of the site - be that comments, reviews or what have you. The system then needs to manage this information, commonly along with some kind of user accounts, enable moderation of content by administrators, and so on. Once you're dealing with user accounts and user data, you have to provide a mechanism for users to manage their account, and their data. Including the ability to remove themselves and their data from the site should they choose to do so. You have to keep in mind the possible future expansion - if you have users sign up today to be able to add reviews, if you add discussion or support forums in the future are you going to be able to support that using the same user accounts?
off the shelf systems There are hundreds, if not thousands of di ! erent content management systems in the marketplace, and so would couldn't possibly begin to go into the pros and cons of each one here. Review site cmsmatrix.org currently holds data on 915 di ! erent content management systems that can be compared and contrasted, from free systems up to those costing hundreds of thousands of pounds. And as they vary in price, the systems also vary in scale.
weblog management systems Right down at the bottom we have the simple content management systems designed for management blogs. You'll often hear people state that these aren't 'proper' content management systems or aren't content management systems at all. That's nonsense. They're just specialist tools designed for managing content in a particular way.
Wordpress 2.5
MT 4
TXP 4.0.6
chyrp 1.1.3.2
weblog management systems • posts / articles • categories and tags • comments • sections • flat site structures • simple to set up and use
beware the pimped out blog site don’t launch a new site with a weblog cms already stretched to its limits. Number 1 mistake using blog software because it’s easy to use people get carried away
case study webstandards.org
In 2006 webstandards.org looked like this. It was a collection of static HTML pages fronted by a blog running on Movable Type.
state of existing site • CVS proving too awkward for casual edits • Movable Type was painfully slow to publish • wanted the ability to turn on comments • considering a full redesign anyway
choice to use WordPress • continued to be free of charge • new ‘pages’ feature to handle site content • integrated blog • no republishing for comments • moderation and spam filtering • Matt Mullenweg was part of WaSP
lessons learned • dynamic rendering is a lot more expensive • the ‘pages’ feature was immature and slow ‘Pages’ page takes 21 seconds plus to render.
lessons learned • dynamic rendering is a lot more expensive • the ‘pages’ feature was immature and slow • hacking WordPress was a bad idea
solutions • unhack WordPress • re-implement our hacks with the plugin API • upgrade to faster hosting
avoid getting into an
unsupportable
configuration
at all costs.
medium scale content management
Drupal 6.2
Mambo v 4.6.4
EE v 1.6.1
typo3
medium scale features • weblogs, photo gallery, events calendar • user / membership systems • structure / hierarchy management tools • more powerful search • workflows • versioning designed to manage your whole site either feature rich or barebones + addons
beware! • complicated way to cook an egg • more power results in less simplicity • set up / configuration • maintenance and patching • ease of use
enterprise level content management So-called 'enterprise level' content management systems typically come in at around the cost of a shiny German executive car and require consultancy and training that can come in at the cost of a shiny executive yacht.
building your own Using a framework
case study edgeofmyseat.com cms platform
edgeofmyseat.com projects • content management at core • bespoke requirements on top • design-led • built for phased development & future expansion bespoke:
our goals • reusable core functionality • avoid monotonous tasks • decrease the skill level required • be more competitive on smaller projects • structured data • high performance
buy or build? Looked at Expression Engine
we decided to build
platform • PHP 5.2, MySQL 4.1 • good performance • easy and inexpensive to host • inexpensive to develop • reliable • in house expertise
design decisions • flexible templating • multiple levels of caching • structured and extensible data types • embeddable applications • ability to exercise control of IA • simple administrative concepts
planning for the future
top tips
know your plugins authenticity, licensing & support be aware of authenticity + licenses + support of any plugins/modules
beware hidden costs update charges & maintenance time be aware of hidden costs for updates or maintenance time
be a licensing boffin know what you own & avoid lock-in know what you own and what the license grants you. avoiding lock-in
plan for the future don’t buy it today plan for the future, but don't buy it today. don't over buy and end up with something too complex
don’t push the limits from day one leave room to expand don't undershoot and then over-customised - needs to be updateable come patching time
be aware of design constraints design for the platform you have be aware of any design constraints a system might impose
avoid per-user licensing you’re probably being ripped off avoid per-user licensing - often a sign that you're being ripped o ! .
speak with existing customers (everyone hates their cms)
know your exit route understand the data import & export options
questions?
edgeofmyseat.com
Here’s what was said about this presentation on social media.
@drewm is talking a lot of sense about content management. Listen to the audio when it is released if you are considering a CMS.
— Paul Boag (@boagworld) May 29, 2008