External Specifications

Many software systems will have one or more user manuals that serve as external specifications for the software. These external specifications tell users of the software how they're supposed to use the software.

These external specifications are written from the users’ point of view, so they should describe what users see.

These external specifications must be careful not to describe things users don’t see. That's the designers’ business. We don’t want the designers’ design freedom to be unnecessarily constrained by extraneous external specifications that describe things users don’t really need to know.

In external specifications, as in most system documentation, precision is more important than liveliness. When writing a novel, it’s a good idea to leave some things to the imagination of the reader. That’s not a good idea when writing an external specification. When every section of the specification says everything that needs to be said, the specification is probably going to be a dull read.

Pronouns, for example, can create ambiguity. If there's any way a pronoun could be construed as referring to something other than the thing intended, then the pronoun should be replaced by a less ambiguous noun phrase. In practice, that means you need to avoid most pronouns when writing specs. Prose without pronouns often seems verbose and stilted, but that's the price we pay for avoiding ambiguity.

For debugging: Click here to validate.