Single Sourcing: Building Modular Documentation
Scott Abel writes "Kurt Ament has hit the nail on the head! His latest effort, Single Sourcing: Building Modular Documentation is a valuable reference for those of us who seek to save time, effort, and money by implementing a productive method of creating information once and reusing it often." It's not a big book -- just 246 pages. Read on for Abel's brief review.
Single Sourcing: Building Modular Documentation
author
Kurt Ament
pages
246
publisher
William Andrew Publishing
rating
10
reviewer
Scott Abel
ISBN
0815514913
summary
How to build modular documentation you can re-use in different formats for different audiences and purposes
Ament covers the issues -- step by step -- that many others only discuss. He lays out a simple roadmap, complete with real world examples that have worked -- or not worked -- for his clients.
In Chapter 1 (About Single Sourcing), he carefully defines "single sourcing" and explains related concepts (reusable content, modular writing, and assembled documents) in ways that are easy to understand and free of techno-jargon. And, he does us all a big favor by addressing the negatives associated with using technology to assemble documents by explaining that it actually takes more creativity to write content that can fit into multiple media, for multiple audiences, than it does to continually rewrite information over and over again each time it is needed.
Chapter 2 (Building Documents) and Chapter 3 (Structuring Content) are of particular value to those seeking to understand the shift in thinking required to master single sourcing. Writers, programmers and managers will all benefit from these chapters. Each chapter is packed full of tips and examples you can begin using today!
Chapter 4 (Configuring Language) explains how to "configure" your writing to support and increase usability while Chapter 5 (Leveraging Technology) touches on issues including conditional text, conventions, localization, translation, variables and more. As are the previous chapters, Chapter 5 is written in clear, concise language and is not a chapter business types should skip. In fact, it's just the opposite. Managers and decision makers need to understand the concepts explained in this chapter because many of the benefits a single source strategy can deliver are made possible by combining good planning with the right technology. And, while this chapter is certainly not about selecting software tools, the author helps his readers understand some of the issues they will need to understand as they begin thinking about their strategy and the types of functionality they'll need to support with the tools they select.
What I like most about "Single Sourcing" is that Ament went straight for the meat of the issues. He doesn't belabor points or confuse the reader by jumping back and forth from subject to subject (as so many poorly written IT-related books do). Instead, he supplies us with a book you can read in an afternoon and use the information contained within the next day at work.
But, be forewarned. You're going to want your sticky notes and your highlighting markers nearby. Chances are you'll be using them a lot!
In Chapter 1 (About Single Sourcing), he carefully defines "single sourcing" and explains related concepts (reusable content, modular writing, and assembled documents) in ways that are easy to understand and free of techno-jargon. And, he does us all a big favor by addressing the negatives associated with using technology to assemble documents by explaining that it actually takes more creativity to write content that can fit into multiple media, for multiple audiences, than it does to continually rewrite information over and over again each time it is needed.
Chapter 2 (Building Documents) and Chapter 3 (Structuring Content) are of particular value to those seeking to understand the shift in thinking required to master single sourcing. Writers, programmers and managers will all benefit from these chapters. Each chapter is packed full of tips and examples you can begin using today!
Chapter 4 (Configuring Language) explains how to "configure" your writing to support and increase usability while Chapter 5 (Leveraging Technology) touches on issues including conditional text, conventions, localization, translation, variables and more. As are the previous chapters, Chapter 5 is written in clear, concise language and is not a chapter business types should skip. In fact, it's just the opposite. Managers and decision makers need to understand the concepts explained in this chapter because many of the benefits a single source strategy can deliver are made possible by combining good planning with the right technology. And, while this chapter is certainly not about selecting software tools, the author helps his readers understand some of the issues they will need to understand as they begin thinking about their strategy and the types of functionality they'll need to support with the tools they select.
What I like most about "Single Sourcing" is that Ament went straight for the meat of the issues. He doesn't belabor points or confuse the reader by jumping back and forth from subject to subject (as so many poorly written IT-related books do). Instead, he supplies us with a book you can read in an afternoon and use the information contained within the next day at work.
But, be forewarned. You're going to want your sticky notes and your highlighting markers nearby. Chances are you'll be using them a lot!
Other resources:
- Kurt's site: http://www.infotektur.com
- Book site: http://www.infotektur.com/books/singlesourcing/ind ex.html
Scott Abel (abelsp@netdirect.net) is a content management strategist who assists his clients in planning and preparing for content management initiatives. Scott is a frequent presenter at industry and professional service seminars, an instructor at Indiana University Purdue University at Indianapolis Community Learning Network, and vice president of the Society for Technical Communication (STC), Hoosier Chapter. You can purchase Single Sourcing: Building Modular Documentation from bn.com, though new copies are currently out of stock. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This would seem to be more of a reason to avoid modular doco. Creativity is not, shall we say, plentiful? at the typical workplace. And often, it isn't wanted when it is available.
Aptal soru yoktur; sadece merakli aptallar vardir.
It seems that no matter how much I spend creating documentation, the users of the system don't use it, don't know how to access it, won't use it.
I say take your money and buy a book on user interface design. The problem is not how well written the docucumentation is; it is the fact that we NEED the documentation.
Open source development is my way of competing with the low-cost programmers in India...
One thing I've noticed over the time i've spent surfing is that most online content has to get straight to the point with as little fuss as possible. If an article can't capture the interest of the reader within the title, or follow up within the first few sentences, people often quit reading and move on. I actually wonder how many people RTFA in slashdot.
Very different from books, where the author is more able to exert without much fear of whiplash...
(Calm down, it's meant in gest.
use XML. provides re-use of content. no big deal. and now there are collaborative XML editors, which allows authors to work on various sections of the same document.
Consensus is good, but informed dictatorship is better
In a similar vein, Scott Abel has demonstrated how to use the same review for multiple audiences.
Why not just submit a link, Scott? Sheesh.
....using Maven's xdocs, you can generate both HTML and PDF docs from the same XML source file.
We use this on GForge and it works pretty well....
Tom
The Army reading list
I guess we've all gotten used to artificially inflated monster technical books, where it's expected that Learn Java 2 in 24 Hours needs to be 950 pages or it's crap.
Here's a clue: Those big books are hugely padded by:
1. Large margins so there can be a little note every few pages.
2. Repeated program listings, also with huge margins.
3. A hundred or more pages of fluffy introductory chapters ("What is a programming language?").
4. Massive redundancy.
Personally I'm waiting for the return of slim, readable books.
I think that a lot of this information is aimed at documentation professionals (technical writers, content strategists, knowledge management system workers, there are a lot of titles) who are very creative and love to work with these systems, rather than analyst/developers who view documentation as an evil waste of time.
From personal experience, I know that it's not that difficult to mark text as "internal use only" so the developers can quickly find the names and values of parameters and "end user only" so that users who actually use the compiled system can see what the different options are.
I think that the issue is less of "creativity" than it is of thinking through the issues and handling them consistently.
Even if I have quite a few books on computer science, I still use www much more. It has far more than 246 pages and is near fully indexed through Google. And, cut'n'paste makes my life much more easier.
Paper is near passé.
And, new topics like this is often extensively referenced at popular sites like Slashdot; do yourself a favor and check it out!
The Single-Source SIG (special interest group) of STC (Society for Technical Communication) defined single-sourcing as "using a single document source to generate multiple types of document outputs; workflows for creating multiple outputs from a document or database source."
For more information:
http://www.stcsig.org/ss/index.htm
I remember providing input to a tech writer, then red-lining the first draft to the point that rewriting the entire document seemed necessary. While I would rather write PHP or scripts, there is no one who better understands code than its author.
Today's on line documentation provides a variety of methods for an engineer to provide documentation. Such examples are:
How to's and Mini How To's
FAQ
Web page with screen shots
Forums and Blogs
That being said, I am reminded of a conversation with Clyde, a retired avid sailor, who talked about stories in "SAIL" magazine. "First person stories written by sailors usually suck!" he said. "Give me an article written by a professional writer. They're easier to read."
It's easier to write documentation than to try to tell someone what to write. ....Now if only I can break away from coding long enough to read this document on creating documentation.
This review was stimulating, and filled me briefly with hope, then I crashed after pondering a bit. I'd like to think that we could look back on this someday as a turning point of some sort, perhaps the foundation of a new engineering discipline of documentation. Of course, lots of people thought (and probably still do) that SGML was the foundation and now we're building walls. And maybe it was, but SGML (and the derivatives HTML, XML, and future arbitrary useful DTD to come) suffer from some problems - external and cultural mostly. The technologies are somewhat complex, and there is a general lack of understanding about how to apply the technology to advantage.
The core concept of arbitrary display and formatting of structured text, which appears to underly this new work, remains alien to most of the people making business decisions and authoring documents. When you combine a vacuum style lack of good tools to author documentation in the target technology with a flood of readily available "old paradigm" authoring tools for making stuff look pretty (word processors and desktop publishing stuff) you get the explosion in documents that was seen in the 90's. You also get the tremendous resource drain as these docs are updated and reformatted for subsequent generations of word processor formats that continue to mix content and presentation. We also see a direct parallel problem with the amazing fanatical market success of programming environments where logic and presentation are mixed (MS.asp, PHP, etc.) over object oriented tools. Far, far more dynamic web sites are built "the old fashioned way" despite the availability of decent, even "better" authoring tools that exist in the object oriented world.
Unfortunately most organizations that produce and use documentation do so as an aside at best, or an afterthought at worst. Organizations typically don't value documentation highly enough to create job descriptions for skilled technical writers. Corporations with IT staffs of hundreds of people - managers, systems administrators, help desk workers, developers -- often don't have a single Technical Writer.
Take the help desk as a primary example. Just about every big company produces volumes of documentation for use by the help desk workers. Sadly, much of that documentation is created after the fact, by desperately struggling front line help desk workers themselves, who randomly try to assemble facts and myth about problem resolution. The folk creating the systems are generally not given sufficient time to develop and maintain documentation, often barely enough resources to develop the system in the first place, before moving to the next task. It's rare for companies even to realize the blatant "in your face" opportunities to save money by investing in better documentation.
If we can't get developers to understand this basic concept, how can we get front line help-desk workers who are writing documentation for themselves out of desperation and under the clock of "you still gotta answer twenty calls an hour and resolve 19 of the problems before hanging up"? Even better, how do we get a bureaucratic organization to invest in skilled technical writers?
It seems to me that to get to this point we will need to create authoring tools that are so powerful and easy to use that the authors of documentation don't need to think about the separation of content and formatting -- it "just happens" in the background. Anybody who writes such a tool gets to spend the rest of their life retired on a beach, earning twenty percent and drinking rum from hollowed out pineapple shells with little paper umbrellas in them.
Things should be made as simple as possible, but not any simpler. -- Albert Einstein
I would find these reviews a lot more useful if there was more disclosure of the reviewers biases.
How do I know the author isn't benefiting from writing his glowing review here in some way? I'm not accusing the reviewer of any misbehavior here, but when the only negative of a book is that "But, be forewarned. You're going to want your sticky notes and your highlighting markers nearby" I have to question the bias of the reviewer.
Sample review checklist
1. Have you contributed to this book or been cited within the text?
2. Do you have a personal or business relationship with the author(s) or publisher?
3. Do you sell services related to the books topic?
"Honest officer, I was just eating a can of pringles and I thought, 'Hey! Maybe someone provides free internet service outside this large office building!'"
"Everything you know is wrong. (And stupid.)"
Moderation Totals: Wrong=2, Stupid=3, Total=5.
Too many engineers look at tech writers as clueless English majors, useful only for cleaning up spelling and grammar. Or arrogant, burned-out former programmers who think they know everything, and really know very little. True, there are a lot of tech writers like that, and their product is not worth reading -- assuming anybody can read it. But there are also serious, motivated tech writers who know a lot about communicating technical subjects.
I like to think I'm one of those. I'm biased of course, but I have been told, more than once, that nobody understood how a product or technology really worked until I sorted a huge pile of random facts into a useful form. (This is especially nice to hear when it comes from the people who designed the system in the first place!) I'm probably not the best in my field, but I think I earn my pay. (Well, no pay right now, industry slump y'know. Oh well.)
Of course, not all documentation really needs a tech writer. You sound like you mostly write little end-user apps. For those, I agree, a good GUI is more important than a good manual.
But consider my own specialty, the API manual. How many of those have you seen that don't make you scream with frustration? Writing good API docs is hard. (Lotta fun though, at least for a compulsive nit-picker like me.)
And writing isn't as hard as maintaining. My last job involved a development framework with more than 10,000 APIs. Which was maintained in RTF. (Please don't laugh, it's not funny.) And which had to be single sourced for four different product targets. (Windows and Linux, two different programming languages.) And, oh yeah, my boss thought that version control was a silly idea.
Why was this documentation base such a mess? Because at this company, the "nobody reads the docs" mentality prevailed. Even the writing team was infected with it. And this self-fulfilling cynicism really hurt the product. The API has a reputation for being obscure and hard to use. Whereas it's really pretty elegant, and even easy to understand, if properly explained. In this case, bad documentation is doing a lot to consign a superior product to undeserved oblivion.
I should end with that pithy comment, but I have to drag the discussion back ontopic. Because of the company's indifference to doc issues, they're only now converting the documents from RTF to markup, something they should have done 10 years ago. Alas, the project is headed up by an intelligent but technologically clueless individual who thinks a little XML transform experience makes him an expert on content management. (Sour grapes? I guess. Then again, I did recommend hiring the guy.) Last I heard, the project was months behind schedule, and was close to being in deathmarch mode.
So I'm deeply interested reading Ament's book. Maybe it'll be useful on my next job. But even if it's well-written, I don't think I'll enjoy the read. Too many lost opportunities.
Design by contract won't make your code any more self-documenting than design by committee.
If you want self-documenting code, write something ridicoulusly simple. If you are doing something hard, you need explanation beside the code (unless you assume that everyone reading the code will be a domain expert, but in that case I wouldn't call it self-documenting).
Eiffel isn't even designed to be self-documenting. It is designed to facilitate run-time (and in some very few cases: static) checking of program invariants, preconditions and postconditions. This will help for correctness, but not much for documentation. In many cases, the code will be easier to understand without them. (Not that I would recommend it, I do like DbC, but only as means to correctness, not as documentation).
Sure, writing down assertions will in some cases help you in how to use an interface, or help you with other underlying assumptions in the code, making it easier to change something without breaking it. But it will never tell you anything about what the code is supposed to do, why it's supposed to do that, and why this way has been chosen to do it.
Now, go re-read your Eiffel book, and come back evangelizing it when you understand it's purpose!
- There are no affordable off-the-shelf content managment for most technical documentation apps. Yes, there's a lot of content management software out there, but it's either specialized in some other area (mainly web applications, 'cause there's a lot of money to be made there) or it's a general-purpose CMS platform that takes a lot of work to adapt to a particular purpose.
- There are lots of XML editing products out there, but few of them are serious products. Some dweeb combines a Java editor component with an XML parsing engine, and behold! A collaborative documentation tool! Not that easy.
- Retraining writers to think in XML terms is a bitch.
- XML production tools are still pretty immature. XSL-FO will probably stabilize soon, but I wouldn't rely on it yet.
Eventually, XML will take over. But it's gonna be a long, painful transition.XML-specific databases are very intriquing. Many have impressive feature sets. But it's still a work in progress. There's nothing out there you can buy and use without spending a lot of time adapting it to your specific project. Even without license fees (usually pretty high) the up-front costs are huge. Try getting your boss to approve spending a lot of bucks on a product with no track record!
A few solid products are beginning to appear, but they all have serious limitations. I'm really taken with XMetal, but it only runs on Windows. (Even if you're not an open source zealot, you have to be cautious about a product that won't run on the platform your engineers use. Anyway, XMetal now belongs to Corel, which is busy imploding.) XMLSpy is powerful and cross-platform, but its editign features are clunky. FrameMaker 7 is OK (assuming you don't totally hate FrameMaker's primitive GUI), but creating or modifying an XML application for it is a nightmare. And there's really nothing else.
Blockquoth the poster:
You're right -- but it takes a LOT more than that to produce clean, usable documentation. And yes, I speak from experience; I've been a technical communicator for more than eight years, and I've spent the last two years just cleaning up existing documentation written by programmers.
The problem I've found is that programmers tend to write documentation the same way they write code: they see a project as an assemblage of individual features and widgets, and they put most of their effort towards ensuring each of those features works correctly. The fundamental concepts that tie the features together into an application are largely taken for granted.
As such, the documentation these programmers produce is technically complete and accurate but almost completely nonsensical from a real-world user's point of view. There's no unified flow or top-level view. The user is basically expected to already know what they want to do, so that all they need to do is look up how to do it.
That's why I don't trust these efforts to make documentation "modular." It's impossible to develop a coherent narrative in such a format, and you can't really educate the user without that narrative.
Sorry, I've seen first hand "single sourcing" hard at work. It's the biggest boondoggle since the "synergies" of the late nineties.
Writing good documentation is hard work. It seems to me that the only people who benefit from "single sourcing" are the people who are writing these books and giving overpriced lectures to rooms full of unemployed tech writers.
Ultimately it won't improve the clarity or usefulness of your documentation. It won't provide you with the ability to understand the subject or the audience any better.
Don't get me wrong, if there were a magic-bullet that single source claims to be, I'd be all for it. It would be nice not to have to worry about document formatting. But personally, I think it's simply another way for organizations like STC (The Society for Technical Communication) to filch money from their members.
Notes From Under *nix: blas.phemo.us