Progress bars that actually mean something

26Dec07

Over the past few weeks, the Internet performance on my BlackBerry has degraded so much that it’s barely usable. Even simple websites take more than a minute to load, compared to the 5-10 seconds that I’m used to. From fussing around with different sites, I know the issue affects any website I try to load, and only happens with the standard BlackBerry browser. (It works fine in other browsers, like Opera Mini.) So, I’m pretty sure the issue is being caused by something at RIM, the folks who make the BlackBerry devices and provide the corresponding server backend for many of the built-in applications. Eventually, I’ll suck it up and call tech support, but one thing’s for sure: the progress bars that RIM and others use for their applications are virtually useless. This makes it much harder to diagnose the problem, and leaves even experienced users guessing.

Progress bars appear in all sorts of software programs. Generally, there are two problems with how they’re designed. First, the length of the bar (or the speed it gets filled up) has nothing to do with how long the task should actually take. Second, the text that accompanies the progress bar doesn’t mean anything. In my example, the progress bar starts to fill up from left to right, suggesting that all will be good when it reaches the end. It starts off moving quickly, and then gets slower as it approaches the right side. When it gets there, it just stays full until the process is completed or abandoned. The status text is just as useless. It says “Requesting…” the whole time, without any indication of what it’s communicating with on the other end. You can’t tell if the delay is from the website, the cell phone carrier, etc.

So if you’re going to include a progress bar in your application, try to follow a few simple rules. First, make the progress bar move at a consistent speed, so that users won’t feel tricked if it seems to take forever to get from 80% done to 100% done. Similarly, when the bar reaches the end, don’t just have it sit there. Either say the process is done, or that it failed. Next, if there’s no way to tell how long the task might take, don’t use a traditional progress bar design. Instead, go with a design like a spinning ball or hourglass. This tells the user that something is going on, and you don’t know how long it will take. And finally, make your status text as specific as possible. If you’re waiting for a reply from the website or service provider, then say so. After all, something like “Connecting to Verizon Wireless gateway” or “Waiting for reply from BlackBerry Internet service” is much more useful than the generic “Connecting” or “Waiting”. Among other benefits, this approach would make troubleshooting issues like mine a lot easier, cutting down on tech support costs.