Writing A Functional Specification - Hitting The High Notes (
Page 8 of 9 )
At this point, you have all the information needed to begin writing the
functional specification. Here's a list of the high notes - make sure you
hit them all!
* A very, very important rule of creating specifications is to be consistent
and extremely precise in your use of words. For example, if you're using the
word "function" to indicate the, well, functions of your software, you
shouldn't at any point switch to "features", "commands", "menu items" or
"actions". To this end, make yourself a glossary of the terms that you're
going to use right at the start, and stick to them consistently. Add this
glossary to the end of your specification so that your readers have a ready
reference, and to ensure that developers can communicate with each other
using the right words.
* Conventions in the document lead to patterns that the users can grasp.
They then start expecting information in a particular format, thus
increasing their level of comfort with the document. Using consistent styles
also speeds up assimilation of the information, and helps spot particular
information easily on re-reads.
* Headings are a powerful tool in making a huge mass of text look
manageable. A common model is that as you go deeper in a particular topic,
you indicate that by descending prominence of headings. So, all top level
headings will be, say, in a large font size and bold typeface, with the next
level taking a smaller font size, and so on. You might also want to number
the headings to help users understand the grouping of information.
* Use bullets and numbering to break up complex concepts into simpler,
smaller information nuggets. The convention here is to use numbering for
sequential information only and bullets for information that is best
presented in points instead of a paragraph. Bullets also allow you to group
together points related to a concept and ascribe them levels of importance.
* Use screen grabs, schematics or flow diagrams to increase the efficacy of
your document. Since a functional specification also includes information on
what the user will see in the application, it will include schematics,
screen flow diagrams and sample screens. These screen grabs will be used by
the developers to ensure that the final product conforms to what has been
decided in the specification. Ensure that you are consistent in your usage
and labeling of screenshots.
* Ensure that nothing is left open to interpretation. Since this document
will be used as a guideline for the actual implementation of the
application, it's important that it be clear, concise and accurate at all
times. Ambiguity and a failure to resolve troublesome points are sure signs
of trouble in the future.