Dans mon application, il y a une longue liste d'objets créés par l'utilisateur dans une configuration maître-détail. Tout ce que nous montrons dans la liste principale est le nom de l'objet, et la liste est alphabétisée. J'ai remarqué que mes utilisateurs nommaient leurs objets en commençant par des caractères spéciaux, pour que ces objets montent en haut de la liste.
Quelle (s) fonctionnalité (s) dois-je ajouter pour qu'ils n'aient plus besoin de le faire?
Ce comportement utilisateur indique une excellente occasion d'améliorer la convivialité de votre application. Demandez à quelques utilisateurs pourquoi ils renomment des éléments et essayez de comprendre le besoin ou le problème sous-jacent auquel ils sont confrontés.
Selon les réponses que vous obtenez, les solutions possibles peuvent inclure:
Dans les deux cas, ne limitez pas les utilisateurs en interdisant les caractères spéciaux. Jusqu'à ce que le problème sous-jacent soit résolu, la solution actuelle pourrait leur sauver la vie.
Lorsqu'il s'agit d'optimiser la conception, les utilisateurs se trouvent être les meilleurs concepteurs.
Je suggère que - au lieu de deviner - vous devriez entrer en contact avec ces utilisateurs, qui ont piraté le mécanisme de tri pour demander ce qu'ils voulaient réaliser.
Peut-être qu'ils voulaient juste épingler certains éléments en haut de la liste, pour lesquels la mise en vedette serait probablement suffisante.
Mais peut-être que ce n'est qu'un symptôme d'un besoin plus profond, peut-être qu'il doit être en quelque sorte ordonné ou structuré. Sans leur demander, il sera difficile de mettre en œuvre le bon mécanisme dans ce cas.
EDIT (après quelques discussions dans les commentaires ci-dessous):
Merci à tous pour vos précieux commentaires. Je pense que cette réponse doit être clarifiée.
Il y a des cas où les utilisateurs veulent essayer d'échapper aux limites prévues par le concepteur. De leurs actions, certaines conclusions peuvent surgir, mais des conclusions rapides sur les solutions ne sont pas toujours les bonnes.
Une petite digression d'abord, vous pouvez la sauter si vous le souhaitez. Il y a un mème sur l'expérience utilisateur, montrant une porte et un chemin autour d'elle, créé par les utilisateurs. Bien qu'il soit facile de critiquer, il est risqué de répondre à la solution, uniquement en fonction de ce comportement. S'il devait retirer le portail, ce serait facile. Cependant, peut-être qu'il a son but, en fait? Cela peut empêcher les animaux de pénétrer à l'intérieur, cela peut être une obligation légale de l'avoir et si l'on y pense davantage, ils trouveront probablement d'autres réponses possibles aux questions: "Pourquoi est-ce ici?" et "Pourquoi les gens essaient de contourner cela?".
Demander aux utilisateurs devrait être un élément central de la création d'une solution si nous ne sommes pas sûrs de la nature du problème. Et dans ce cas - nous pouvons deviner, mais à mes yeux, la mise en œuvre de toute solution basée sur un la conclusion entraînerait un risque que la "solution" soit inexacte, ne répondant pas aux besoins réels de l'utilisateur.
Dans ce cas particulier, ce comportement peut signifier que les gens souhaitent que certains éléments soient épinglés en haut, mais ici, il existe d'autres réponses possibles:
Il y a donc beaucoup à analyser ici.
Passons maintenant à la ligne les utilisateurs sont les meilleurs designers. Quand ils utilisent quelque chose - que ce soit un ordinateur ou un bureau ou une tasse ou autre chose - les gens changent souvent la façon dont ces choses fonctionnent en un tout petit peu. Ils placent cet autocollant sur la caméra de l'ordinateur portable, attachent le sachet de thé à la poignée d'une tasse, organisent leurs affaires sur leur bureau pour qu'il soit confortable pour eux. Ils inventent des solutions à leurs besoins et les mettent en œuvre - ils sont donc des concepteurs. Cette conception même, si elle est observée, peut être une source d'évolution supplémentaire des choses (bloqueur de caméra, une tasse avec un support pour sachet de thé, un bureau avec un support pour stylos le construit).
Par conséquent, s'ils piratent la dénomination des choses dans cette solution, il est bon de observer ce qu'ils proposent. Cela peut conduire à une connaissance plus approfondie de ce qu'ils veulent réaliser. Avec toutes ces informations, il est facile de leur poser une question cruciale: "Pourquoi faites-vous cela comme ça? Que voulez-vous réaliser?"
Et après avoir acquis ces connaissances, pour conclure, demandez-leur à nouveau si c'est ce qu'ils voulaient, peut-être suggérer quelque chose de mieux que ce qu'ils trouveraient, bien sûr. Mais seulement avoir cette confirmation - trouver les solutions et les mettre en œuvre.
En d'autres termes, le comportement des utilisateurs dans ce cas peut être une indication directe de leur besoin (et dans ce cas, l'épinglage peut être un bon choix), mais cela peut être juste un symptôme (dans ce cas, demander avant de mettre en œuvre ou même suggérer une solution est le meilleur choix).
En plus d'épingler des éléments en haut de la liste, de fausses entrées alphabétiques peuvent être utilisées pour les épingler au bas (un exemple trivial: j'utilise un contact appelé ZZ spam
avec une sonnerie silencieuse sur mon téléphone). En d'autres termes, c'est un système assez flexible.
Considérez la manière dont le tri par une plage de paramètres est intégré si largement: tous les gestionnaires de fichiers vous permettent de faire remonter les éléments récemment utilisés ainsi que le tri par nom, type, etc. Vos utilisateurs peuvent également être familiarisés avec le tri dans les feuilles de calcul , y compris l'utilisation d'une colonne à titre purement prioritaire.
Sans tri prioritaire/fréquemment utilisé, il s'agit en fait d'une bonne solution de contournement. À la place de vos utilisateurs (avec une liste partagée), je pourrais être tenté de choisir une convention de dénomination comme _<priority-level>_<item-name>
.
Lorsque les utilisateurs ajoutent des caractères spéciaux au début des noms, ils créent deux ou plusieurs types d'objets ou catégories dans le tri. Ces catégories peuvent être spécifiques, comme celles de cet exemple, ou plus générales comme favorite / not_favorite
ou objects_I_am_working_on / others
.
Vous pouvez fournir la fonctionnalité permettant de faire cette distinction, de classer les objets, de les trier par catégorie, puis par ordre alphabétique. L'idée est de retirer la "fonctionnalité" que vos utilisateurs ont créée eux-mêmes, des fonctionnalités du système, et de la fournir dans le système d'une manière (espérons-le) plus pratique.
Tenez compte de ces points: des caractères supplémentaires modifient la position dans la liste , font ressortir ces éléments et les éléments de groupe . Les utilisateurs peuvent modifier les noms pour une ou plusieurs de ces raisons.
Il est possible que quelle que soit la fonctionnalité que vous implémentez, les utilisateurs peuvent continuer à le faire (sauf si vous la refusez de force).
Prenons un autre système où cela se produit tout le temps: les systèmes de fichiers informatiques. La plupart des navigateurs de fichiers trient les noms par ordre alphabétique, et vous verrez les utilisateurs faire toutes sortes de choses pour contourner (ou, je dirais, avec) qui, comme mettre des espaces, des nombres ou AAAA
devant les noms de fichiers. Même si les navigateurs de fichiers modernes ont généralement des dizaines de fonctionnalités qui permettent d'autres types de tri et d'étiquetage des fichiers, vous constaterez en pratique que beaucoup de gens trouvent toujours plus simple de donner simplement à leurs fichiers certains noms pour les obliger à trier vers le haut. Un autre endroit où cela est souvent vu, comme l'ont souligné les commentateurs, est le carnet d'adresses.
La question est, cela casse-t-il les choses? Les noms sont-ils utilisés dans d'autres parties du système où les caractères spéciaux ou les AAA
en tête provoquent des problèmes? Sinon, ce n'est peut-être pas un gros problème. Si oui, alors peut-être une solution est de trier par champ différent (comme, par exemple, un "nom d'affichage" qui n'est pertinent nulle part ailleurs).
Le tri est un système simple. Quiconque connaît l'alphabet comprend déjà comment il fonctionne et peut découvrir des détails inconnus (comme le tri de certains caractères par rapport à l'alphabet) avec de simples essais et erreurs. Ce "quelque chose que vous savez déjà utiliser" est une puissante propriété UX, et je pense que ce serait une erreur d'ignorer.
Implémenter la saisie semi-automatique comme le filtrage
Inclure une zone de texte de filtre, ils peuvent entrer A et seuls les éléments indiquant A sont affichés.
Entrez AB, seuls les éléments avec AB sont affichés.
Sur un client lourd, cela peut être très très rapide. Sur un client Web, cela peut être plus lent car cela peut nécessiter un aller-retour vers le serveur Web.
De plus, si la liste peut contenir des objets d'eux et que d'autres leur donnent une option de case à cocher pour ne voir que leurs objets.
Quelle (s) fonctionnalité (s) dois-je ajouter pour qu'ils n'aient plus besoin de le faire?
Au minimum, ajoutez une fonction "élément favori" où les éléments favoris flottent vers le haut dans l'ordre de tri. Le niveau suivant est d'avoir un champ de priorité distinct qui revient par défaut à la normale mais avec quelques réglages au-dessus de la normale et quelques-dessous.
C'était le cas dans mon entreprise, où un scanné partagé avait un carnet d'adresses utilisé pour envoyer des documents numérisés par courrier électronique. Cette liste a été triée par nom associé à l'e-mail. Étant donné que l'interface utilisateur était assez difficile à manipuler (petit écran tactile, laggy), être en tête de liste était tout un avantage, alors les gens ont commencé à être imaginatifs dans la façon dont vous les décrivez.
Cela a été rapidement résolu en définissant le carnet d'adresses pour qu'il soit trié par date de création par défaut. Cela a rendu le service autorégulé: tout le monde pouvait recréer leur entrée pour arriver en haut de la liste, mais seules les personnes qui utilisaient beaucoup le scanner (comme le secrétaire) bénéficieraient vraiment de l'accélération. La plupart des employés qui n'utilisent le scanner qu'une fois par mois ont finalement réalisé que passer 1 minute à parcourir le carnet d'adresses par ordre alphabétique était plus rapide que de jouer à King of the Hill chaque fois qu'ils avaient besoin du scanner. Et ceux qui voulaient encore jouer n'avaient pas à modifier leur nom et à ruiner l'ordre alphabétique pour tout le monde.
Lorsque vous triez quelque chose par ordre alphabétique, vous donnez littéralement la priorité aux mots qui ont une valeur inférieure dans le codage ASCII.
...Pourquoi? Quelle est la signification de cette commande?
Maintenant vous savez et je sais que c'est pour aider à trouver quelque chose dans la liste - c'est le vrai but. C'est juste que l'alphabétisation ne répond pas directement à cet objectif.
En fin de compte, oui, votre utilisateur peut être considéré comme méchant pour exploiter votre erreur, mais soyons clairs, vous avez fait l'erreur. Pas eux.
N'énumérez pas d'objets. Affichez-en quelques-uns au hasard, peut-être groupés par fonction, implémentez peut-être une recherche en direct d'objets qui correspondent partiellement à une phrase. De cette façon, vous concevez un système où les utilisateurs ne sont pas récompensés pour avoir la valeur la plus faible est ASCII ordre trié, mais sont récompensés pour faire ce que vous voulez vraiment qu'ils fassent - nommer correctement leurs objets à décrire leur fonction.