Content Management Without The Killing

A presentation at @media 2008 in May 2008 in London, UK by Drew McLellan

Slide 1

Slide 1

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.

Slide 2

Slide 2

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.

Slide 3

Slide 3

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.

Slide 4

Slide 4

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.

Slide 5

Slide 5

" I want to pause there and talk for a moment about these...

Slide 6

Slide 6

http://flickr.com/photos/hddod/536392298/ or more accurately, about these...

Slide 7

Slide 7

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.

Slide 8

Slide 8

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 ...

Slide 9

Slide 9

Slide 10

Slide 10

a tool for preparing eggs should be as simple as possible, but no simpler.

  • Eggbert Einstein Just as we look for tools to help with e " ciency, reliability of results and to save labour, as a race we also tend to by instinct over-complicate things whenever we can. It's clear to see that Caractacus Potts got rather too carried away with his egg-preparing machine, and as a result probably cost more labour in constructing, operating and maintaining than the simple task of cooking some eggs each day would have cost in the first place. Plus, when something goes wrong, the cause isn’t always immediately obvious.

Slide 11

Slide 11

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...

Slide 12

Slide 12

“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 .”

  • James Seddon Seddon's device, which he goes on to describe as "a bit like a toaster for eggs" and presumably can be used to cook dairy products day after day without ever needing to be cleaned (!!) again takes a very simple process and introduces lots of clever - albeit unnecessary - technology to attempt to further simplify it. Often with disastrous results.

Slide 13

Slide 13

" 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.

Slide 14

Slide 14

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.

Slide 15

Slide 15

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.

Slide 16

Slide 16

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.

Slide 17

Slide 17

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.

Slide 18

Slide 18

you’re not my type . There are all sorts of di ! erent types of content management system, of course, each with their own purpose.

Slide 19

Slide 19

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.

Slide 20

Slide 20

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.

Slide 21

Slide 21

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

  • a generic system wouldn't necessarily have the tools in place to enable you to do that. You may get somewhere close to what you need by misappropriating categories or tags, or using second-class 'additional data' fields, but as a rule, if you have unusual data a generic tool won't necessarily be perfect for representing it out of the box.

Slide 22

Slide 22

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.

Slide 23

Slide 23

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.

Slide 24

Slide 24

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.

Slide 25

Slide 25

/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?

Slide 26

Slide 26

use readable , reliable

and hackable URLs

  • Tom Coates URLs should be readable - a user should be able to get a good idea of what the page is about simply through the URL. If it's constructed from weird category and article IDs, a user can't do that. What's more, descriptive, readable URLs index better for search engines and therefore make your content more findable. URLs need to be reliable. Once released out into the wild, a URL should continue working, ideally forever. It's a lot easier to ensure that if your URL is an alias and not a direct representation of the underlying technical infrastructure. URLs should be hackable - and by that we mean a user should be able to intuitively make changes to a URL to get to other content without the need to follow links. If I have a URL like:

Slide 27

Slide 27

/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”

Slide 28

Slide 28

data feeds RSS and Atom.

Slide 29

Slide 29

data stored in an open format

Slide 30

Slide 30

customisable and accessible administration interface

Slide 31

Slide 31

search

Slide 32

Slide 32

multi-site support

Slide 33

Slide 33

multi-language support UTF-8

Slide 34

Slide 34

caching

Slide 35

Slide 35

web 2.0 features (cringe)

  • Ajax support
  • Tagging
  • microformats

Slide 36

Slide 36

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?

Slide 37

Slide 37

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.

Slide 38

Slide 38

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
  • Movable Type
  • Textpattern
  • Chyrp

Slide 39

Slide 39

Wordpress 2.5

Slide 40

Slide 40

MT 4

Slide 41

Slide 41

TXP 4.0.6

Slide 42

Slide 42

chyrp 1.1.3.2

Slide 43

Slide 43

weblog management systems • posts / articles • categories and tags • comments • sections • flat site structures • simple to set up and use

Slide 44

Slide 44

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

Slide 45

Slide 45

case study webstandards.org

Slide 46

Slide 46

In 2006 webstandards.org looked like this. It was a collection of static HTML pages fronted by a blog running on Movable Type.

Slide 47

Slide 47

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

Slide 48

Slide 48

Slide 49

Slide 49

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

Slide 50

Slide 50

Slide 51

Slide 51

Slide 52

Slide 52

lessons learned • dynamic rendering is a lot more expensive • the ‘pages’ feature was immature and slow ‘Pages’ page takes 21 seconds plus to render.

Slide 53

Slide 53

Slide 54

Slide 54

lessons learned • dynamic rendering is a lot more expensive • the ‘pages’ feature was immature and slow • hacking WordPress was a bad idea

Slide 55

Slide 55

Slide 56

Slide 56

solutions • unhack WordPress • re-implement our hacks with the plugin API • upgrade to faster hosting

Slide 57

Slide 57

avoid getting into an unsupportable
configuration at all costs.

Slide 58

Slide 58

medium scale content management

  • Drupal
  • Mambo
  • Expression Engine
  • Typo3

Slide 59

Slide 59

Drupal 6.2

Slide 60

Slide 60

Mambo v 4.6.4

Slide 61

Slide 61

EE v 1.6.1

Slide 62

Slide 62

typo3

Slide 63

Slide 63

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

Slide 64

Slide 64

beware! • complicated way to cook an egg • more power results in less simplicity • set up / configuration • maintenance and patching • ease of use

Slide 65

Slide 65

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.

  • Interwoven TeamSite
  • Vignette
  • Documentum
  • RedDot
  • IBM FileNet
  • Microsoft SharePoint

Slide 66

Slide 66

building your own Using a framework

  • Django
  • Ruby on Rails
  • CakePHP
  • Symfony
  • CodeIgnitor

Slide 67

Slide 67

case study edgeofmyseat.com cms platform

Slide 68

Slide 68

edgeofmyseat.com projects • content management at core • bespoke requirements on top • design-led • built for phased development & future expansion bespoke:

  • common: product catalogue, forums
  • classifieds
  • resource booking system
  • loyalty card management

Slide 69

Slide 69

our goals • reusable core functionality • avoid monotonous tasks • decrease the skill level required • be more competitive on smaller projects • structured data • high performance

Slide 70

Slide 70

buy or build? Looked at Expression Engine

  • very extensible
  • we’d have to get to know it really well
  • write modules to do a lot of the things we need Downside
  • every query is CAN we do it now HOW SHALL we do it
  • core updates, performance enhancements - unsupportable configuration
  • building our business on top of someone else’s Intellectual Property Might be ok for something for ourselves, but not as a solution to give to a client.

Slide 71

Slide 71

we decided to build

Slide 72

Slide 72

platform • PHP 5.2, MySQL 4.1 • good performance • easy and inexpensive to host • inexpensive to develop • reliable • in house expertise

Slide 73

Slide 73

design decisions • flexible templating • multiple levels of caching • structured and extensible data types • embeddable applications • ability to exercise control of IA • simple administrative concepts

Slide 74

Slide 74

Slide 75

Slide 75

Slide 76

Slide 76

Slide 77

Slide 77

Slide 78

Slide 78

Slide 79

Slide 79

Slide 80

Slide 80

Slide 81

Slide 81

Slide 82

Slide 82

planning for the future

Slide 83

Slide 83

top tips

Slide 84

Slide 84

know your plugins authenticity, licensing & support be aware of authenticity + licenses + support of any plugins/modules

Slide 85

Slide 85

beware hidden costs update charges & maintenance time be aware of hidden costs for updates or maintenance time

Slide 86

Slide 86

be a licensing boffin know what you own & avoid lock-in know what you own and what the license grants you. avoiding lock-in

Slide 87

Slide 87

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

Slide 88

Slide 88

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

Slide 89

Slide 89

be aware of design constraints design for the platform you have be aware of any design constraints a system might impose

Slide 90

Slide 90

avoid per-user licensing you’re probably being ripped off avoid per-user licensing - often a sign that you're being ripped o ! .

Slide 91

Slide 91

speak with existing customers (everyone hates their cms)

Slide 92

Slide 92

know your exit route understand the data import & export options

Slide 93

Slide 93

questions?

Slide 94

Slide 94

edgeofmyseat.com