I prefer software! With hardware you have to think about ringing circuits and intermittent faults that you eventually find are due to the cleaner bringing in a vacuum cleaner with bad motor brushes that injects electrical noise into the mains. Most software bugs are nothing compared to tracking down that sort of thing.