Plone and its peers

Plone is doing pretty well against the rest of the field of content management systems in several key areas, which I learned in a presentation by CMS Watch's Tony Byrne.

Several months ago, I got to see a presentation by CMS Watch's Tony Byrne about the state of Web Content Management in 2009, hosted by DC's Web Content Mavens. I took notes and then sat on actually writing this post for, um, about four months. But, better late than never.

The presentation first went over several major prediction that didn't come true in 2009; namely, that Web Content Management Systems did not converge with Enterprise Content Management (ECM), Social Networking Systems, or Component Content Management Systems (CCM). None of these particularly surprised me; as I've learned from Plone and Drupal over the past few years, it's tricky to build systems that have adequate granular security and workflow features that also support large numbers of concurrent, logged-in users who are creating content and relationships. As for ECM overtaking/merging with WCM, my understanding there is real ECM is absurdly hard to do well, and so I'm not surprised that trying to bolt-on web publishing to records and document management systems proved to be a massive undertaking. And I really know very little about CCM to begin with, so I'll just keep my mouth shut there.

Overall, I was impressed at how many of these things Plone's been doing right for a lot more than a year, and how many of the things that it hasn't been are well underway. For a quick summary, check this post's accompanying mindmap; or, stick around for my commentary on the areas where we're doing well and falling down. I unfortunately can't post the slides (as they're not mine to post), but I can at least share my notes.

Friendly URLs

This one Plone's had for a long time, care of the zope publisher. Plone's default title-to-ID converter does a good job making search-friendly path components, and products like redirection tool give you total control over the URLs for objects. I am consistently amused when I see systems where they actually charge for the ability to set reasonable URLs for objects.

Repository Search

Plone doesn't have some much of a separate "repository" to speak of, at least from an end-user perspective; content objects are searchable via the site search and editable from their web-representations. The advanced search gives you some ability to find objects by type and review state, but otherwise we could use some work here. Out of the box, there isn't an obvious way to get a listing of all objects of a particular type and sort them meaningfully (although clever content managers can use their own collections for this purpose), nor to do anything like faceted search. I have heard of products coming out to support this, and I'd be interested to hear about others' ideas for making it easier to find content that needs editing without browsing the site or relying on full-text search.

Dependency Tracking

Plone actually got a screen-shot in here in the presentation, as a system that provided user-friendly dependency tracking. Byrne seemed impressed by the delete notifications Plone gives you. As the composite page story for Plone evolves and content can appear in more places on a site, it will be valuable to add more ways to track where a given object is showing up on your site.

System Management and Configuration Management for Business People

I've unfortunately forgotten what the different between System Management and Configuration Management were, so I'm just going to conflate them and say generic setup is wonderful. I realize that it can be opaque to system integrators, and I won't pretend that I haven't cursed as I tried to find something in a sea of <object /> tags, but the fact that Plone can serialize out configuration to a format I can teach my non-developer colleagues to edit, and then can easily read configuration back in from the file system, is a godsend. When you're starting a site from scratch, it can seem unnecessarily complex, but once you have a live site that users are updating constantly and you want to test changes before you deploy them, it's wonderful to be able to automate configuration changes and be sure of reliable repetition. Having spent some weekends trying to deploy changes in Drupal 5 and be sure I've clicked all the right places in the right order (often following someone else's notes), I'll gladly do some XML sit-ups for the sleep they save me at deployment.

[Content] Management Metrics

Plone could definitely use some work here. Clever use of collections allows content managers to create queues of pending, old, and expired content, which is a good start. However, if you're managing a large site, these queues aren't going to be enough; it can be really valuable to be able to get an idea of which sections of your site are getting the most updates, which sections are aging worst, and to know more about your aggregate site activity. To my knowledge, there's no good way to get this information from Plone; I remember Kapil Thangavelu mentioning a content auditing system that could use a SQL database to provide some of this information, but I can't even find it now.

Site Analytics

Plone doesn't do this one really at all — there's a box for inserting web-based analytics code into the footer of pages, and otherwise you're pretty well on your own here. There are systems that do provide some of this; the blogging platform I use actually gives pretty good analytics. And, on its face, it's hard to know why your CMS should provide analytics; with so many dedicated packages for that, why bother?

However, analytics combined with content metrics could provide powerful tools for content managers. Imagine being able to see where your traffic were going and how it was traveling through your site (or bouncing away), and then being able to overlay information about how frequently those pages were updated and re-reviewed, and who had been working on them. Right now, if you have firm goals for how your site should perform in terms of analytics, you might be able to get that information from a third-party system, but then drawing inferences from current practices requires either a lot of custom programming or some other external auditing system. This is another area where I'd love to hear comments — maybe I'm overestimating the kind of intelligence you could get from combined analytics and content metrics, or maybe there are systems that would make this much easier in Plone.

Word Conversion

This is an area where no one does well. It's hard to blame the CMSes, either. People use word badly, and then word makes matters worse by producing a ton of crazy markup when you paste from it (and it's different crazy markup depending on your word version). I'm not sure how a CMS could be expected to really accurately convert text destined for print to the web when that text doesn't use page-level styles. I know enfold desktop offers integration directly with word, but I've never been able to get it to work in a way that I found acceptable; then again, I haven't put a ton into it.

True Multi-Site Management

This is an exciting area in Plone right now, with the changes that went into 3.3 and the new lineage product. It's also an area where most other systems do a bad job, according to Byrne. With Lineage, it's now possible to setup a single Plone site with multiple independent children, where the parent site can access the content of the child sites, but the child sites are independent of one another and segregated from the parent. This solves a variety of use-cases, like campaign-specific sites or large institutions with several independent departments or divisions. I haven't gotten to play with lineage myself, but I'm looking forward to using it soon.

Usability

This is an area where I've always felt Plone really excelled; although the interface may not exactly be simple, it is gloriously consistent. In training end users to create content and manage sites, I've found that they learn quickly and are able to extend their knowledge easily, thanks to this consistency and the care put into keeping the UI logical. And from what I hear, Plone 4 will only get better, with a simpler interface and fewer concepts to master, even for complicated tasks.

Non-browser Clients

This is apparently a hot area for non-FOSS CMS vendors. According to Byrne, adobe's Flex has vendors all excited about creating "rich internet applications" for interacting with their products. I have trouble seeing how this would be useful for many tasks; you're managing a website, you might as well do it through the web. To my knowledge, Plone doesn't have any non-browser clients, but I'm not going to hold that against it.

Overall

Overall, I'm impressed. There are plenty of areas where other systems are just now playing catch-up, and plenty of others where Plone is keeping pace or maintaining its lead. And I don't see development or innovation slowing down, so I can't wait to see how we're doing in the state of content management in 2010.