kqr parent
It sounds like our main disagreement lies around whether to call it "design error" or "build error" but I do not believe this erases the useful distinction between "error present in the thing from day one" and "unpredictable failure of component suddenly no longer doing what it used to do".
I think that's definitely part of it. I also believe that a physical component put under stresses it was not capable of bearing, even when those stresses were known to be within the expected environment at design time -- such as a bolt that was too weak for expected conditions -- is both:
1. Generally referred to as a "failure" of the part
2. Closely analogous to many software defects that cause system failure.
> Generally referred to
Sure, people may sloppily call it a failure, but then they miss out on a useful distinction which would help them create more robust software.
A bolt being under-engineered for its intended usage is a design error. When it breaks, that's a predictable (but unfortunate) mode of operation of the design, not a failure. (It has inadvertently been designed to act as a frangible link.)
The reason it's important to distinguish between the two cases is that we use different methods to deal with them.