Live data from Hacker News

Rethinking the Progress Bar (2007) [pdf]

chrisharrison.net

61–63 of 63 posts

Re: Rethinking the Progress Bar (2007) [pdf]

#61
post #48

I had a friend who implemented what he referred to as Zeno's Progress Bar. After every unit of time passed, the progress bar would progress half the distance to completion. So 0 -> 50% -> 75% -> 87.5% and when the task finished it would jump to 100%. It didn't bother to measure the actual progress at all. Key factor was making users think something was happening and not give up before it was done. In hindsight, it le…

I'm pretty sure Github does this when navigating from page to page. Makes sense—The browser has no way of knowing the progress of the HTTP request. It seems to me that most progress bars are lies.

Usually by the time your software knows fully all the things that need to be done, then you are almost done anyway.

One approach is to remember how long a similar task took, and present progress based on the expected time will be similar.

Re: Rethinking the Progress Bar (2007) [pdf]

#62
post #56

Earlier quoted context omitted.

My understanding (and I believe studies back this up) is that primary goal of a progress bar is to assure the user, in priority order: 1) the app has not crashed, 2) the app is busy doing something, 3) the app is busy doing something relevant to the user. As a software developers things like % complete and estimated finish time are general far more useful (for debugging things like "what stage is taking too long", fo…

> My understanding (and I believe studies back this up) is that primary goal of a progress bar is to Studies cannot "back up" a goal. The goal is defined by the designer, developer, or in this case, the researcher. Users also want to know if the app is lying to them. Sometimes an app crashes but keeps showing a progress bar. Sometimes the app says that something will take less time than it does. The more that develop…

The point is that studies back up the requested priorities/interests of the users. You stopped at the word "goal" without reading the rest of the sentence. (ETA: Also from a pure syntax diagramming perspective, that parenthetical was tied to "my understanding" not "the goal".)

To make my early point more explicit: average users don't care about Progress Bars with exact percentages and to the second/millisecond estimate times. Users want Progress Indicators that tell them the app hasn't crashed, is busy, and is busy with something relevant.

Progress Bars in general are just a bad way to tell users the information they want, whether they "lie" or not. I agree that in the case of an unrecoverable crash, an application should no longer show a progress indicator. I agree that users dislike it when an app suggests something will take less time than it does, but I think "build better estimates" is a Halting Problem trap and I think the answer has to be "show fewer estimates" and "build intentionally worse estimates". "32.5%" and "ETA: 3:21:59" shows far more implied accuracy that any system can actually deliver on than "Fooing the bar" and "This may take a couple hours" do.

The point is that it isn't "lies" versus "Truth", but "uncertainties" versus "implied lies". The application is always likely uncertain how much time things will exactly take, that's the nature of software (and the vagaries of hardware/internet conditions/weather, plus the Halting Problem). Specific percentages and too accurate estimates lie in their own way that the tasks being taken are all fungible and exactly linear in time/space, that the possible error bars are in parts of a percent and seconds rather than tens of percent and minutes or hours. There's always going to be "implied lies" in a progress bar, the question in this article, this thread, and others is how do you present how much that "you don't yet know" to the user that doesn't give them the wrong impression?

Again, developers certainly care about the raw percentage of work done or the raw estimate down to the actual second, but those sorts of details do more harm to the user's value of the system than good. They sometimes think they want to know those raw scores, but those raw scores don't actually tell them what they want to know or what they need to know. It's not a "lie" to just not give those raw data to the user. It's sometimes more of a "lie" to give that raw data to the user and then frustrate the user that the last 1% is different from the first 1%, that the exact-to-the-second ETA was wrong by hours.

Progress Bars are one of the best Progress Indicators we have, but they aren't perfect and they confuse and frustrate users sometimes as much as they help.

Re: Rethinking the Progress Bar (2007) [pdf]

#63
post #8
post #4

These researchers presume that their goal is to make users think that an operation is happening quickly, even if it is slow. I thought the goal of a progress bar was to report reality, not manipulate users into thinking that your slow code is faster than it actually is. Since when have dark patterns infiltrated academic HCI?

Its a bit harder than that, I'd say. Imaging a progress bar showing progress of two consecutive operations eg. download and process. How should that progress bar be displayed? 50% for each? If download is 30 seconds and process is half an hour that is skewed. I am having that exact problem in an application I am developing.

> Imaging a progress bar showing progress of two consecutive operations eg. download and process. How should that progress bar be displayed? 50% for each? If download is 30 seconds and process is half an hour that is skewed.

Display a progress bar for downloading, and then another one for processing. You can caption them, too.

Post reply on HN