4 ms·
Instead of first digging into the author's "Definition #3" and "Level 3 Design/Logic", I would recommend reading the 1985 paper "The Limits of Correctness" by B
by jasode 9y ago
Instead of first digging into the author's "Definition #3" and "Level 3 Design/Logic", I would recommend reading the 1985 paper "The Limits of Correctness" by Bryan Cantwell Smith.[1]
I think it's one of the top 5 papers every programmer should read. It's a short and easy read that makes one think about the limits of models, the limits of specifications, and the limits of formal verification. After grokking BCS's insights, there seems to be (an unintended) hubris in James Koppel's statement, "I now have two years experience teaching engineers a better understanding of how to [...] make code future-proof" in his framework of removing defects from "Level 3" design.
(As a side note, there's also a cosmic irony as that paper starts with an anecdote about the "correctness" of detecting ballistic missiles in 1960 given the recent false alarm in Hawaii.)
[1] https://www.student.cs.uwaterloo.ca/~cs492/11public_html/p18-smith.pdf https://www.student.cs.uwaterloo.ca/~cs492/11public_html/p18...
- zitterbewegung 9y agoThe incident in Hawaii was user error and is a UI design problem.
- jacobush 9y agoTake a systems view? People are increasingly in the loop.
- jasode 9y ago>a UI design problem. When a military general or Secretary of Defense asks if the 1960s missile warning system is working "correctly", it means it's working incorrectly when the moon is categorized as an incoming enemy attack. Likewise, when a general asks if the 2018 warning system is working "correctly", it means the system is designed incorrectly if the pixels of text on the screen[1] lead operators to trigger the unintended action. Categorizing one error as a "radar error" and another as a "UI error" as if they are 2 disconnected concepts of correctness is missing the point of BCS's essay. When people think of something working "correctly", they want the whole system to work correctly. They will not explicitly enumerate all the subcomponents nor all the subdisciplines such as "UI design". [1] https://twitter.com/CivilBeat/status/953127542050795520 https://twitter.com/CivilBeat/status/953127542050795520
- tritium 9y agoIn this instance, the phrase "code that never goes wrong" does not imply recognition of human factors affecting an operational system.
- alanbernstein 9y ago> (Where “wrong result” is broadly defined to include performance bugs, usability bugs, etc.) The author seems to disagree - isn't bad design a usability bug?
- voidifremoved 9y agoI would say it is far more of a process and managerial failure. That it was even possible is to me quite damning of project oversight, for allowing the system to get to that stage with such inadequate procedural and UI safeguards.
- ignoramous 9y agoCurious: Can you pls mention what other 4 papers, in your opinion, are?
- hwayne 9y agoAnother one I love on the same topic is Peter Gutmann's thesis on formal verification: http://www.cypherpunks.to/%7Epeter/04_verif_techniques.pdf http://www.cypherpunks.to/%7Epeter/04_verif_techniques.pdf