Wednesday, November 16, 2016

How to deal with variable number of steps in discrete progress bar?


We have an application that various other departments will use to create questionnaires. These questionnaires can hide or show extra questions based on responses to previous questions.


When creating the questionnaires, authors may decide to display completion as a percentage or with a progress bar, with the progress bar working off of author-defined milestones.


Because of the dynamic nature of the questionnaire, we can't reliably know how many questions the user must answer. We have agreed it is bad to show negative progress, so for percentages we assume all questions will be shown and if we pass a group of questions that we will not show, the percentage may jump a significant amount (e.g. progress may move from 5%, to 10%, to 15%, then we skip a group of questions and end up at 70%).


Our progress bar looks something like this:


(O)===(O)===(X)---()---()---() or (O)===(O)===(O)===(O)===(X)---()


We aren't sure to handle the dynamic questions for this display. We have discussed a few options:



1) Only show the extra milestones once we know they are necessary. We don't like this, because we feel this is similar to reducing progress percentage -- suddenly the user is ambushed by extra work, or so it would seem.


2) Stop showing the milestones once we know they aren't necessary. This may result in, for example, a user going from step 3/8 to step 4/5. We are worried this may confuse users as it changes the number of apparent steps.


3) Show all the milestones, but simply skip ahead in the display. This may result in the user going from step 3/8 to 7/8. We are worried this ALSO may confuse users as they won't know why they have been moved forward or why they don't have access to those questions.


We are leaning towards option 3.


How should we best solve this problem? Are we on the right track with option 3, above? Is option 2 better and we just worry too much?


If we skip steps, as in option 3, should we differ how we display the skipped steps from how we display completed steps?


If it matters, the questionnaire authors will be typical office staff (not technically inclined) so we can't guarantee we can pass the problem off by training them to build questionnaires and choose milestones based on progress bar limitations. End users (people taking the questionnaires) must be assumed to be relatively uncomfortable with technology in general.



Answer



You try to combine linear and measurable progress with non-linear process, that is the problem. So there is no ideal solution.


Version 3 is the best among specified, but you may also try another way, that can minimize the problem of omitted steps, but hide info about them. The goal of progress bar is to show, that there is a progress, and that the end is relatively getting closer and closer (that the end is reachable). Adding extra information about non-linear nature of questionnaire can be rather uncommon and confusing. So you can simply avoid in version 3 any numbers and just display the line moving forward every step:



mockup


download bmml source – Wireframes created with Balsamiq Mockups


Where light green piece of bar flashes when user chooses option and goes to the next question and fades away to dark green. It will display that you are moving forward (sometimes faster, sometimes slower, but abscence of number will decrease the problem of "why it happens?"), and that the finish is closer.


No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...