In his seminal paper No Silver Bullet, Fred Brooks draws a distinction between “essential complexity”, which is complexity that is directly caused by the problem we are trying to solve, and “accidental complexity”, which is just part of a particular solution. I’ve noticed that a lot of the usability problems I run into are caused by accidental complexity. Some of this complexity is so old and so pervasive that we’ve forgotten what caused it in the first place, and now we just accept it as “the way things are.”
Here are my suggestions for five ways that we could radically change computers for the better. All these problems are caused by accidental complexity. Some people might give reasons why these ideas can’t be implemented, but the truth is that nobody has ever demanded that these things be changed, because “that’s just the way things are.” But what the hell — it’s a new year,
time for some new ideas time to make some changes!
- Instant on and off
When you turn on your oven, microwave, or television, you don’t have to wait 30 seconds before it’s usable. But with computers, it’s something we just accept. And then when it’s time to turn the thing off, there’s a confusing array of choices: should I shut down, or just put it to sleep? Or maybe I should hibernate.
For a good example of how computers should work, look at the iPod. It doesn’t even have an on or off button. When you press any of the buttons, it turns on. After it’s been idle for a few minutes, it turns off. Sometimes — rarely — when you turn it on, it takes a second or two to boot up. A second or two is fine; almost a minute is not.
- Automatic save
At one time or another, I’m sure everybody who’s used a computer has gotten burned by not saving often enough. You know, you hit the zone working on the last few pages of that essay, and whoops, you stretch your legs out and flip the switch on the power bar.
Did you ever wonder why you have to save your progress every few seconds? Wouldn’t it be better if you could just concentrate on doing your work, and let the computer worry about saving it? I’m not talking the half-baked “document recovery” that Microsoft Word offers — every single character you type should be saved as you type it.
- Getting rid of filenames
Does every page in your notebook have a title? Probably not. Then why is it that anytime you want to write down even the most trivial note on the computer, you have to give it a name? It gets in the way of what you’re really trying to accomplish.
And in the end, don’t we just up with next-to-useless names like “resume6-modified-pld-edit.pdf”? Instead of forcing you to choose a filename, the computer should just automatically save whatever you type. When you need to access it later, you’ll be able to find it by looking at a list of recent documents, or by using keyword search. Later, you might want to give it a title and a description, but that should be optional.
- Ubiquitous access to information
Here I am, working away on a computer with a 5 Mbps always-on internet connection, and the best way to make sure I have access to my documents is to email them to myself. Despite the massive amounts of bandwidth that I have available, a lot of my important data is still trapped on a tiny, fragile, spinning platter on my desk.
Sure, I could (and do) use web applications to be able to access my information from almost anywhere, but there are still some significant problems with doing that. If the site goes down, or I lose connectivity, I’m screwed. And many applications simply don’t have a good web-based alternative.
What I really want is for all my important documents to be silently synchronized to the internet while I’m working. If I lose connectivity, I can keep working away, and my work will be synchronized later.
- Eliminating applications
Sometimes when I use my computer, I feel like a janitor. When I’m really focused on a task, I find that my desktop starts to accumulate cruft. So I take a break from whatever I’m doing, and go and clean up after myself, closing windows and applications that I’m not using anymore.
I really wish that I never had to do that. And why should I? The computer is already going to swap out inactive applications, so why do I need to bother closing them? It can open applications on an as-needed basis, so why can’t it close them too?
I think the real answer is that we need to eliminate the concept of “applications” as we know it. Think of web applications — you don’t ever have to worry about “opening” or “closing” them. I’d like to see this kind of model applied to desktop applications as well.
Well, what do you think? I’m interested to hear people’s thoughts on these ideas, and to hear if you’ve got any others to add to this list. My friend Mike pointed me to a cool post by Matthew P. Thomas in the same vein as this. His old blog is offline now, but you can still find it in the Wayback Machine: When good interfaces go crufty.
Update (Jan 3): I didn’t mean to say that these are MY ideas, or that they are necessarily new. As MH pointed out in the comments, some (or maybe all) of these ideas are mentioned in Jef Raskin’s The Humane Interface, which I can’t recommend highly enough.