In an ideal world, users that come to your app or website never have to wait for a page to load, for a transaction to complete or for the upload to finish. Your app or website is perfectly responsive, and everyone is happy. Unfortunately, the realities of bad networks, hung computers, time-consuming operations, and various other problems means that your users have to wait sometimes for operations to complete. And users are a notoriously impatient bunch. If they see a wait icon - the infamous hourglass of windows, the rotating circle of Android or the hypotic-circular-clock-thingy of iOS for more than a few seconds, users will click the back button, hit escape, hit the home button or do something else to interrupt the operation, and you’ve lost the user.
Many apps don’t actually think of this as a big problem. Maybe it is, maybe it isn’t, but if you have to make a user wait for something - a little thought can go a long way. Today, we’ll discuss a few simple strategies that anyone can use to handle this problem.
1) The progress bar
The standard approach to this problem has been to show a progress bar. Even if the operation takes as little as 5 seconds, showing a progress bar is enormously helpful. The progress bar not only holds the users attention for the duration of the wait, but it has some other often-overlooked benefits as well. First, it gives the impression that the app is doing something and not “hung”. Secondly, a fast-moving progress bar actually creates an illusion of speed (even though the app is actually making the user wait), increasing user satisfaction with the app.
For longer running operations, the progress bar sometimes itself becomes the problem. If a progress bar is “stuck”, that irritates the user. One of the things I hate with a passion is when the progress bar hangs at around the 99% mark. These kinds of things can cause infinite user angst, and your product the butt of jokes.
One way to get around this is to show the infamous double-progress bar. Here, there are two progress bars, where the top bar moves as it would originally, but there’s a second progress bar below it that shows the progress of the current task. The second progress bar moves really fast, giving the user the impression that something is happening, even if the top progress bar is moving slowly (or not at all). You could make a user wait for hours with this technique.
2) Show a countdown
This underused technique is helpful if you know upfront how long the wait is going to be. TV channels have started using this technique with considerable success while showing ads. Just showing a countdown timer assures the user that something is happening in the background, and things will start working in a definite amount of time.
You can use this technique even if you don’t know how long exactly something will take, but have a hard upper limit. You start counting down, and if your operation finishes before the countdown expires, you just end the timer. This pleasantly surprises a user, creating a very positive impression in the users mind. Classic under-promise/over-deliver effect.
3) Entertain the user. Any way possible.
At the end of the day, you need to entertain the user in any way possible and hold the users interest while the app or website finishes loading or whatever it is doing. This allows for lots of creative ideas. You should also see this as an opportunity to build some loyalty/trust with the user - You have some "alone time" with the user that you can use to introduce your product in a more intimate way. This time really is a unique way to get the user to engage with the product.
Games on the PS3 have taken to showing videos as they load the content for the level. These videos can be anything from showing off the graphics capabilities of the game, to showing "action" sequences from the next levels, to create user excitement. Operating Systems show slide-shows during the installation process, to take the user deeper into what new and exciting features have been included, so that the user feels "familiar" in the new OS.
Another interesting thing you can do is to share a joke with the user. The game SimCity used “fake” messages while it was loading. It would say things like “Applying Feng Shui Shaders...”, “Destabilizing Economic Indicators...”, “Projecting Law Enforcement Cake Intake...” and things like that. Reading these messages would be entertaining in itself, while the game loaded in the background. Another DVD-burning program asks the user to "Go get a Sandwich. This could take a while". Some Linux flavours have taken a more direct approach - They let the user play a simple game while the OS installs.
A small amount of thought can go a long way. If your product is making the user wait for something, think about how you can use the time. It really is a unique time to interact with the user, and you should make full use of it.