« on the topic of digital video and audio resources, broadly | Main | UV maps, channels, mattes: integrating 3D applications with After Effects »

The Unix philosophy as applied to documentation

I've been musing recently about the ways in which software engineering is similar to working on large-scale documentation projects. Just as there's a gulf between being a programmer and being a software engineer, there is also a gulf between being a technical writer and being an effective lead on a large documentation project. (I may get myself into trouble if I dwell on the analogous roles of computer scientist and information architect or editor.)

As I muse about these things, I return to an observation that I made a while ago about the similarities between the Unix philosophy as interpreted by Eric S. Raymond and principles for creation and management of large documents:

Rule of Repair: When you must fail, fail noisily and as soon as possible.

Rule of Modularity: Write simple parts connected by clean interfaces.

Rule of Clarity: Clarity is better than cleverness.

Rule of Composition: Design [documents] to be connected to other [documents].

Rule of Simplicity: Design for simplicity; add complexity only where you must.

Rule of Parsimony: Write a big [document] only when it is clear by demonstration that nothing else will do.

Rule of Least Surprise: In [document and] interface design, always do the least surprising thing.

Rule of Silence: When a [document] has nothing surprising to say, it should say nothing.

Rule of Economy: [User] time is expensive; conserve it in preference to [writer/localizer/editor] time.

Rule of Generation: Avoid hand-[writing]; write programs to write [documents] when you can.

Rule of Optimization: Prototype before polishing. Get it [correct] before you [copy-edit] it.

Rule of Diversity: Distrust all claims for "one true way".

Rule of Extensibility: Design for the future, because it will be here sooner than you think.

Just an idle thought for what is supposed to be a holiday.

Comments

Todd,
I really like this comprehensive list. The analogies are not so surprising considering, that writing documentation before writing tests, then code improves the quality on all levels.
And of course the documentation should see the reader more as a user, then an audience.

Enjoy your labor day.

Post a comment