Je travaille sur une application qui permet aux utilisateurs d'explorer les données afin d'obtenir des représentations graphiques visuelles.
On suppose qu'il y aura des cas où les utilisateurs exploreront les données ou viendront répondre à une question très spécifique (ils peuvent avoir des paramètres très distincts définis).
Nous avons un problème avec la qualité des données. Certaines combinaisons d'exploration ne provoqueront rien à afficher, car il manque des données.
Donc,
Fournissez toute recherche, test ou meilleures pratiques avec vos réponses.
Eh bien, dans les Nielsen et Molich's 10 User Interface Design Guidelines vous avez un puce spécifique qui dit:
Prévention des erreurs. Dans la mesure du possible, concevez des systèmes afin que les erreurs potentielles soient réduites au minimum. Les utilisateurs n'aiment pas être appelés à détecter et à résoudre des problèmes qui peuvent parfois dépasser leur niveau d'expertise. L'élimination ou la signalisation d'actions pouvant entraîner des erreurs sont deux moyens possibles de prévenir les erreurs.
Cependant, cela n'est pas toujours possible à éviter. Pour donner un peu de contexte, pendant une bonne partie de ma vie professionnelle, j'ai été chercheur et développeur de logiciels scientifiques. Je suis donc sensible à votre problème dans l'exploration et la visualisation de données.
Presque chaque personne qui se fait appeler un spécialiste UX préconise facilité d'utilisation et opérations significatives ( voir aussi ). Cela implique que si une option n'est pas valide, elle ne devrait pas vraiment l'être. Permettez-moi citation d'un article de sability.gov :
Assurez-vous que le système communique ce qui se passe. Informez toujours vos utilisateurs de l'emplacement, des actions, des changements d'état ou des erreurs. L'utilisation de divers éléments d'interface utilisateur pour communiquer l'état et, si nécessaire, les étapes suivantes peuvent réduire la frustration de votre utilisateur.
Comme de bonnes possibilités pour empêcher un événement de se produire pourraient être de désactiver les widgets qui permettent à l'utilisateur de continuer (lorsque la sélection n'est pas valide); ne pas autoriser la sélection du tout; ou laisser l'utilisateur continuer mais donner un résultat qui rend évident pourquoi cette sélection n'était pas bonne du tout. Et ici, je citation :
Un grand design est invisible Une curieuse propriété d'un grand design est qu'il passe généralement inaperçu par les personnes qui l'utilisent. Cela s'explique notamment par le fait que si la conception réussit, l'utilisateur peut se concentrer sur ses propres objectifs et non sur l'interface… lorsqu'il atteint son objectif, il est satisfait et n'a pas besoin de réfléchir à la situation. En tant que designer, cela peut être difficile… car nous recevons moins d'adulation lorsque nos designs sont bons. Mais les grands designers se contentent d'un design bien utilisé… et savent que les utilisateurs satisfaits sont souvent silencieux.
Donc, si c'est une possibilité de ne même pas considérer les données "nulles" pour une sélection qui pourrait être la meilleure approche. Un problème courant ici est que, lorsqu'il s'agit de grandes quantités de données, l'utilisation de cette approche préventive de la conception peut être trop coûteuse en calcul. Ainsi, vous ne pouvez dire que l'opération n'est pas valide après avoir réellement essayé de l'exécuter. Si tel est le cas, il ne reste que peu d'options à dire à l'utilisateur pourquoi il n'est pas possible de continuer ou simplement de donner un résultat qui rend évident la sélection n'est pas bonne (tableau vide avec un message gris au centre disant quelque chose comme " la sélection est vide ").
Je pense que l'annulation de l'opération sans fournir une explication raisonnable à quelque chose qui pourrait ne pas être évident pour l'utilisateur est le pire des cas.
Vous avez mentionné un autre point:
En cas d'empêchement, feriez-vous une cascade d'options de drilldown? Ce qui signifie que si l'utilisateur met à jour un filtre antérieur, il réinitialise tout ce qui suit, ce qui pourrait potentiellement annuler les sélections antérieures de l'utilisateur. OR Souhaitez-vous essayer d'étiqueter quoi que ce soit qui se produira?
Ce qui implique que certains changements pourraient avoir des répercussions sur d'autres entrées utilisateur (si je l'ai bien compris). Il n'est pas toujours facile de maintenir un flux de travail dynamique où aucune action de l'utilisateur n'est gaspillée. Mais si vous voulez le faire, c'est certainement la meilleure option. Si un changement doit survenir à un certain moment dans le "passé" du flux de travail, son "futur" doit être mis à jour dans les champs strictement nécessaires. Donc, si vous avez un flux de travail où vous indiquez une adresse commençant par le pays et suivie par la région, la ville, le bloc, la rue, la porte, changer le champ du pays (après avoir rempli tout le questionnaire) ne devrait réinitialiser les champs restants que s'ils s'avèrent incompatibles.
Il est difficile de percevoir si l'un de ces points est valable pour votre cas particulier. Envisagez de proposer une approche plus visuelle (peut-être avec un croquis de votre interface graphique) de votre problème. Dans tous les cas, ma conclusion et mon opinion est que votre conception doit être préventive et invisible (si possible).
Personnellement, je suis très frustré lorsque je suis, sans explication, empêché de définir des options qui me semblent sensées, mais bien sûr, essayer de trouver une explication raisonnable de ce qu'il ne faut pas faire qui couvre tout est souvent impossible sans rendre l'explication si générique que c'est inutile.
Dans votre cas spécifique, il peut être utile d'avoir un champ (estimé) nombre de points de données en lecture seule en haut de votre boîte de dialogue de sélection, ou encore mieux un aperçu du graphique si la vitesse de traitement permet, afin que l'utilisateur puisse rapidement voir quelle (s) sélection (s) va entraîner un graphique avec trop peu de données.
De nombreux sites de shopping sur le Web, Amazon vient à l'esprit, ont une fonctionnalité similaire lorsque vous filtrez une recherche, vous avez votre nombre actuel de correspondances et après chaque option de case à cocher, le nombre d'articles que vous verrez si vous sélectionnez cette option.