Mechanical engineering has specifications for "bug" tolerance.
These are manufacturing tolerances and safety factors.
Unless you're testing the piece of steel you're bout to use, you don't really know that it's yield strength is what the box says. Similarly, the welding might be done by an apprentice with a bad teacher, and during maintenance, the repair guy might run out of a certain bolt and use a different one with a washer.
Keep in mind that you do things to alleviate the possibility of "bugs"
When you purchase Steel it is purchased to a specification (such as minimum yield strength) if the steel fails to meet those specs the supplier can be held liable.
In software terms I suppose the equivalent would be purchasing a commercial library with support from vendor.
For major construction projects welds are inspected and singed off on, they may be tested as well.
Again in software terms equivalent would be code audit and test cases.
In construction there is a lot of inspecting stuff, signing off on it and certifying stuff. I think software people would go crazy if they had to deal with the same amount of paperwork.
> Mechanical engineering has specifications for "bug" tolerance.
That's what these days is referred to as an SLO.
Golden signals, USE, RED are ways of measuring them on a high level.
You program your systems to be resilient to a certain level of failure (retries, graceful failure), and you program them to be able to cope without a malfunctioning part by isolating it from the rest of the system (circuit breakers, bulkheads).
These are manufacturing tolerances and safety factors.
Unless you're testing the piece of steel you're bout to use, you don't really know that it's yield strength is what the box says. Similarly, the welding might be done by an apprentice with a bad teacher, and during maintenance, the repair guy might run out of a certain bolt and use a different one with a washer.