The flow|state user interface blog reports that the next version of Microsoft Office will make a small but important UI improvement: disabling Overtype mode by default.
“Overtype mode” is the behavior where pressing the Insert key on your keyboard completely changes how the program works. Usually, when you type new characters into a document, those characters are inserted at the insertion point (that little blinking vertical line), and any characters after the insertion point are automatically moved over to make room. In Overtype mode, though, Office simply replaces the character to the right of the insertion point with the character you typed. This results in existing text being overwritten by the new text, which is a behavior almost nobody ever intends.
(If you don’t understand what I’m talking about, open up a Word document, click somewhere in it to set the insertion point, press Insert on your keyboard, then start typing, and watch as your new text gobbles up your old text.)
This is a welcome change, and it sounds well implemented — you can still turn Overtype mode on via a preference if for some Godawful reason you need it, but the default condition is to have it turned off.
It also illustrates one of the general principles of good UI design, which is that Modes Are Evil because they confuse the user. A “mode” is a condition where doing something in a program produces different results than usual.
Badly designed software is typically full of modes. A particularly egregious example is the UNIX text editor vi, in which you cannot actually make changes to a document without first switching to “insert” mode. Why would you open a document in a text editor if you didn’t want to edit it? This behavior is predictably baffling to a user when they sit down in front of vi for the first time — they start typing, and instead of their words showing up in the document, nothing happens (or worse — because vi starts up in “command mode”, they accidentally type in a command and something seemingly random happens).
Modes are tempting to software developers because they allow more features to be crammed into a program, and sometimes they can’t be avoided; but it’s always worth the effort to try.