Knowing and Doing: Two Dimensions of "Easy"
It struck me recently that when people talk about software that is "easy to use," they're not always talking about the same thing. Ease of use has at least two dimensions:
- How much you have to do to use the thing
- How much you have to know to use the thing
These are somewhat independent.
E.g. some codebases (especially OO ones), have been heavily optimized for ease of doing. The amount of code you have to change to add value is often quite small. However, this comes at the expense of ease of knowing. The amount of stuff you have to know, in order to know what code to change, might be quite large.
We are knowledge workers. (TODO Jessica Kerr quote - "most of what we type, we delete")
Over time, I have come to value ease of doing less and less, and ease of knowing more and more.