The advice we gave earlier in the chapter about reading Unix
documentation can be turned around. When you write documentation for
people within the Unix culture,
don't dumb it
down
. If you write as if for idiots, you will be
written off as an idiot yourself. Dumbing documentation down
is very different from making it accessible; the former is
lazy and omits important things, whereas the latter requires
careful thought and ruthless editing.
Don't think for a moment that volume will be mistaken for
quality. And especially, never
ever
omit
functional details because you fear they might be confusing, nor
warnings about problems because you don't want to look bad. It is
unanticipated
problems that will cost you
credibility and users, not the problems you were honest about.
Try to hit a happy medium in information density. Too low
is as bad as too high. Use screen shots sparingly; they tend
to convey little information beyond the style and feel of the
interface. They are never a good substitute for clear textual
description.
If your project is of any significant size, you should probably
be shipping three different kinds of documentation: man pages as
reference material, a tutorial manual, and a FAQ (Frequently Asked
Questions) list. You should have a website as well, to serve as a
central point of distribution (see the guidelines on communication
in Chapter19).
Huge man pages are viewed with some disfavor; navigation within
them can be difficult. If yours are getting large, consider writing a
reference manual, with the man page(s) giving a quick summary,
pointers into the reference manual, and details of how the program(s)
are invoked.
In your source code, include the standard metainformation files
described in the Chapter19 section on open-source release
practices, such as README. Even if your code is
going to be proprietary, these are Unix conventions and future
maintainers coming from a Unix background will come up to speed faster
if the conventions are followed.
Your man pages should be command references in the traditional
Unix style for the traditional Unix audience. The tutorial manual
should be long-form documentation for nontechnical users. And the
FAQ should be an evolving resource that grows as your software support
group learns what the frequent questions are and how to answer
them.
There are more specific habits you should adopt if
you want to get a little ahead of mid-2003's practice:
-
Maintain your document masters in XML-DocBook. Even your man pages
can be DocBook RefEntry documents. There is a very good
HOWTO on writing manual pages
that explains the sections and organization your users will expect to
see.
-
Ship the XML masters. Also, in case your users' systems don't
have
xmlto(1)
ship the troff sources that you get by running xmlto
man on your masters. Your software distribution's
installation procedure should install those in the normal way, but
direct people to the XML files if they want to write or edit
documentation.
-
Make your project's installation package ScrollKeeper-ready.
-
Generate XHTML from your masters (with xmlto xhtml)
and make it available from your project's Web page.
Whether or not you're using XML-DocBook as a master format,
you'll want to find a way to convert your documentation to HTML.
Whether your software is open-source or proprietary, users are
increasingly likely to find it via the Web. Putting your
documentation on-line has the direct effect of making it easier for
potential users and customers who know your software exists to read it
and learn about it. It has the indirect effect that your software
will become more likely to turn up in a Web search.