====================================
Taken from: http://www.joelonsoftware.com/articles/fog0000000035.html
Painless Functional Specifications - Part 2: What's a Spec?
By Joel Spolsky
Tuesday, October 03, 2000
(Have you already read part one? If not, that's here .)
This series of articles is about functional specifications, not
technical specifications. People get these mixed up. I don't know if
there's any standard terminology, but here's what I mean when I use
these terms.
A functional specification describes how a product will work entirely
from the user's perspective. It doesn't care how the thing is
implemented. It talks about features. It specifies screens, menus,
dialogs, and so on.
A technical specification describes the internal implementation of the
program. It talks about data structures, relational database models,
choice of programming languages and tools, algorithms, etc.
When you design a product, inside and out, the most important thing is
to nail down the user experience. What are the screens, how do they
work, what do they do. Later, you worry about how to get from here to
there. There's no use arguing about what programming language to use
before you've decided what your product is going to do. In this series,
I'm only talking about functional specifications.
I've written a short sample spec which should give you an idea for what
a good functional specification looks like. Before we go further,
please read the sample spec.
Did you read it?
No you didn't. Go read it now and then come back, so we can talk more
about what a good spec should and shouldn't have in it. I'll wait here
for you. Thanks.
(waiting patiently...)
Read the rest of the article in...
http://www.joelonsoftware.com/articles/fog0000000035.html