User Interface Perfection
Consider the Calculator Desk Accessory on the original 1984 Macintosh System 1.0. It is easy to use and easy to learn. The interface is self-revealing: it requires no documentation and no instruction. It is obvious at a single glance both what it is capable of doing and how to do it. Equally importantly, its limitations are as obvious as its functionality. No one will waste any time trying to coax it to do anything which it was not designed to do. Every designer should strive towards these qualities.
Software design is an art of compromise between competing and contradictory criteria. Users want more features. They do not want to read manuals. They want inexpensive (or free) reliable software. The tension between functionality versus ease of use and ease of learning is eternal. Marketing and Sales want more features to sell products. Technical Support wants the current features to be reliable and easy.
The design space is multi-dimensional. Each application sits on a point in that space chosen as a tradeoff amongst the competing criteria. Within the limitations of what it set out to do, in the context of computer users in 1984 who had never before seen a GUI, Calculator 1.0 achieves an ideal in terms of ease of use and ease of learning.
When writing Graphing Calculator 1.0, we aspired to the same usability while increasing the functionality. We made compromises along the way, but it helped to remember the ideal we were striving for, even as we failed to reach it.