Sorry if this has already been reviewed, or you think it really belongs to the wiki.
I am a software developer at a company that produces microthermal presses for the bioscience industry. I mainly deal with various bits of hardware (pneumatics, hydraulics, stepper motors, sensors, etc.) By developing a graphical interface in C ++ for aspiration and printing samples on slides with microchips.
Upon joining the company, I noticed that whenever a hardware-related problem occurs, it would cause the entire installation to freeze, as no one was wiser about a particular problem - hardware / software / misuse, etc. Since then, I have improved the situation a bit by introducing software timeouts and exception handling to better identify and solve any hardware-related problems that arise, for example, PLC commands that did not complete successfully, incorrect FPGA response commands, and various others conditions such as deadlocks, etc. In addition, the software will now record a summary of a specific problem, inform the user, and gracefully exit the stream. This software is not built-in, it just interacts with serial ports.
Despite what has been achieved, the non-software guys still do not understand that in these cases the “software” problem that they tell me is not really a software problem, rather the software reports the problem, but does not cause his. Don’t get me wrong, I don’t like anything more than going out of software bugs, such as a ton of bricks, and looking at ways to increase stability. I know the system well enough, now I have almost a sixth sense for these things.
No matter how many times I try to explain this, nothing really penetrates. They still report hardware problems (which eventually get fixed) as software.
I would like to hear from others who have experienced similar finger impressions and what methods they used to deal with them.
UPDATE Some great answers here that pretty much sing from the same hymn sheet: be more descriptive. I think team identification and bombing is pure when hardware malfunctions were in the first stage, but still not enough. The next step will be to compare the fact that for the layman there are rather meaningless PLC commands, for something more suggestive. “PLC command M71 timeout” becomes “Syringe system initialization error. Check for sufficient vacuum”, etc.