Thursday, July 24, 2008

Architecting for Reuse

In the year 2000...

OK, Late Night fans imagine me--Conan O'Brien like--dressed in black with a flashlight under my chin chanting the above heading (which Conan continues to use even though we are long past 2000--it just has a nice ring to it).

By the year 2043 I predict that we will have written every sentence that we need in order to document anything that can get invented. At that point, it will be unnecessary to write any new sentences, and our job will be to assemble those we already have to meet the new needs. We will be in the age I now dub "Semantic Green" because the emphasis will be on applying resources to the reuse of what we already have versus creating wasteful, redundant prose. (By the way, music achieved this status in 1978; there has been no new music after that year.)

Some of you may say, "Mike, you're kidding," to which I reply, "Well, duh, of course I'm kidding."

Seriously, folks...

After hearing the reuse and content management talk now for years, I have suddenly found myself immersed in actually doing it. (Oh, I've dabbled with conditional text over the years, but that was the extent of it, and I was never in a situation where it seemed to be that important.) Although my prediction above was tongue in cheek, it describes a reality that is upon us today, namely, the purposeful reuse of content (versus the opportunistic reuse of content). The latter is epitomized by the phrase "Why reinvent the wheel" and the former by the phrase "Let's invent one wheel that will fit not only cars we build today but cars we might build tomorrow (or might be building in another plant right now that we don't know about)." OK, the latter phrase got a little wordy.

So I'd like to start a series of blogs for awhile that explore not only what it means to write for reuse, but also what it means to plan for reuse. And specifically I would like to examine what the role of an information architect is when it comes to reuse.

A few disclaimers up front.

  • I have drunk the DITA Kool-aid to the point that I am as blue as Pappa Smurf. A lot of what I will talk about comes from my DITA perspective, but I think it applies to any composition environment that tags content. And some of what I'll talk about doesn't even need that. I might talk about DITA a lot because that is what I use, but I will leave it up to the reader to translate the principles I examine into your environment.
  • Although reuse scales well within a content management system, it can still be planned for and used within rudimentary content management environments. If you can create folders, you've got a CMS. Anything above that capability is icing on the cake.

Benefits: The short list

I will talk more about benefits of reuse as we get into specific examples, but here is a quick summary:

  • Write once, use many--Don't have enough writers and have that nagging feeling you're writing what someone has already covered elsewhere?
  • Edit once, fix many--For all you smarty pants who said "Cut and paste does the same thing" above.
  • Write once, output many--Help in a chm and User Guide in a PDF? Using RoboHelp and FrameMaker?
  • Get it right, keep it right--Have a legally tricky warning or a product name that must be used "just so?"
  • Translate...once--No matter how many times and places it gets used!

The ontology of reuse

After I got my PhD, I promised myself I would use that word once a year. Ontology seeks to determine what entities can be said to "exist" and how these entities can be grouped according to similarities and differences (thank you, Wikipedia). In essence, then, our first question as architects is "What stuff can be reused?"

In DITA the central component of reuse is the topic. A topic is a self-contained bit of prose and is typically saved as a single file. Infomappers can relate a DITA topic to an information map, although it is not a common practice to save an information map as a discrete file. Information maps often get aggregated into chapters or a chm before being saved as a file.

Moving up the ontology chain, discrete DITA topics can be grouped by a defining file called a ditamap. Ditamaps can arrange DITA topics and even other ditamaps into coherent documents or sections of documents. Because a ditamap is a discrete file, it can be easily reused in multiple contexts.

Moving down the ontology chain, any component smaller than a topic can be reused if that component can be identified as a discrete component and given a distinctive ID. For example, a bulleted list exists within an html tag of "ul" so that is a potentially reusable component that can be snatched out of its topic and used elsewhere. Because XML is a semantic tagging architecture, XML documents lend themselves to very granular instances of reuse. You like that alert and want to use it elsewhere? Tag it, ID it and it's yours literally for the taking.

Next blog I will talk about some techniques and guidelines for reuse, and then we can move on to how to plan for reuse as architects.

No comments: