Philosophical underpinnings of system design

More from New Challenges… Dan Brown leverages Lakoff’s ideas on the central and exceptional elements of concepts in categorization to question how we design computer systems. We’ve built a lot of exception handling into systems to the point where we take some actions for granted, where computers are enforcing rules that perhaps people should (or shouldn’t).

He ends by asking if we should go back to how we understand businesses and design applications that follow that understanding. “…alternate conceptions of business may lead to other foundations for content management. What if business is a factory? A family? An army? A conversation?”

Build a CMS, go to heaven

Brian Alvey, speaking on a panel about CSS back at SXSW, asked, “Who’s building a CMS on these tools that spits out valid markup? Not many. A few. They’re going to heaven.”

Well, I don’t exactly believe in heaven, but to play it safe I wrote an article illustrating a few different ways you could integrate cascading style sheets with content management systems. The ideas came to me while I was working on a big Vignette-powered project, but the function is fairly easy to build in. The change is less about technology and more about organization and process: designers become empowered to improve the design through CSS as frequently and easily as authors change text.

It’s also just as useful on smaller systems, as demonstrated by Textpattern.

CMS Playground

I used to say CMS user interfaces were developing slowly because, like intranets, they were all behind the firewall. But I’m wrong, opensourceCMS has many CMS packages installed for you to try out and learn from. An excellent resource.

Design Principles for Content Management Applications

I’m working on a content management application – the part of the content management system the authors and administrators use – and jotted down a few principles to follow. They may not be applicable in every case, but expanding along these lines might lead to some design patterns.



  • Manage content, not pages. This makes content reuse easier.

  • Reuse existing content when possible. The interface should make it easy to


    do so.


  • Content should improve the user experience. When deciding whether to reuse


    content or create new content that will facilitate a significantly better user experience, create new content.


  • Store content once: Do not create (or allow the user to create) copies.

  • Facilitate quick updating: Reduce need to update the site through less


    convinient processes, such as uploading templates outside of the CMA.


  • Content is valuable: Content takes a long time to create and update. Do


    not delete or expire content unless absolutely necessary. In general, more content is better.


  • Separate content from presentation: wherever possible, separate display


    text from HTML and other formatting information.


  • Design CMA display to resemble CDA: when possible, this helps to present


    authors with a familiar visual design