3 Things Every Developer Needs to Know about Content Management
Content management is not necessarily about the software we use to manage content, any more than commuting to work by car necessarily is about driving a Chevy, or programming is about using one vendor’s compiler. Don’t make the all-too-easy mistake of generalizing from limited experiences. Chances are, if you’ve had any content management experience, it’s probably been with that evil beast we know as Microsoft SharePoint (eeeww). CMSs are not all like SharePoint, with weird Windows-only integration, finite customization options, and the utter dependency on someone “smarter” than you to get anything done. I’ve worked with several web-based CMSs, and each has its strengths and weaknesses.
But there’s so much more to content management than the CMS! Managing information is not just for IT people. There’s a process that needs to happen, outside of the technology, and that’s what we call Content Management. Everyone does it all the time, every day, without necessarily recognizing that we’re organizing, prioritizing, or compartmentalizing information. Do you use Google+, LinkedIn or Facebook? You’re managing information!
Here are three things I want you to think about the next time you get involved with a content management project.
1. Design != Function
Most Web developers had an "Aha!" moment when they first grokked CSS. They realized that there were good reasons to separate HTML from its visual presentation, beginning with the ease at which one could update a webpage. I probably don’t need to tell you about those benefits, right?
So for heaven’s sake, separate design and function! They're not the same thing!
Application design and functionality are two entirely separate things! Yes, they are interrelated and depend on one another. But that does not make them the same thing. Say it with me: Design and function are not the same thing.
Why do we lump them together? Because we looove when useful functionality is combined with a beautiful design. If it’s pretty, it’s more likely that people want to use it. We apply this concept to furniture, shoes, clothing…so why not to software?
But there’s a fine line between the design and function, and as a developer, you should know better than anyone else where that fine line occurs. As you have probably learned during one project-from-hell, you can put lipstick (a GUI) on a pig (the system), but that doesn’t mean it’s going to perform the function you want, much less look nice doing it.
Content management – as a process, long before we get to software – helps developers and users separate the system functionality (what the software does) from its design (the UI components, how it looks) from the data that is stored in the system.
Or to put it another way: Separating design and function makes life easier for you. If you use a CMS and you design it with even the smallest bit of thought, never again will you the developer have to respond to a user who asks you to update application data. Unless you like getting emergency phone calls to ask you to change someone’s user login information, or to edit all the copyright information at the bottom of the site’s webpages.
A CMS manages content, makes it accessible, ensures that it is easily editable by the people who actually care about the data, and has all those other bells and whistles that your users demand. The design sits nicely on top, tying everything together and making it all look good. And the absolute best part about a CMS? Your users can’t accidentally muck up all your hard work. Why? Because Design, Function, and Content are all nicely separated.
2. Ultimately, it’s about making workflow easier for the users.
Most business applications exist for the purpose of managing some kind of workflow: Creating data, manipulating it, displaying it, getting someone to approve it, moving it through some kind of pipeline. Most of the software we create is meant to help along that process. Because developers spend so much time thinking about the process – the application’s flowchart – it’s easy for us to forget that the blood in that body is the content the business generates, disseminates, and manages. It might be documents; it might be cat videos; it might be sales database records. But it’s content, and making it accessible and easy to maintain is your job.
All too often, developers post content, when really the users could and should do it themselves. The users know which information is important to include in the HR listing, or the product marketing sheet, or the About Us page on a company website. Developers take on data entry because it’s glommed together with the application design process… simply because you haven’t separated the components of the software – the content, functionality, and presentation – in a manner that helps everyone’s workflow.
This does not imply “fault.” When you deploy a new application, your users might seem helpless and lazy about entering data because they’re scared of the new tool. It’s your goal as a developer to help teach them to shift their thinking. Users own the content, from beginning to end, or at least they should. That includes how their data is managed and accessed.
Users, developers and everyone in between needs to think about the content. Help your users realize that a huge part of Content Management is taking ownership of their content. Help them get over the fear of the impending new tool and focus on the content itself.
Who uses the content you maintain? Ask yourself this every time you have a new piece of content to manage, categorize, or sort. It’s easy to forget when you write the content or when you’re just the person in charge of publishing it. Don’t forget who reads it. It may be just words on a page to you. But to the readers, they live and die (career wise, not necessarily literally) by what you’re communicating to them in that document.
Content management is driven by your users. You have a lot of different kinds of users. Every single one of them is going to tell you they have different needs to be met. And they’re all going to want something slightly different, that’s for sure. But these users offer valuable input to share (once you get past the whiney bullshit “but I want this” crap). Listen to them: They won’t tell you in development terms, but buried in their expectations are explicit tech specs. Call in your tech writers or business analysts to sort through the BS; get the user’s demands sorted out into wants and needs that define what you’re going to build.
And remember, they won’t use it if they don’t like it. Get your users thinking about taking responsibility and ownership of their content and what they need to support it. Let the users be your guide.
3. Your content sets the tone for what you need from a system.
The real meat of Content Management is the process we go through to make some sense out of the mountain of information we maintain and consume. To make sense out of all this stuff, you’ve got to keep it organized.
Sure, if it’s just you and you’re a pretty organized person, you can manage all that content fairly easily in a way that makes sense to you. But chances are you share a ton of documents every day. You – and the users whom you support -- have documents on intranets, shared drives, personal drives, and let’s not even mention the hard copies people have been hoarding. If you’re going to share content, you’ve got to keep it organized in a way that makes sense to everyone. If you don’t, you end up recreating the same information in multiple places over and over again.
A CMS, properly used, lets you get your shit together. It helps you organize content and apply some kind of method to your madness. Yup. That there is content management. Did ya see it? That act of organizing your stuff…that’s it! You’re doing it! That’s managing your content!
You can get a big expensive tool to “help” you do that. You can find an open source system, such as Plone, Drupal, or Joomla, with most of what you need. These make it easy to customize for unique requirements and have communities of developers building free-to-use plug-ins for commonly-used functionality. Or you can rig up some kind of makeshift system. As with other programming problems, picking the best tool is a lot easier when you know the scope of your needs; but keeping your information organized from the start is the absolute key.
The function and design should complement the content. Whatever system you use, it should be flexible enough to support whatever type of content your users produce. If they’ve done their due diligence and organized their content in a coherent way (not that you can count on that…), you’ll see the site architecture in that organization. As a developer, this is your primary role in implementing a content management system.
Your content creators, the writers, need to step up here. They probably already categorize what they write, somehow. Apply their method to your CMS. Put related content in folders, come up with a taxonomy, tag documents with keywords… whatever the latest thing is, however you want to do it, so long as it’s organized. Once your content set is organized, you can put it into just about any website you want. Take the time to think it through. Make sure it’s flexible and something you can grow with. Change is certain, so be prepared for it.
Solid content management – the kind that’s build to grow and last- puts the users and the content first. Get and keep your users and your content organized. Enforce that organization, but be flexible enough to know when it’s time for changes. Content management must absolutely focus first on the organization of content. The development part really only comes in towards the end. If you don’t have a handle on your content set, then no system in the world will help you manage your content.
About the author:
JoAnna Springsteen is a Senior Technical Writer based in Des Moines, Iowa. JoAnna has been writing, technically, since 2002 in industries ranging from insurance and financial to hardware and public relations. In her free time, JoAnna spends her time cooking, baking, or looking at funny pictures of cats on the Internet.