I bet somebody got a really nice bonus for that feature
I often find myself saying, “I bet somebody got a really nice bonus for that feature.” “That feature” is something aggressively user-hostile, like forcing a shortcut into the Quick Launch bar or the Favorites menu, like automatically turning on a taskbar toolbar, like adding an icon to the notification area that conveys no useful information but merely adds to the clutter, or (my favorite) like adding an extra item to the desktop context menu that takes several seconds to initialize and gives the user the ability to change some obscure feature of their video card. Allow me to summarize the guidance: The Quick Launch bar and Favorites menu belong to the user. There is intentionally no interface to manipulate shortcuts in the Quick Launch bar. We saw what happened to the Favorites menu and learned our lesson: Providing a programmatic interface to high-valued visual real estate results in widespread abuse. Of course, this doesn’t stop people from hard-coding the path to the Quick Launch directory—too bad the name of the directory isn’t always “Quick Launch”; the name can change based on what language the user is running. But that’s okay, I mean, everybody speaks English, right? There is no programmatic interface to turn on a taskbar toolbar. Again, that’s because the taskbar is a high-value piece of the screen and creating a programmatic interface can lead to no good. Either somebody is going to go in and force their toolbar on, or they’re going to go in and force a rival’s toolbar off. Since there’s no programmatic interface to do this, these programs pull stunts like generating artificial user input to simulate the right-click on the taskbar, mousing to the “Toolbars” menu item, and then selecting the desired toolbar. The taskbar context menu will never change, right? Everybody speaks English, right? The rule for taskbar notifications is that they are there to, well, notify the user of something. Your print job is done. Your new hardware device is ready to use. A wireless network has come into range. You do not use a notification icon to say “Everything is just like it was a moment ago; nothing has changed.” If nothing has changed, then say nothing. Many people use the notification area to provide quick access to a running program, which runs counter to the guidance above. If you want to provide access to a program, put a shortcut on the Start menu. Doesn’t matter whether the program is running already or not. (If it’s not running, the Start menu shortcut runs it. If it is already running, the Start menu shortcut runs the program, which recognizes that it’s already running and merely activates the already-running copy.) While I’m here, I may as well remind you of the guidance for notification balloons: A notification balloon should only appear if there is something you want the user to do. It must be actionable.
|Your print job is complete.||Go pick it up.|
|Your new hardware device is ready to use.||Start using it.|
|A wireless network has come into range.||Connect to it.|
The really good balloons will tell the user what the expected action is. “A wireless network has come into range. Click here to connect to it.” (Emphasis mine.) Here are some bad balloons:
|Your screen settings have been restored.||So what do you want me to do about it?|
|Your virtual memory swap file has been automatically adjusted.||If it’s automatic, what do I need to do?|
|Your clock has been adjusted for daylight saving time.||Do you want me to change it back?|
|Updates are ready for you to install.||So?|
One of my colleagues got a phone call from his mother asking him what she she should do about a new error message that wouldn’t go away. It was the “Updates are ready for you to install” balloon. The balloon didn’t say what she should do next. The desktop context menu extensions are the worst, since the ones I’ve seen come from video card manufacturers that provide access to something you do maybe once when you set up the card and then don’t touch thereafter. I mean, do normal users spend a significant portion of their day changing their screen resolution and color warmth? (Who on a laptop would even want to change their screen resolution?) What’s worse is that one very popular such extension adds an annoying two second delay to the appearance of the desktop context menu, consuming 100% CPU during that time. If you have a laptop with a variable-speed fan, you can hear it going nuts for a few seconds each time you right-click the desktop. Always good to chew up battery life initializing a context menu that nobody on a laptop would use anyway. The thing is, all of these bad features were probably justified by some manager somewhere because it’s the only way their feature would get noticed. They have to justify their salary by pushing all these stupid ideas in the user’s faces. “Hey, look at me! I’m so cool!” After all, when the boss asks, “So, what did you accomplish in the past six months,” a manager can’t say, “Um, a bunch of stuff you can’t see. It just works better.” They have to say, “Oh, check out this feature, and that icon, and this dialog box.” Even if it’s a stupid feature.
As my colleague Michael Grier put it, “Not many people have gotten a raise and a promotion for stopping features from shipping.”