1

I'm working on an application that allows users to drill down into the data in order to get visual chart representations.

There is the assumption that there will be cases where users are exploring the data or coming to answer a very specific question (they may have very distinct parameters defined).

We have an issue with the data quality. Some combinations of drilling down will cause nothing to display, because there is missing data.

So,

  1. Would you prevent users from selecting that combination or clearly explain what's happening when this combination happens?
  2. If preventing, would you make the drilldown options cascade? Which means if user updates a prior filter it resets all that follows which could potentially undo the users prior selections. OR Would you try to label anything where that will occur?
    1. If not preventing, would a clear explanation be sufficient? Like just update the chart to say "no data available for [these selections]". Then, if time allows build in logic to then provide steps for users to get something to display again.

Provide any research, testing, or best practices with your answers.

2 Answers 2

2

Well, in the Nielsen and Molich's 10 User Interface Design Guidelines you have a specific bullet that states:

Error prevention. Whenever possible, design systems so that potential errors are kept to a minimum. Users do not like being called upon to detect and remedy problems, which may on occasion be beyond their level of expertise. Eliminating or flagging actions that may result in errors are two possible means of achieving error prevention.

This, however, is not always possible to avoid. To give some context, for a good part of my professional life I've been a Researcher and Scientific Software Developer. So I'm sensible to your problem in data mining and visualization.

Almost every person that calls itself an UX specialist advocates easiness of use and meaningful operations(see also). This implies that if an option is not valid than it shouldn't really be an option. Let me quote from an article of usability.gov:

Make sure that the system communicates what’s happening. Always inform your users of location, actions, changes in state, or errors. The use of various UI elements to communicate status and, if necessary, next steps can reduce frustration for your user.

As so good possibilities to prevent an event from occurring could be disabling the widgets that enable the user to proceed (when selection is invalid); not allowing the selection at all; or letting the user proceed but give a result that makes is obvious why that selection was not good at all. And here I quote:

Great design is invisible A curious property of great design is that it usually goes unnoticed by the people who use it. One reason for this is that if the design is successful the user can focus on their own goals and not the interface…when they complete their goal they are satisfied and do not need to reflect on the situation. As a designer this can be tough…as we receive less adulation when our designs are good. But great designers are content with a well-used design…and know that happy users are often silent.

So if it is a possibility not to even consider the "null" data for a selection that might be the best approach. One common problem here is that, when dealing with large amounts of data, using this preventive approach to design might be too computation expensive. As so you are only able to tell the operation is invalid after you actually tried to run it. If this is the case little options are left beyond telling the user why the its not possible to proceed or just proceed and give a result that makes it obvious the selection is not good (empty chart with a grey message at the center saying something like "selection is empty").

I think undoing the operation without providing a sensible explanation to something that might not be obvious to the user is the worst case scenario.

You have mentioned another point:

If preventing, would you make the drilldown options cascade? Which means if user updates a prior filter it resets all that follows which could potentially undo the users prior selections. OR Would you try to label anything where that will occur?

Which implies that some changes might have repercussions into other user inputs (if I understood it correctly). Its not always easy to maintain a dynamic workflow where no user action is wasted. But if you are whiling to do it this is certainly the best option. If some change needs to occur at some point in the "past" of the workflow, its "future" should be updated on the strictly necessary fields. So if have a workflow where you are stating an address starting by country and followed by region, city, block, street, door, changing the country field (after filling the whole questionnaire) should only reset the remaining fields if they prove incompatible.

Its difficult to perceive if any of this points are valid for your particular case. Consider providing a more visual approach (perhaps with a sketch of your GUI) to your problem. In any case my conclusion, and opinion, is that your design should be preventive and invisible (if possible).

1
  • This is a one great answer here! Commented Sep 26, 2016 at 16:32
0

Personally I get very frustrated when I am, without explanation, prevented from setting options that seem sensible to me but of course trying to come up with a sensible explanation of what not to do that covers everything is often impossible without making the explanation so generic that it is useless.

In your specific case it might be worth having an (estimated) number of data points read only field at the top of your selection dialog, or even better a chart preview if the speed of processing allows, so that the user can quickly see which selection(s) are going to result in a chart with too little data.

Many shopping sites on the web, Amazon springs to mind, have a similar feature when filtering a search you have your current number of matches and after each checkbox option the number of items that you will see if you select that option.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.