Progress bars for tasks that can take an indeterminate ammount of time?
progress-bar, user-interface
Solution
Usability studies (I can't find the pdf) showed that at the exact same duration, loading bars with different patterns (exponential, linear, logaritmig), the ones that "felt faster" where the ones that completed exponentialy. By that I mean, the ones that start slow, but get faster as time passes.
What I normally do is:
- If I know the average time the process can take, alocate for a little more, and go slow until last 20%-10%, then the progress bar speeds up and catches up with the real progress, with such a timing that the process ends at the moment that the bar has the fastest speed.
- If I don't know how long it could take, I measure many times to have the ballpark (seconds? minutes? hours?)
- If its a repetitive operation with little variation between runs, I take into account the last runs time.
- If its a long running operation or with high variability, I don't use a progress bar, but rather an animation to show that I'm working.
Just don't lie to your users. Never tell them it will be over in a minute and half an hour later be still running.
Problem
Another random question that hit me (I've drank ~9 cups of coffee in the last 5 hours, so sorry...) -- What kind of progress bar would you show a user for a taks that you do don't know how long it would take, but you have a good idea of an "average" time. For example, a task that would usually take around 30 seconds, but you have no way of knowing the progress (other than if its still going on or just failed). What would be the best UX?: - A progress bar that starts out fast and slows down (maybe with progress being a 1/x style asymptotic curve) that hits 50% around the average task time (the eclipse style guide suggests this). - A progress bar that progresses, slowly, at a constant rate and maybe hits the "average time" at 15% or something (IE/Firefox do this when initially looking up a domain) - An indeterminate squiggly bar (macs have this all over the place, newer windows versions have it, too) that just shows some sort of motion without suggesting any progress, a spinner, or some animation that just notifies the user that something is going on. Would the answer differ if the average time was 10 minutes instead of 30 seconds? Thanks, Robert EDIT: Just to be clear, the question is about progress bars where you have NO idea/indication of how long it will take (for example, executing a task on a remote machine). If you do have some indication of progress, it's often good to use that.