You are not logged in Log in Join
You are here: Home » DevHome » Documentation » DocsProcedures » DocumentationStyleGuide

Log in
Name

Password

 
 

History for DocumentationStyleGuide

??changed:
-
Documentation Style Guide

  *This is still a work in progress, and no doubt commits some of the
  errors it tries to describe, or those described in The Elements of
  Style which it refers to.  If you have any comments or corrections to
  suggest about this document, please send them to* "[email protected]":mailto:[email protected].

  Clear writing is hard. Explaining a complex subject like computer
  software to a novice audience is difficult because you, the writer, are
  immersed in technical details before you even begin writing.

  Your task is to bring the reader to a level of familiarity with your
  subject equal to, or at least close to, your own familiarity.  Writing
  in an unclear way, or drowning the reader in technical details will
  confuse them, cause them to "skim" the material, and come away with bad
  or false impressions of you or your subject.

  This guide gives you practical advice, from my own writing experience,
  to help you develop clear, instructive, maintainable, and ultimately
  *valuable* software documentation.  What follows is a series of rules
  that you can apply to what you've written, or are going to write, to
  improve the documentation you produce.

  These rules do not attempt to cover the most common English usage and
  composition errors.  I consider the best resource of usage and
  composition rules to be "The Elements of
  Style":http://www.bartleby.com/141/ by William Strunk, Jr.  A follow up
  of this book, edited and expanded by E. B. White, is also available (and
  is the most common edition found in bookstores).  *The Elements of Style*
  is indispensable for anyone whose task is to write clear English.  While
  the rules presented here are inspired by, and often reiterate, rules and
  concepts from *The Elements of Style*, their focus is primarily toward
  writing clear documentation for computer software, or anything
  equivalently technical.

  *Michel Pelletier*

  1. Speak directly to the reader.

    Address the reader in the second person as "you" , and use the
    possessive "your".

    Use first person sparingly and only to refer to yourself: the writer.
    "We" should not be used to *include* yourself with the reader, but only
    to refer to multiple authors.  Here is an example of text that includes
    the author with the reader::

      "When we add a new method to this class, it will override any methods
      with the same name defined in our subclasses."

    This is often referred to as "The Royal We".  Fixing this is almost
    always a simple transformation::

      "When you add a new method to this class, it will override any methods
      with the same name defined in your subclasses."

  2. Be assertive.

    Do not speak in a weak, indefinite, or probable way.

    As described in *The Elements of Style* (rule #11), use the active
    voice.  This is so common an error it is worth repeating here with some
    examples.  Active voice means engaging the subject of a sentence with
    an active verb.  The opposite, passive voice, usually involves saying
    that the subject constantly *is* doing some infinitive action.  For
    example::

      "Something to remember about ZPublisher is that it will refuse to
      publish any method that doesn't have a doc string."

      "The standard convention for product management is to provide a
      series of tabbed management screens."

    Here are the same sentences speaking in active voice.  Notice how this
    sometimes involves rearranging the sentence::

      "ZPublisher refuses to publish any method that lacks a doc string."

      ShaneH (2000-11-01) -- Nitpick: this revised sentence does not
        emphasize the point as well as the first did.  It needs to be
        phrased in such a way that the reader is tempted to write it
        down or read it twice.  What would you suggest?

      "Tabbed management screens provide a standard convention for product
      management."

    Do not speak in probable terms like may, maybe, or probably.  This is
    often the unconscious effect of writing documentation before the
    software it describes is written.  Be assertive, and state what is, not
    what may be.  "Maybe" can be struck entirely.  "May be" and "probably
    is" can be replaced by "is".  "Should" sometimes falls under this rule
    also.  

  3. Explain key ideas in simple terms.

    Documentation should explain key ideas to the reader.  Often, these
    ideas are not obvious to the reader when they use the software, and
    therefore must be explained.

    Writers are tempted to explain key ideas in terms of concrete technical
    details those ideas are based on.  Readers, however, are often
    uninterested (at least initially) in the technical details that
    implement a key idea.  Would you describe a building to a cave-dweller
    as a shelter from the elements, or a collection of bricks, boards,
    nails and other materials?  Would you describe a car as an object that
    transports you from one place to another, or as a machine with pistons,
    brakes, wires and other parts?  The first of these descriptions are the
    key ideas, the second of them are the details that implement the key
    ideas.  If your audience seeks implementation details and is already
    familiar with the key idea then detailed explanation is correct.  If
    you audience is the equivalent of a cave-dweller to your subject, then
    you must avoid implementation and focus on the key idea at first.

    When a reader fails to understand the meaning of documentation, it is
    usually because they encounter a word they do not understand.  Clear
    explanation involves building a key idea in the readers mind using a
    succession of simple terms *they can understand*.  When you throw an
    implementation detail in the explanation before they key idea is
    completed the reader stumbles; resulting in confusion.  The reader
    skims over the technical parts that they don't understand yet, or
    can't understand yet, because you have not completed explaining the
    key idea to them.  For example, the first paragraph of a draft of
    user documentation for Zope's Python Methods states::

      "All of Zope's capabilities are provided by methods, one way or
      another. When you ask Zope for a URL, it first fetches an object from
      the ZODB and then calls some method of that object. The methods of
      built-in Zope objects are defined in Zope's source code, or in Python
      classes stored in Product modules on the filesystem. Additional
      object classes (and their methods) can be defined by creating new
      filesystem Products, and this is appropriate when the implementation
      of a class requires extensive access to resources (such as the
      filesystem) which should be carefully protected."

    Before readers can even begin to understand what this paragraph is
    really saying they must understand ZODB, methods on objects, built-in
    Zope objects, what or where Zope's source code is, Python classes,
    Product modules, the file-system, object classes (and their methods),
    file-system Products, and why implementing them involves a class if it
    requires extensive access to resources which should be carefully
    protected.  The first sentence should really say something like::

      "You can write simple scripts in Zope in the Python programming
      language with Python Methods."

    Students in Driver's Education do not learn how to use a steering wheel
    by being told about rack-and-pinions, Cardon shafts, toe, castor or
    double-wishbone suspensions.  None of these technical details are
    relevant to steering a car.

    ShaneH (2000-11-01) -- On the other hand, you should know your
      audience.  Mechanics and car buyers *do* want to be told
      about rack-and-pinions, etc.

  4. Use simple examples.

    XXX

  5. Avoid colloquial expression.

    Speak simply.  If your audience is global, you cannot assume your
    reader's native language is English.  Colloquial speech is unnecessary
    and distracting for a reader that struggles to understand not only the
    concept your are describing, but also the language you are describing
    it in.

      XXX

    Should be written as:

      XXX

  6. Provide answers, not questions.

    It is tempting to ask a question followed immediately by the answer.
    For example::

      "What if you want the reptile page to display something besides the
      welcome message? You can replace the *index_html* method in the
      reptile section with a more appropriate display method, and still
      take advantage of the zoo header and footer including navigation."

    The question serves only to introduce a concept, not really to ask a
    question of the reader.  State the concept directly::

      "To display something besides the welcome message on the reptile
      page, replace the *index_html* method in the reptile section with a
      more appropriate display method.  This still takes advantage of the
      zoo header and footer, including navigation."

    The result is a more assertive paragraph, one less sentence, and fewer
    words.

    This does not mean you should never ask questions, rather, you should
    ask questions to make the reader think about a possibility, or to
    engage their imagination, not to introduce a concept that can be stated
    directly.

  7. Revise sentences that say little or nothing.
[19 more lines...]