In general, as the devices become more complex and “intelligent” the number of plausible hypotheses about any failure starts to rise rapidly. Also, the ability to rule out possibilities on the basis of knowledge about the system starts to drop… When I was a kid, most communications channels were analog, and unidirectional. I could bound what was failing by knowing that the transmitter had no clue what happened at the receiver. That is no longer true. “sheerly arbitrary” things are a problem—“sheerly arbitrary” things that sometimes change from release to release of code can be much worse...
In general, as the devices become more complex and “intelligent” the number of plausible hypotheses about any failure starts to rise rapidly. Also, the ability to rule out possibilities on the basis of knowledge about the system starts to drop… When I was a kid, most communications channels were analog, and unidirectional. I could bound what was failing by knowing that the transmitter had no clue what happened at the receiver. That is no longer true. “sheerly arbitrary” things are a problem—“sheerly arbitrary” things that sometimes change from release to release of code can be much worse...