Why hardware is good and software,..isn't
It used to be that hardware was much more expensive to make and get working than the software, but with the increase in software code size, and the improvements in hardware design tools, its now much quicker to get hardware working than it is software. So software is always playing catchup. Companies need to get product to market quickly nowadays, so, as a result the software always lags behind. It rare for the hardware design to be on the critical path, especially as one gets close to release.
Hopefully, by the time companies get to version two of these products, the software has had time to catch up and has the required improvements. On the other hand, the continuing demand for 'new features' to differentiate product means that not enough time is spent getting the basics right. Sad but true, and the consumer has to take some of the blame for demanding all these bells and whistles. Most blame should however lie of the shoulders of management teams who think that once the hw is done, the software will follow close behind, and set schedules to reflect it. Message to them - good software takes a long time to get right.
One exception seems to be Apple, who's software does appear to be very good even on first release (But their hardware can be a bit behind the curve), presumably because they allow themselves time to get it right, and they usually are not trying to catch up with preexisting competitor product.