On 12 Apr 2011 at 12:25, Keith Monahan wrote:
You seem to indicate that this is overkill or
unnecessary?
I'm currently bringing QA to a place which has never had it. There
are no requirements document. Without one, software development and
the internal customer aren't often on the same page. Development
produces something that "kind of" meets the expectation, but doesn't
give them fully what they want because this hasn't been spelled out.
Feature creep happens.
I think it's useful. In a perfect world, people would be sober,
reasonable and without distractions. They'd write perfectly
transparent code with great narrative, so that there would never be
any doubt in the mind of the poor unfortunate who gets the job of
maintenance about what the thought process of the original author
was.
We don't live in a perfect world; therefore we have design documents,
test specifications, code review and (not unimportantly) coding
standards. In a team, this helps to keep the expression of the
design (as code) as that of a single personality.
Naturally, this assumes that people are willing to work within the
system. One particular nightmare I recall involved a compiler--the
frontend guy insisted on parsing to a binary tree; the backend guy
insisted that his input be an n-ary tree. Neither was willing to
give an inch, even though both conceded that the choice didn't really
matter. As a result, the only way we could make peace was to
introduce an intermediate layer that translated from one tree form to
the other. Had the decision been called out in a design document,
there would not have been the problem. But the two involved both
thought they'd get a jump on the design--code first and write the
design specification later and the devil take the hindmost.
I have design documents that I wrote over 30 years ago. While I
don't remember a line of code that I wrote or even the development
environment, I could probably re-implement what I wrote from the
documentation without a lot of trouble. If I had just the code, I'd
probably spend a lot longer scratching my head...
In today's world, I wonder if that methodology would be considered as
"quaint".
--Chuck