It&#x27;s not exactly under a plain software&#x2F;hardware dichotomy. 
Rather, this incident indicates a system design problem - no preplanned failure modes, redundancy, cross checking and thorough testing. Good system design regime should overcome both software and hardware issues, either by detecting the issues in advance or by implementing measures to withstand them during operation.<p>There&#x27;s so much that can go wrong in a satellite that expecting software to function well is very naive.<p>Besides, it&#x27;s not like testing a satellite is easy as running unit testing on a Python module - there are countless operational and environmental variables that are very difficult to synthesize.