Everyone who writes safety critical software should read this
Wyatt
wyatt.epp at gmail.com
Fri Nov 1 06:52:00 PDT 2013
On Thursday, 31 October 2013 at 21:36:11 UTC, eles wrote:
>
> Yeah, maybe is a corporation culture to avoid the term "bug",
> but we always use the term "change request". Maybe it has a
> better image :)
>
Lately, I've instead been reframing my thinking toward parity
with Dijkstra. EWD1036 [0] is particularly relevant to this
topic:
"We could, for instance, begin with cleaning up our language by
no longer calling a bug a bug but by calling it an error. It is
much more honest because it squarely puts the blame where it
belongs, viz. with the programmer who made the error. The
animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation. The
nice thing of this simple change of vocabulary is that it has
such a profound effect: while, before, a program with only one
bug used to be 'almost correct', afterwards a program with an
error is just 'wrong' (because in error)."
As a bonus, my experience is it more readily encourages
management types to accept that fixing them is important.
> Normally, it is assumed that passing the tests proves that
> specifications are accomplished, so the software is perfect.
>
> This, of course, if the tests themselves would be correct 100%
> and *really* extensive.
>
Again from EWD1036:
"Besides the notion of productivity, also that of quality control
continues to be distorted by the reassuring illusion that what
works with other devices works with programs as well. It is now
two decades since it was pointed out that program testing may
convincingly demonstrate the presence of bugs, but can never
demonstrate their absence. After quoting this well-publicized
remark devoutly, the software engineer returns to the order of
the day and continues to refine his testing strategies, just like
the alchemist of yore, who continued to refine his chrysocosmic
purifications."
This passage comes just after he laments that "software engineer"
had been diluted so thoroughly as to be meaningless. (I'd
greatly appreciate if this term could be reclaimed, honestly.
Experience has shown me quite clearly that not every programmer
is an engineer.)
-Wyatt
[0]
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html
More information about the Digitalmars-d
mailing list