With hardware if you are not careful you can get parts that meet spec, but are useless because you forgot to specify something correctly (eg: referenced the wrong dimension, error stacking, etc). Generally the only reason why hardware would be easier to spec is that the output can be simpler (eg: a plate out of this material with holes in these locations).<p>Then you get the stuff that lurks in the middle that could be a software, electrical or mechanical problem (or all 3), and that is where the bugs like this occur. I think its more a result of splitting up work into domain silos, so they do not think about problems that arise in the other domains that can be fixed easily in another. This can lead to one or more domains getting no time at all to implement their part of the system as they spent most of the time budget waiting on another domain to finish. Watchdogs and other &quot;things are going crazy&quot; sort of belt&amp;braces protection are the first parts of a design to get dropped when in a time crunch.