We all know the feeling.
You’re installing software while the progress bar inexorably presses forward.
Your eyes are transfixed to that horizontal tube filled with green goo that keeps moving to the right.
Eventually, it hits 98%…
and then 99%…
and then the installation inexplicably stalls at 100%.
All you can do is sit there, impotent, scratching your head, clicking the mouse, praying for this stupid thing to finish.
I don’t really care about the progress bar that’s fine, but when I’ve been staring at the “less than a minute remaining” message for over a five minutes, that really annoys me”
The brilliant and hilarious Randall Munroe of XKCD.com sums it up well in comic #612. It portrays the Windows file copy box as a car. The driver says he’s in the area so he’ll be there in fifteen minutes… then in the next instant he recants and says six days but then quickly adjusts his estimation to 30 seconds.
What’s going on?
Some geeks argue that since it’s impossible to predict the future it’s impossible to provide an accurate representation of the remaining time for an installation.
For example, say you’ve downloaded 500GB of a 1GB video file and the progress bar shows 50% (30 minutes remaining).
Is it reasonable to extrapolate that you actually have 30 minutes remaining?
What happens if the network gets congested because your brother starts streaming the latest episode of Homeland? What happens if the server experiences an unexpected load and therefore can’t send the video as fast? What happens if???
In any case, it’s hard to calculate the actual time left because the event is non-deterministic. That is, there can be multiple outcomes each of which can and will affect when the task completes.
Brad A Myers is a professor at Carnegie Mellon’s Human-Computer Interaction Institute. He succinctly said:
There are many areas of computing where the system as a whole cannot predict how long [a task] will take, so progress bars don’t move in a consistent way.
Ultimately it comes down to guess work which is exacerbated by a myriad of variables such as the speed of your CPU and how much free memory you have at any given moment.
In his classic 1985 work called “The Importance of Percent-Done progress indicators for computer-human interfaces“, Myers delineates the importance of progress bars and how there is a fundamental, psychological, need for humans to see progress when we complete a task.
So the progress bar is essential even if it isn’t entirely functional.
Most software developers tally the number of completed operations and then make a best conjecture from this limited data on how much time probably remains.
Given the insurmountable barrier of predicting when an event will finish, some people have taken an alternate approach to the problem. Instead of making the progress bar more accurate what if we made it feel like it was finishing quicker?
Relying on the latest advances in a branch of psychology called Time Design, Chris Harrison (no relation to The Bachelor host) published a whitepaper with Zhiquan Yeo and Scott Hudson that explicates how visual augmentations can make progress bars appear to finish faster.
This team of researchers from Carnegie Mellon University discovered that pulsating and animated ribbed progress bars can give the illusion that the bar is moving faster, even though in reality the duration is identical to an ordinary progress bar.
The problem is that the percent number comprises a collection of files; it’s a number that attempts to aggregate all the files being written to the hard drive.
So I have a question: would breaking the percentage down by file and showing a progress bar next to each file be a better idea?
Or maybe the operating system should display how much data in bytes has been copied from the source file?
So if you have a 1GB installation file and it’s hanging at 100%, underneath the progress bar you might see 996MB of 1GB copied and also the exact file it’s trying to copy. This would also help with troubleshooting because if the installation fails you know it’s because i_am_a_big_useless_file.class is trying to implant itself.
But this is the thing:
Just because it took 30 seconds to complete the last 10 tasks and the progress bar shows 50% doesn’t mean it will take another 30 seconds to complete the final 10.
One thing you could do is take the amount of remaining tasks and multiply that by the average time it’s taken so far then you can update the estimated time remaining based on this smoothing average
But I don’t know how else you can fix this. I think Harrison’s Time Design whitepaper about visual augmentation is a great idea and we’re already seeing big brands like Apple apply these ideas in their software but I don’t know of a long term solution.
What do you think of the infamous progress bar? Should we replace it with an alternative?
Let me know in the comments