views:

347

answers:

8

Today my co-worker noticed that when adding a decimal place to a progress indicator leads to the impression that the program is running faster than without. (i.e. instead of 1,2,3... it shows 1, 1.2, 1.4, 1.6, ...) I checked it and I was surprised that I got the same impression even though I knew it was faked.

That makes me wonder: What other things are there to create the impression of a fast application?

Of course the best way is to actually make the application faster, but from an algorithmic point of view often there's not much you can do. Additionally I think making a user less frustrated is a good thing, even though it is more or less a psychologic trick.

+9  A: 

Present some intermediate, interesting results first. "We've found 2,359 zetuyls matching your request, we're just calculating their future value".

I've seen transport reservation systems do that sort of thing quite nicely.

djna
+7  A: 

Showing details (such as the names of files being copied in an installation process) can often make things seem like they're going faster because there's constant, noticeable activity (as opposed to a slowly-creeping progress bar).

If your algorithm is such that it generates a list of results, and you have some way of displaying results as they're generated (as opposed to all at once at the end), do so - the sooner the user has something else to look at besides a spinner, the better.

Amber
+14  A: 

This effect can be very dramatic: doing relatively large amounts of work to give users a correct and often updating status of progress can of course slow down the actual running time of the application (screen updates, progress display needed calculations, etc) while still giving the user the feeling it takes less time.

Some of the things you could do in GUIs:

  • make sure your application remains responsive (resizing the forms remains possible, perhaps give a cancel button for the operation?) while background processing is occurring
  • be very consistent in showing status messages/hourglass cursors throughout the application
  • if you have something updating during an operation, make sure it updates often (like the almost ridiculous showing of filenames and registry keys during an install), or make sure there's an option to make it do this for users that like this behavior
peSHIr
+1 for "make sure your app remains responsive". That's the thing i hate most in slow apps.
Arnis L.
It's ironic that making the app' seem faster, by frequent visual updating, actually make it a bit slower.
Liran Orevi
+4  A: 

Allow the user to do something else, while your application is processing data or waiting for a result. In application-scope you could allow to do some refinement of a search query or collect information for preparing next steps. Or just present some other "work" necessary to do or just some hints, documentation, statistics, entertainment..

Robert
Years ago I installed a Linux distribution, which already downloaded and installed the base packages while asking configuration questions. And after that you could play tetris while waiting for the downloads.
DR
Years ago? What distro was that which did it years ago? I'm impressed.
Lucas Jones
+2  A: 

Use one of those animated progress bars which look like they are doing something even when they aren't progressing. Also, as peSHIr said - print each filename that you copy and update it really fast - you could even fake it by cycling through a large string array N times a second.

DLauer
Be careful with animated progress bars. If I see one of those for too long I assume the process has gone into an infinite loop and kill it.
finnw
+2  A: 

I've read somewhere that if the process seems to be speeding up, it seems to be faster than when it's progressing at a steady pace. I can't find the reference right now, but it should be simple to implement.

(10 minutes later...)

A further look down Google lane unearthed the following references:

http://www.azarask.in/blog/post/hacking-memory/ http://blogs.msdn.com/time/

gooli
I think you were looking for a link to the vista file copy feature. Personally, I think this idea is BS. ;)
Chris Lively
A: 

Add a thread sleep at critical points. With each passing version, reduce the delay.

tsilb
now this is just evil.
Arron
Everyone has probably done this at one point, even if in jest. I call it the Scotty Method. ;-) Arron is right though: it is just evil in the extreme, so I'd have to -1 you for seriously suggesting it...
peSHIr
A: 

Here is an article about "Expressing time in your UI" and user perception of time. I do not know if it is exactly what you expect as an answer, but it is definitely worth the read.

Altherac