I know, I’ve dipped into this well before. But this bears repeating.
At some point in the 30 years or so that I’ve been working with computers, we’ve lost sight of the most important fact: computers are supposed to be tools that serve us. All too often these days, I feel like I’m the one serving the computer. At other times, the computer reminds me of an over-eager employee who comes running to the office after completing every minor task, enthusiastically telling me how impressed I should be that he managed to find and actually work the photocopier.
You know what I’m talking about. When was the last time you spent an entire day not being annoyed by some pop-up message that Windows or some application program decided was important enough to interrupt whatever you’re working on? The last time I spent such a day was when I went on vacation and didn’t have access to a computer. If I’m working on the computer, I’m subjected to a never-ending barrage of pop-up messages and sounds that amount to little more than, “Hey! Look at me!”, and do nothing but interrupt my train of thought and annoy me.
You want examples? Oh, I have plenty:
- The Firefox Web browser will automatically download updates and then pop up a message box asking if I want to restart.
- When new Windows updates become available, Windows displays one of those notification balloons down near my task bar.
- If I tell Windows Update to download and install updates, all too often when it’s done it pops up a message box asking if I want to reboot.
- I minimize Windows Media Player to my task bar. Whenever it starts a new song, Media Player displays a little information box for a few seconds: “Look what I’m playing now!”
- The default configuration of Yahoo Messenger will pop up a message window in the middle of the screen when somebody sends me a message.
- If somebody else takes control of a machine that I have in Windows Remote Desktop, Remote Desktop pops up a message box telling me that my desktop session has ended.
- Norton Antivirus (which I don’t use any more) would forever be displaying mostly meaningless notifications at the bottom of the screen.
- Email clients can play sounds or flash the screen when you receive mail. In some programs, such actions are enabled by default.
- If you’re running a program under Visual Studio and the program hits a breakpoint, Visual Studio will bring itself to the front, regardless of what you’re working on.
I know, some of you are wondering what I’m complaining about. Let me give you an example of why I get annoyed. If I happen to be typing (an activity that occupies a large part of my day) when one of those pop-ups grabs the keyboard focus, whatever I’m typing will end up in the new window. This is not good. I’ve actually re-booted the computer accidentally because I was typing while looking out the window when the “Reboot now?” confirmation box appeared.
Let me repeat that. I suffered a very annoying interruption and lost some important work because somebody decided that their program was more important than whatever I was working on at the time. That’s unforgiveable.
Let’s be clear about this one: a program should never grab the keyboard focus from the window that I’ve selected. I can’t think of a single instance in which I want some random program to pop up in front of my text editor and start swallowing what I’m typing. There is no excuse for such rude behavior. Designers who create such things should be shot, right along with any programmers who have the poor sense to actually implement the designs.
I’m slightly more forgiving of the ostensibly innocuous notifications that pop up in balloons all over the place, but not much more. It’s nice that programs keep me informed of what they’re doing: security updates are available, new updates were downloaded, a friend messaged me, there are unused icons on my desktop, etc. But most of those things just aren’t important, with the exception of a text message from my friend, none are important right now. Those messages should be placed in a notification queue that I can check at a time of my own choosing. If it requires immediate attention (like my friend messaging me), it should display a message on the corner of the screen to get my attention, but under no circumstances should it grab my keyboard focus.
Like many other people, the work I do requires intense concentration. Most people require a certain amount of time (five to 30 minutes, typically) to “get into the groove” where they’re concentrating deeply and able to be productive. Any interruption will snap them out of that groove, and it takes time to get back into it. So a “brief interruption” can cost 30 minutes in lost productivity. Is it any wonder I get annoyed by all the crap that Windows and other programs throw at me?
To the designers and programmers responsible for these atrocities: The desktop is my workspace, dang it. Popping your idiotic message on top of it and stealing my keyboard focus is akin to throwing a rotting fish in the middle of my desk. It disrupts my work, makes a mess of things, stinks the whole place up, and ticks me off.
And don’t tell me, “You can turn those notifications off if you want.” That’s exactly the wrong attitude. The default configuration should be to leave me in charge of my desktop. I should have the option of turning those notifications on if I want them. I shouldn’t be forced to go hunting through your overly complicated user interface options dialog box to figure out how to teach your program its place on my desktop.
If, like me, you’re tired of being interrupted by inconsequential messages and having your keyboard focus stolen by rude programs, I suggest you start filing bug reports against the offending applications. That includes Windows, Visual Studio, and any other program that takes the attitude that its status messages are more important than your work. Filing those bug reports is the only way we can get software developers to re-think their attitudes and build software that does its job without nattering at us.
Cranky pants. *smiles*
Jim, you are absolutely correct. That kind of behavior bothers me to no end. I think the problem is much worse for those of us who spend lots of time focused on one task, as opposed to people who mostly surf and email.
For Windows I have no solution. Under UNIX-like operating systems I use a window manager that fits better with the way I work. Ion or ratpoison fit the bill for me. These are “tiling” window managers: there are no overlapping windows. I can have multiple workspaces, like virtual desktops. I have a full-screen Firefox in one workspace, several tiled terminal/email/chat windows in another, editor windows in a third, etc. When, say, firefox, pops up a dialog while I’m editing I do not see the dialog, I do not hear a beep, and my focus stays where it was. What I do get is an unobtrusive red notification on my status bar telling me something else wants my attention. I’ve noticed that when I’m very focused on something I don’t even see the notification, but if I stop typing, save the file and take a breath I notice it right away.
Obviously something like Ion isn’t for everyone, but for some of us it’s a great way of working. And hidden in the above sentence is a large part of the issue at hand: there’s no single method that will sufficiently cover ALL ways to use a computer. It seems people have forgotten that software development is not like web surfing is not like graphic design…
Coincidentally, I happened upon almost the same exact gripe on Coding Horror today.
Hello Jim:
To avoid situation as you describe, I work using two computers. The older and slower one is hooked to the internet as its sole purpose. The newer and faster one is my work machine, for programming, budgeting, correspondence, games… Each machine has its own monitor, the single keyboard and mouse are switched by an electronic KWM switch. There is no link between the two computers, except disks. This way, I am not interrupted, and also, my work and private files are shielded from maleware.
In the past, the two machines were networked, but with large capacity of DVD disks this is not necessary any more.
Most of the time only one computer is in use.
Best regards,
Anton
Two or more VMs does the trick - one with all the annoying, distracting junk and all the others for the “leave me alone, I’m concentrating” work. Minimise the annoying VM and bring it up at your choosing.