I have a question... I wonder if any research has been put into this
topic:
Suppose we have a software application that interacts with a scanner, a
camera, FTP server, etc. Some external agent beyond our control.
Now suppose there's a problem, such as:
1. Their scanner is broken
2. Their FTP server is down
3. Their proxy server is failing
4. Their camera is not turned on
... etc.
The user then contacts us, and after several emails/calls we eventually
get an idea what the real problem is. It turns out it's completely
beyond our realm of control.