Sunday, July 31, 2011

Parnas on Requirements Engineering

A must read article from David Parnas on the CACM of Jun/11 tackles the problem of lack of discipline in performing proper Software Engineering.

I am quoting below some of the important remarks, but go ahead and read the full article (here).

“Software development suffers from an infirmity best called Premature
Termination; the symptoms are that developers begin to do something
useful but stop too soon. The result is something that is not only
not very useful, but often harmful.“

“Nowhere is premature termination more evident than in
the field sometimes called "Requirements Engineering" (RE).”

“Programmers are chosen for their ability to design good algorithms and data structures as well as their knowledge of specific programming languages and
support environments. They should not be expected to understand the needs
and characteristics of the future users. Often, a programmer makes incorrect
guesses about the detailed requirements and, consequently, extensive
revisions are required (either before deployment or after users complain).”

“Such lists are a good start but considerable work must be done before one
has resolved the conflicts and ambiguity in such a list to produce a
complete and precise software requirements document, one that tells the
programmers what they must build to satisfy the agreed wishes. It isn't
wrong to produce a wish list but it is wrong to hand it over to the
programmers as a requirements document.”

The Risks of Stopping Too Soon
David Lorge Parnas Communications of the ACM
Vol. 54 No. 6, Pages 31-33