Why are progress bars so unreliable? Not just the Windows ones (copying and moving files are especially bad for this), but other ones, like installation or whatnot. I don't think I've ever seen one that's not prone to getting stuck at a certain percentage and then jumping around.
When I program in progress bars in my applications (and it happens SOMETIMES in web development, most recently in an online application I built) I generally do it like this:
1. Create a mental list of "milestones"
2. Create a variable that holds how many milestones have been completed
3. Increment the counter whenever each milestone finishes
4. Divide the 2nd variable by the number of milestones, multiply by 100, round, and you end up with a % of milestones completed.
5. Re-draw the progress bar when each milestone finishes, as well.
That is granted a poor man's version in terms of accuracy, but my users don't really notice it.
Progress bars just look like they have authority. Even if one deceives you, you'll welcome the sight one one moving the next day. If it's changing that must mean that stuff is happening and closer to completion!
Yes, but the calculations might not be based on time. Maybe rudimentary estimations, or.. heck, I don't know, maybe some autistic person made a more accurate progress bar for some product one day because he just really wanted to make it more accurate and not be based on variables and it was driving him nuts.
So who knows.. but if the programmers making progress bars have deadlines like me, and they probably do, they probably wing it in some way. It just doesn't pay off enough to worry about perfecting a progress bar. It's usually good enough in terms of user interface requirements even if it isn't fully accurate. There *is* a line, that when crossed, might demand a better progress bar.. and I've seen some bad ones myself.. but the programmers probably move on to their next task once the progress bar is working.. and then by the time the product is done, nobody really cares about a little progress bar. The product works and is awesome. End of question.
In terms of copying files, they probably use my lazy man's method. Bigger files take longer to copy, but each file only has 1 milestone.. That is going to lead to potential fistshaking, especially during large file copy operations.