On the Abolition of the Progress Bar

trgriffin.com

Every computer I have ever owned has used some type of strategy to appease consumers as they wait for software to install, load, or complete a task. In the beginning, the message was, “Please wait,” with no indication of how long this wait might be. I recall that it took approximately 5 minutes to load King’s Quest on my IBM PCjr., and about 2 minutes to load WordPerfect 5.1 on my Zeos 386SX-16 MHz. In those days, the only notice that the task was nearing completion was a slight change in rhythm of the chattering sounds that emanated from the A drive. Other common messages were “Loading…” “Thinking…” or my person favorite: “Hold on, this may take a few minutes…” Those were the good ol’ days.

Then, someone developed the Progress Bar.

This essay is an attempt to demonstrate the futility of the Progress Bar and to implore software developers to bring back the glory days of computing when no one pandered to the user with Progress Bars that mean nothing.

A secondary purpose of this post is to prove that the person who invented this appeasement tool was an idiot, as is every software developer who has thoughtlessly perpetuated its use.

Take for example the following modern example of the Progress Bar. With my download of HLM 6.02 (Student Edition) this afternoon, I was given a blue bar on a white background, with a “time remaining” indicator.

Let’s assume for a moment that the time indicator is based on the speed of the present download. Download speed changes constantly, moderated by the user’s network activity (e.g. navigating other websites, streaming video, sending and checking mail) as well as the speed of the upload by the host server.

Have you noticed that with Progress Bars like this one, the time indicator is variable, sometimes changing constantly? Have you ever seen the time indicator increase ad infinitum until it reads something like “13 hours, 12 minutes”? As you probably know, this was likely caused by either (a) a slowdown in the network connection, or (b) a lost connection. You were likely forced to cancel the download and restart it, because it never would have completed on its own. The computer, unfortunately, had no idea, and your Progress Bar time indicator was as useful as a watch with no battery.

It does absolutely no good to watch a blue Progress Bar fill up the white space, unless you happen to enjoy watching such things. The relative distance of the blue bar to the end has no relation to the amount of time the task is going to take.

How long is a task going to take? In order to know the answer, you need the following information:

1) How long has the task been going? and
2) Is the blue bar moving at a constant rate?

A common version of a Progress Bar occurs in Apple’s Mac OS X, and it means absolutely nothing. It does not move at a constant rate, so the user cannot use this as a visual indicator to estimate how much longer the task might take.

Another version of the Progress Bar is when developers attempt to disaggregate the smooth increase of the blue bar into bite-sized chunks. Every time a new chunk appears, the software developers expect to feel you’re that much closer to the end. Unfortunately again, since each chunk does not take an equal period of time to appear, this chunk-type of Progress Bar means nothing. How many of us have sat watching our computer load something and at times, the chunks come flying fast and furious, and then there is a long pause while the hard drive clicks away and the computer does who-knows-what.

If you’ve used computers as long as I have (particularly Windows computers) you’ve undoubtedly seen the computer “hang” indefinitely on a certain chunk, with the only way out being a Ctrl-Alt-Delete or a cold reboot of the machine. What, then, is the point of having a Progress Bar in the first place?

Some might protest against the abolition of the Progress Bar by saying, “if it hadn’t crashed, the Progress Bar would have finished. At least you knew at what point in the task you were when the machine experienced trouble.” You’re still expecting me to assume that the Progress Bar was some type of indicator of how close to finishing the task we were. What if the very last chunk took as long as the combination of all previous chunks? (I’ve seen this happen, more than once.) Then, as opposed to being a happy little graphic to watch while you wait, it actually adds stress to the process because the status of the Progress Bar bears no relation to whether or not the task is near completion.

Another (laughable) modern version of the Progress Bar is one in which there are two different bars. I’m supposed to be excited because I get two Progress Bars for the price of one! On the top, I am allowed to see which specific file is being copied, and the bottom is the aggregate progress of the entire task.

The only problem is, some files may be 10k in size, while others might be huge graphics or audio files which take much longer to copy. If you’ve ever watched carefully, these types of Progress Bars, while interesting to watch, are completely meaningless. Some files cause the top bar to fly across without even giving you time to read the file name, while some other files take as long as many of the previous files put together. Further, unless you are the software developer, you don’t know (or care) what the file names mean, so this is extraneous and useless information.

Again, unless the bottom Progress Bar moves across at a constant rate, there is no sense in including it at all. In 22 years of using computers, I have never seen a Progress Bar that moved at a constant rate.

Another type is very interesting. By including information on what specific task is being performed, I am supposed to feel more comfortable that the process is moving along as planned. In one case, above the Progress Bar, the user is given the message that the machine is “Generating connected components.” Prior to that, it was probably “Checking system hardware” or “Optimizing file structure” using the same or a different Progress Bar.

Many times, the Progress Bar is reset with every new process. Since I can’t see the aggregate progress of all of the processes together, each new bar is another new piece of meaningless graphical eye-candy for me to watch while I have no idea how long my computer is going to take to finish its task.

Another example is Apple’s Software Update. In this scenario iTunes 7.0.0 is expected to take “About 2 minutes” for a 25.7 MB download. On careful inspection, however, you’ll notice that after iTunes downloads, the machine needs to download QuickTime 7.1.3, which is 49.7 MB. If it truly takes two minutes, iTunes would have downloaded at a rate of .2167 MB/second. At the same rate, the download of QuickTime will take 3 minutes, 49 seconds. Why, then, doesn’t the Progress Bar say 3 Minutes, 49 seconds? My Texas Instruments TI-1706SV calculator could figure this out but my Powerbook G4-800 apparently could not.