I previously blogged about a useful, but rather delicate and gimmicky eyeglass cleaning machine. Now let’s think about the very different requirements for user interfaces of software and hardware. In software, the most common goal is that no matter how the user manipulates the thing, it will act reasonably and not break.
Can you imagine someone complaining that they pressed all the buttons on a telephone (or a car, or an electrical service panel) and it did something unacceptably weird?
Some hardware products are required not to pose a death or disfigurement hazard (a rare requirement in software), but breakability is mostly the user’s responsibility. That’s amazing, considering that software can usually be restarted with a reboot, but a broken razor is useless or will cost money to fix.
The difference in our expectations for these two kinds of products is intuitively obvious, but I think it would be difficult to put in words. (And we have a yet another set of user interface requirements for books.)