“The computer industry’s track record is just shameful. In what other area of our consumer life would we accept ‘buggy’ products that only work some of the time? If your car (assuming it wasn’t a jalopy), tennis racket or can of Coke failed regularly, you’d be pretty upset. Yet, the software industry has failed to meet our expectations for so long that we’ve come to expect their products to break on a daily basis. A daily basis!”
The failure in software is probably process. Manufacturing (not just cars) is somewhat of a perfected process. The entire thing is driven on a process so particular that it can be almost completely automated by machinery. Incidentally, that machinery is run by software too. If it’s not up to par, the manufacturing process would fail. So software can be made to such exacting standards as to please the most anti-reticent of reviewers, but you’d have to allow for reduced functionality. Or at least a multi-part system with little to no interaction (think assembly line). That process is well honed and provides for outstanding results. Flexibility is the problem. Consumers demand everything from the computer, and unfortunately the ground is too expansive to cover for developers to quality test every aspect. On the other hand, if process was governed more closely in the development process, there would be fewer errors. Not that this example is of an error, per se, but cookies or Easter eggs in software is a lucid portrayal of a loosely-governed development process.