Show an animated indicator of how much progress has been
made. Either verbally or graphically (or both), tell the user:
As far as time estimates are concerned, believe it or not, it's OK
to be wrong sometimes, as long as your estimates converge on
something accurate quickly. But sometimes the UI can't tell how
far along it is. In that case, show something animated anyway
which is noncommittal about percentages. Think about the
browsers' image loops that keep rolling while a page is loading.
- what's currently going on,
- what proportion of the operation is done so far,
- how much time remains, and
- how to stop it.
Most GUI toolboxes now provide a widget or dialog that implements
this pattern, like Java Swing's JProgressBar. Beware of
potentially tricky threading issues around these, however -- the
progress indicator must be updated consistently, while the
operation itself proceeds uninhibited. And if you can, keep the
rest of the UI alive too.