Thanks for the explanation: I disagree with both, though.
Yes, it is hard for customers to understand the determinism behind some software behaviour, but they can still do it. I've figured out a couple of problems with software I was using without source or tools (yes, some involved concurrency). Yes, it is impractical because I was helped with my 20+ years of experience building software.
Any hardware fault might be unexpected, but software behaviour is pretty deterministic: even bit flips are explained, and that's probably the closest to "impossible" that we've got.