Je suis chargé de moderniser de nombreuses applications UNIX plus anciennes vers de nouvelles applications Web. Les applications UNIX sont entièrement basées sur le clavier (par exemple "04" pour sélectionner la quatrième application, "Entrée" pour passer au champ suivant, "M" pour revenir au menu, etc.) Les utilisateurs de ces applications héritées sont habitués à cela, et sont assez rapides à travailler avec ces applications, car ils connaissent leurs raccourcis.
Lorsqu'ils voient les nouvelles versions Web, ils sont souvent repoussés. Ils voient beaucoup de clics et ont immédiatement l'impression qu'ils ne peuvent pas être aussi productifs. Une partie du problème est l'entêtement, une partie la formation, une autre est peut-être que les nouvelles interfaces ne sont pas aussi intuitives qu'elles pourraient l'être.
Du point de vue de l'utilisabilité, quelles sont les choses qui peuvent être faites pour guider ces utilisateurs? Quels types de raccourcis, fonctionnalités et options peuvent/doivent être intégrés aux applications Web pour permettre une saisie rapide des données?
(Il s'agit peut-être d'initier les utilisateurs à la touche "Tab" et à "Fichier> Imprimer".)
Contexte philosophique
Pour l'utilisateur, le système est l'interface utilisateur. Il s'agit en fait de la définition d'une interface par les programmeurs. Vous pouvez modifier toutes les autres parties comme vous le souhaitez, tant que l'interface reste la même que les utilisateurs ne remarqueront pas. Cependant, dès que vous modifiez l'interface utilisateur, vous affectez la vie des utilisateurs.
DA01 a raison sur ce point pour les applications gourmandes en données, bien qu'elles aient une courbe d'apprentissage très importante, le clavier est la meilleure interface.
Cependant, ils ne sont pas intuitifs. Ils ne disent pas vraiment à l'utilisateur comment ils doivent être utilisés. Ils nécessitent généralement un manuel, une aide interne et beaucoup de formation.
La question est donc: comment pourriez-vous créer des applications cliquables qui pourraient encore être utilisées en utilisant les mêmes anciens raccourcis clavier auxquels tous vos utilisateurs sont habitués, tout en présentant aux utilisateurs novices/non formés une interface intuitive?
Contexte de la recherche
Apprenez tout ce que vous pouvez sur les choses suivantes:
C'est peut-être un peu unilatéral, tout cela est du Raskin, mais ils vous montrent toujours comment créer une interface utilisateur efficace basée sur un clavier, quelque chose que vous ne pouvez pas trouver dans la dernière "comment concevoir des écrans tactiles comme l'iPhone, iPad ou Android "genre de livres.
Recherche d'utilisateurs
Prochaine chose: obtenez un écran + un keylog et apprenez comment les gens utilisent le système. Un outil efficace pour cela serait la commande UNIX script , qui crée des "scripts de type", que vous pouvez rejouer. Heureusement, il n'y a pas de raccourcis cachés pour les caractères, sinon vous aurez peut-être aussi besoin de keymon .
Création de storyboards de fonctionnalités originales
Ensuite, dessinez un organigramme, avec chaque écran de touches connecté avec une flèche, et pour chaque flèche, notez les touches qui vous y mènent réellement. Un exemple serait:
Amélioration des fonctionnalités
Voici l'astuce: reconcevoir chacun des écrans de touches avec leur équivalent graphique, en s'assurant que les raccourcis clavier restent les mêmes entre eux
Il se peut que vous n'ayez pas besoin de confirmation, mais que vous préfériez avoir une annulation à la place. Assurez-vous que dans ce cas, le "y" de la confirmation est mangé sans provoquer d'erreurs (comme si un y arrive dans la seconde - temps de barrière cognitive pour la rétroaction - ignorez-le)
Il se peut que le menu ne prenne pas un plein écran maintenant, c'est aussi bien, il suffit de le mettre en surbrillance lorsque M arrive, afin qu'ils sachent qu'ils sont au bon endroit. Donnez-leur des commentaires (basés sur le livre normand ), tout comme ce que vous feriez normalement. Néanmoins, conserve la cohérence au niveau du clavier .
Assurez-vous également que tout le monde dispose de toutes les informations sur tous les écrans clés pour prendre les bonnes décisions. Par exemple, lors de l'enregistrement d'un formulaire, le formulaire lui-même doit être visible. Cela n'était peut-être pas possible avec l'ancienne interface, mais cette fois, vous avez des pixels avec lesquels travailler.
Rendre l'interface utilisateur cliquable
Tout en respectant la règle précédente, c'est-à-dire en maintenant le système cohérent, rendez-le plus ou moins maniable par l'interface graphique. Il se peut que les flux GUI soient un peu alternatifs, mais le système devrait toujours répondre à la même séquence de clavier de la même manière.
Donnez des conseils sur le clavier
Afin d'aider les nouveaux utilisateurs à apprendre la fonctionnalité, concevez un indice visuel pour gérer les raccourcis clavier. Un exemple pourrait être:
(Pas exactement agréable du point de vue esthétique, mais c'est toujours plus agréable qu'une interface texte uniquement j'espère)
La solution parfaite serait de les gérer de manière contextuelle, c'est-à-dire de les activer uniquement lorsque le contexte autorise réellement leur utilisation, cela pourrait ou non être possible. Par exemple, un bouton "Enregistrer" pourrait être activé pour - cliquez, mais pourrait être désactivé pour raccourci s'il y a un autre champ en focus. Que vous leur montriez un bouton désactivé (qui est désactivé à la fois au clavier et au clic dans son état actuel), cela dépend de vous.
De plus, vous pouvez permettre aux utilisateurs de les masquer en fonction de leurs préférences, cela frustre simplement les anciens, également ceux qui préfèrent ne pas l'apprendre du tout, mais aide peut-être à la transition.
Concevoir un contrôleur à clavier (tâche devs)
Dites aux programmeurs que l'original Krassner & Pope MVC a pensé à MVC de manière à ce que les claviers puissent également être utilisés. C'est en fait le MVC qui est cité dans le livre Design Patterns. Ce pourrait être un modèle différent de ce à quoi ils sont habitués de nos jours, mais c'est la vie. Et encore une fois, c'est en fait un défi: vous avez des tonnes d'utilisateurs à prendre en charge, avec une interface littéralement facile à utiliser! :)
Testez les prototypes avec les utilisateurs
Vous aurez deux groupes d'utilisateurs: ceux qui connaissent les raccourcis clavier comme réflexe musculaire/mémoire musculaire, et ceux qui ne le savent pas. Testez les deux. Vous savez, chose habituelle, objectif de l'histoire, essayez de parcourir le système et d'atteindre l'objectif de l'histoire, comment vous êtes-vous senti, est-ce que cela s'est bien passé, réfléchissez à haute voix, est-ce que vous vous êtes senti bien, où vous avez perdu à tout moment ... UX research des trucs.
Implémenter l'application
C'est ça. Processus fastidieux, mais un défi unique pour construire une interface qui est utilisable d'une manière que nous ne pensons plus aujourd'hui à la convivialité. Je pense que ça vaut le coup, ce serait une très bonne aventure, je suis sûr que j'adorerais ça. Là encore, j'ai moi-même mes propres souvenirs musculaires, ayant commencé à utiliser la ligne de commande UNIX dans les années 90, j'utilise toujours la ligne de commande sur OS X même pour regarder mes films parfois, car c'était le seul moyen à l'époque ...
Ou
Attendez simplement que les anciens utilisateurs s'éteignent/quittent l'entreprise. C'est aussi une solution.
J'espère que cela vous a aidé.Profitez de la balade, sérieusement, ce sera unique et amusant, UX vise à faire la meilleure expérience pour les utilisateurs, pas sur la brillance!
L'efficacité supérieure des applications UNIX
Les interfaces utilisateur UNIX ont pour tradition de privilégier l'efficacité des utilisateurs à l'apprentissage. Par exemple, les concepteurs d'UNIX demandent: "Pourquoi taper" renommer "alors que vous pouvez taper plus rapidement" mv "à la place? Qui se soucie si c'est plus difficile à mémoriser? " Je m'attends à ce que les versions UNIX des applications permettent aux utilisateurs d'effectuer les tâches avec un temps et des efforts remarquablement réduits. C’est un élément important pour être utilisable.
Par exemple, en utilisant les temps de l'opérateur GOMS KLM, il ne faut en moyenne que 1,6 seconde pour sélectionner un élément de menu en tapant deux touches comme "04". En revanche, il faut en moyenne 2,5 s pour sélectionner un lien avec une souris - ou 2,9 s si l'utilisateur doit déplacer ses mains du clavier vers la souris (si la plupart des autres entrées sont du texte). S'il y a beaucoup de sélection comme ça, les applications Web vont se sentir sensiblement plus lentes.
Si chaque sélection de lien comprend un chargement de page de navigateur complet qui prend une seconde ou plus, les applications Web vont se sentir carrément maladroites. En revanche, votre application UNIX moyenne peut afficher une nouvelle ligne ou même un tout nouvel écran en moins de 0,1 seconde. Si vous regardez vos utilisateurs, vous verrez probablement vos utilisateurs experts tirer des chaînes d'entrées mémorisées comme s'ils tapaient un seul mot: "04021206, d'accord, je suis sur le bon écran, que voulez-vous que je fasse?" Vos utilisateurs ont donc un point: vous leur donnez peut-être une interface utilisateur moins utilisable (en termes d'efficacité) que celle dont ils disposent actuellement. Pourquoi devraient-ils en être heureux?
L'apprentissage supérieur des applications Web… ou peut-être pas
En théorie, les applications Web ont une excellente capacité d'apprentissage, une dimension d'utilisation différente de l'efficacité. Avec une simple saisie par pointer-cliquer et des descriptions et des conseils à l'écran pour l'utilisateur, un utilisateur peut accéder à l'application pour la première fois sans avoir à taper une fois "homme".
Cependant, comme vous le laissez entendre, les nouvelles applications Web ne sont peut-être pas plus faciles à apprendre. Si les applications UNIX comportent des menus répertoriant les options ainsi que les touches pour les sélectionner (par exemple, "01 Network Edit," 02 Troubleshoot, 03 Deploy, M Main Menu "), alors c'est très intuitif. Comment Tab est-il plus facile à apprendre qu'Enter? Ce n'est qu'une question de ce à quoi vous êtes habitué. Si les applications ont vos interfaces utilisateur de formulaire et de menu de base, le passage d'UNIX au Web ne va pas le rendre plus facile à apprendre. Tout ce que vous obtenez est une police proportionnelle et de jolies couleurs. Big whup. Être moderne juste pour être moderne ne va pas le couper.
Et si votre application Web ne comprend que quelques commandes de champs, icônes ou étiquettes de lien mal choisies, ou choix IA, cela pourrait facilement être moins apprenant que l'application UNIX pour votre population d'utilisateurs.
Solutions
Alors peut-être que la situation est que vous voulez que vos utilisateurs fassent l'effort d'apprendre quelque chose (en formation ennuyeuse ou frustrant par eux-mêmes) qui est plus lent à utiliser que ce à quoi ils sont habitués. Il n'est pas surprenant qu'ils ne l'aiment pas.
Apprenabilité
Tout d'abord, vous devez rendre l'application Web aussi lisible que possible pour vos utilisateurs particuliers. Mettez donc des raccourcis clavier comme "03" pour sélectionner le troisième élément du menu et "M" pour accéder à la page d'accueil/au menu principal. Faites entrer Enter dans le champ suivant. Peu importe si ce n'est pas standard? Les normes ne sont bonnes que si les utilisateurs les connaissent. Si vous avez à la fois d'anciens utilisateurs et de nouveaux utilisateurs avertis du Web (maintenant ou à l'avenir), alors envisagez de faire les deux Tabulation et Entrée pour passer au champ suivant. Ou, si les utilisateurs UNIX utilisent Tab pour autre chose, ou si vos autres utilisateurs s'attendent à ce que Enter exécute une boîte de dialogue (la norme GUI), envisagez un mode hérité pour vos utilisateurs hérités qui utilise les raccourcis hérités.
Si vous devez, incluez des conseils de texte et des rappels sur la façon d'utiliser les applications Web. Mais souvenez-vous: lire une documentation, même brève, prend du temps et distrait l'utilisateur de la tâche. C'est mieux que d'utiliser l'homme, mais pas aussi bon que de n'avoir besoin de rien. Envisagez d'utiliser des images et des métaphores pour documenter plus rapidement l'interface utilisateur (par exemple, des lignes et des flèches dirigeant l'utilisateur à travers le flux de tâches).
Plus que l'apprentissage
Maximiser l'apprentissage n'est pas suffisant car vos utilisateurs hérités connaissent déjà les applications UNIX. Rester avec UNIX signifie zéro apprentissage, alors que passer à une application Web signifie au moins un peu d'apprentissage, si petit soit-il. Vous ne pouvez pas gagner sur l’apprentissage tout seul. Pour obtenir l'approbation des utilisateurs hérités, vous devez battre les applications héritées dans leur propre jeu et rendre les applications Web plus efficaces que les applications héritées. Obtenez une meilleure efficacité (avec les techniques que je décris ci-dessous), puis comparez publiquement les applications UNIX aux applications Web pour vous convaincre et convaincre vos utilisateurs que la nouvelle application est plus rapide une fois qu'ils l'ont apprise.
Si vous ne pouvez pas rendre les applications Web plus efficaces, vous devez offrir un autre avantage: réduction des erreurs, récupération plus rapide des erreurs, plus de commodité (par exemple, peut être utilisé à distance ou lorsqu'il est mobile) - quelque chose. Vous devez améliorer les applications Web suffisamment pour que cela en vaille la peine.
Dans ce cadre, étudiez le système hérité et regardez les experts l'utiliser et trouvez:
Avantages à inclure dans le nouveau système, tels que les raccourcis clavier et les fenêtres contextuelles rapides.
Faiblesses à éviter dans le nouveau système, telles que l'absence de valeurs par défaut ou le manque de saisie préservée, ou la saisie de texte lorsqu'un menu peut être utilisé.
Ce qui compte pour les utilisateurs - ce que vous pouvez leur donner de plus dans les nouvelles applications.
Minimiser la navigation et le temps brut
Tirez parti du fait que vous disposez probablement de plus d'espace d'écran que les applications UNIX ont été conçues pour toutes ces années, et utilisez-le pour minimiser les frais de navigation et présenter une hiérarchie d'informations plus claire. Utilisez AJAX ou d'autres outils pour minimiser davantage "l'accise" de la navigation et obtenir des temps de réponse de 0,2 seconde ou moins. Évitez les pages de confirmation et les messages d'erreur - utilisez plutôt les commentaires sur la page. Validez la saisie d'un champ à la fois en utilisant ce type de commentaires. Utilisez des formulaires et des tableaux de modification sur place - évitez les boîtes de dialogue.
Cohérence de la suite
Assurez-vous que vos applications Web sont cohérentes en interne. Si les utilisateurs doivent s'arrêter et réfléchir à la règle qui s'applique dans un contexte donné, vous perdrez en efficacité. Assurez-vous que la même action a le même effet dans toute votre suite d'applications. La même commande doit avoir la même étiquette, les mêmes icônes, les mêmes raccourcis et la même position relative dans toute la suite. Le même champ doit utiliser le même nom, les codes graphiques, les unités et le format dans toute la suite.
Autre
Les éléments de conception généraux pour améliorer l'efficacité/la vitesse comprennent:
Raccourcis clavier, déjà mentionnés.
Menus contextuels, qui raccourcissent le temps de balayage des éléments de menu.
Faites glisser et déposez surtout comme alternative à une boîte de dialogue.
Étiquettes concises mais claires (plus rapides à numériser et à lire que les étiquettes verbeuses typiques des applications Web).
Divulgation progressive, utilisée avec soin pour les fonctionnalités rarement utilisées qui peuvent distraire les utilisateurs.
Ordonner les menus des choix les plus courants aux moins courants (tout en conservant l'ordre sémantiquement sensible si nécessaire).
Bons défauts.
J'ai plus d'informations sur la gestion des utilisateurs hérités et des experts en général sur Qu'avez-vous fait pour vos utilisateurs avancés récemment ?
On dirait que ce sont principalement des applications lourdes de saisie de données. En tant que tels, les claviers sont probablement le moyen le plus rapide et le plus simple pour les utilisateurs d'entrer les données. Je suggère de le garder de cette façon. Assurez-vous que l'application est entièrement navigable au clavier et incluez les raccourcis clavier appropriés (peut-être comme option pour l'utilisateur final)