Why are Progress Bars Generally Inaccurate?

At first thought, it seems that generating an accurate estimation of time should be fairly easy. After all, the algorithm producing the progress bar knows all the tasks it needs to do ahead of time… right? For the most part, it is true that the source algorithm does know what it needs to do ahead […]