Documentation is such an important part of any system.
It helps everyone:
Documentation helps the stakeholders in any system make sure
they can articulate the ideas that are in their heads. This is
where a functional spec comes into play.
A function spec, as you can probably guess from the name, is a
document that specifies all the functionality of the system.
A functional spec starts off with a brief overview of the system
and what it hopes to achieve. Then this is breaken down into
manageable, logical sections.
REMEMBER this is NOT a technical document. It
is a "plain speaking" document that anyone, technical or otherwise,
could read and understand.
Once all the elements have been broken down into manageable
chunks, they are expanded upon, getting down to the nitty gritty of
what each part of the system does. We like to mock-up screens and
describe what each one will do. This will give you a clear, visual
way of making sure nothing is missed.