Progress bars in existing software are often "broken". That is, by observing a progress bar, the user often cannot predict how long an operation will still take. Sometimes, the bar runs to 100% in a matter of seconds, after which processing continues for minutes or hours. In other cases, they hang at a low percentage, and then they suddenly skip to 100%. Similarly, "ETA" indicators are often broken too.So, how would you implement a progress bar that Just Works (TM)?
Or is the problem so difficult to solve correctly, that it would require a Ph.D. project? In that case, the question is: why has nobody done theoretical work on the subject?