What is the best way to estimate remaining time for a progress bar?
In my case, it's a computing time, but I suppose this is a general issue of estimating the remaining time of a task in a user-friendly fashion.
Currently I'm using an estimated time based on percentage accomplished and using it to linearly estimate the time that remains. However estimation or load variation change will result in the time not decreasing anymore, or worse, going up rather than down.
I've been experimenting with "cheats" based on over-estimating the time initially, so the time tends to trend down in a more "friendly" way, under the assumption that people are happy if it ends earlier than planned, and unhappy if it ends later than planned.
Are there studies/experiments on the "good" ways to tackle that issue?