We insist that software should, for any input, either accept and work normally (if the input is valid) or reject and fail gracefully and safely (if the input is invalid). I'm not yet convinced that applying this standard to engineering projects will find a much better success rate than applying it to software has found.