I've got a desktop-focused web application where the user is going to be initiating tasks that take a long time. Sometimes, these tasks will take hours to complete (users don't have to do anything other than wait for the job to complete). I'm trying to figure out what's going to be the most effective way to show the task's progress.
It's going to be technically infeasible to show a traditional continuous file-copy style progress bar with an overall estimated time to completion. There are defined steps in each task, but each step could take massively different amounts of time to complete - some maybe a couple of seconds, some maybe 45 minutes. Just because you're on step 40 of 50 doesn't mean you're 80% done time-wise.
So, I'm wondering if it makes sense to break the progress bar into discrete increments. Maybe a non-continuous progress bar would avoid giving people the wrong impression about the task's progress? Something like this:
download bmml source – Wireframes created with Balsamiq Mockups
Does this seem like a reasonable solution? Or just by looking like a progress bar, is that enough to make people think that halfway through the bar means they are halfway to completion?
Would it be more effective to list "Step 30/50" in text somewhere?