My application framework provides a progress reporting service to plugins. Each plugin can request any number of task monitors and is then responsible for updating the status includes a textual message, percentage progress (or indeterminate). Process monitors are free to switch from discrete percentage / indeterminate at any time.
What is a good way to visualize these multple progress/task meters? I have a detailed presentation in which each task is visualized as a progress bar in a list. These is pretty straight-forward but takes up a decent amount of screen real-estate. Users are more interested in know if some tasks(s) is currently running and when it will finish. They want a simple way to visualize activity and progress without a list of progress bars.
Knowing when tasks finish is tricky since indeterminate progress is allowed. Multithreading is both allowed and common which means that new tasks may be dynamically added/removed while other longer running tasks keep going.
Currently I combine tasks into a single progress bar in the status bar of the application using the following rules:
If any task is indeterminate, the entire bar is indeterminate. Otherwise, combine the progress of all tasks and displays Example: 2 tasks, first one at 50% and second at 25% results in the progress bar filled to 37.5% = ((50 + 25) / 2)
The problem is that this gets jumpy! If the first task in my above example takes 20s to run and the second task only takes 3s but reoccurs every 5s the task bar jumps all over the place.
Task A (10%), Task B(0%)
[=== ]
Task A (15%), Task B(50%)
[========= ]
Task A (17%), Task B(90%)
[=============== ]
Task A (20%), Task B(complete)
[======= ]
Task A (20%), Task C(0%)
[==== ]
Task A (25%), Task C(50%)
[=========== ]
If the secondary tasks occur every 4s and take 1-2s to complete while task A takes its time, the progress bar is jumpy and potentially distracting.
Any thoughts?
UPDATES: After the tasks reach 100%, they're removed from the list. I do not know how long each task will take. I'm not permanently attached to this visualization scheme. I'm open to alternatives.
My question regards the visualization of multiple progress/task meters which I feel is mostly language agnostic so try and stick to concepts. For the curious, my framework is client-server Java using OSGi (Equinox) using remote services like Riena.