That's a very open question. It is just like asking "How many tables
should I use"? as though the number of tables had any meaning by
itself. The "Big Box" people, especially IBM, have studied the matter
while doing the best they could do in all respects. They found that
for any major release, by the time the specification was thoroughly
nailed down they had consumed 2/3 of all of the resources that would
be consumed by that release. That's right; 66 & 2/3 % of all
resources! And bear in mine that's for a project in which it was not
necessary to close the loop freeqeuently with the client,
My own experience includes some very reluctant client users and
managers who were serving as analysts who caused some projects to
really drag out. I've approached that 2/3 point several times.
The first real trick is to be clear on what you need for
specifications in order to get the job done. The core specifications
will have the same names across all projects but the amount of work
that goes into their creation and maintenance varies hugely. There is
no "one size fits all" .
My experience is that working with the client to develop the front end
documentation is the most important part of any project. When I get
the specifications nailed down, both the client and I sign them. That
becomes our "contract" and the measure of the project's completion.
That is the earliest point at which an accurate estimate for total
project cost can be made. Not a single piece of extra functionality
can be added to the project. New ideas will be addressed in a later
project or phasee.
There is a great book by Steve McConnell titled "Rapid Development".
Since Rapid Development was important to me, I bought it and read it.
It is filled with project development history and lore. Only when you
have read the entire book do you realize that he's never going to talk
about "Rapid". His unstated theme is that getting things right from
the outset is the only way to get to "Rapid".
My advice is to not worry overmuch about the percentage of
specification effort to total effort in a project. Like anything,
first get into the habit of doing things right. Then improve and
speed up the process. The quality and cost of the resulting
application are paramount measures.
HTH