It seems to me that software usability is focused primarily on the novice user. Great effort is made to make functionality easy to discover, understand and remember while making it hard to commit certain errors. This is not a bad thing but as a result many tasks become very inefficient. They require use of the mouse, response to confirmation dialogs, or extra steps for simplicity.

Visual, easy to discover interface design tends to lock users into novice mode. “It was so easy to figure out…