web-dev-qa-db-fra.com

Comment créer un "assistant non linéaire"?

Je sais que je suis en quelque sorte oxymoronique ici en me référant à un sorcier, mais je ne sais pas comment appeler cela.

J'ai un ensemble d'applications qui font des choses différentes, mais qui font partie d'un processus complet.

(Je suis vraiment stupide cette application b/c la fonctionnalité n'est pas importante autant que de comprendre que les objets sont transmis d'une application à l'autre)

Application 1: l'utilisateur voit un tas de balises que l'utilisateur agrège pour former une liste

Application 2: l'utilisateur prend sa liste et peut voir comment sa liste fonctionnera dans d'autres applications

Application 3: l'utilisateur prend la liste et peut y ajouter plus de détails et de paramètres

Application 4: l'utilisateur voit toutes ses listes qu'il a créées (il peut créer autant de listes qu'il le souhaite) et décide où afficher ses listes (dans d'autres applications).

Le problème que j'ai, c'est qu'il s'agit d'un flux de travail non linéaire à l'exception de la toute première fois que l'utilisateur utilise ces applications. Par conséquent, dans le 2ème + temps où ils utilisent cette application, ils pourraient très bien vouloir simplement aller à l'application 4 sans passer par les applications 1-3.
Je veux communiquer à l'utilisateur que toutes ces applications sont liées et interdépendantes d'une manière logique. Je veux qu'ils comprennent que si oui, ce sont des étapes d'un processus, ils peuvent passer à n'importe laquelle de ces étapes comme bon leur semble.
D'une certaine manière, je veux quelque chose comme un assistant - ce que j'aime des assistants, c'est que vous pouvez voir à quelle étape vous vous trouvez dans un processus et que chaque étape aide à construire le résultat final. Mais les assistants b/c sont basés sur un flux de travail linéaire, cela ne fonctionnera pas pour moi. Quelqu'un a-t-il des suggestions ou des exemples sur la meilleure façon de réaliser ce que j'essaie de faire?

Si vous avez besoin d'éclaircissements (b/c je me rends compte que c'est si vague), veuillez me le faire savoir dans les commentaires et je serai heureux de clarifier car je ne sais pas comment y parvenir au mieux.

2
yeahumok

sauts et boucles

Donc, soyez clair ici, vous avez quatre tâches utilisateur qui, avec certaines limitations, peuvent être effectuées en de nombreuses séquences. Plus précisément, il y a 1) Créer une liste, 2) Liste de test, 3) Définir les détails de la liste et 4) Afficher la liste. De toute évidence, l'utilisateur doit créer une liste avant de faire quoi que ce soit d'autre avec elle. Il existe peut-être d'autres limitations, telles que l'utilisateur ne peut pas (ou ne le fait généralement pas) définir les détails de la liste sans tester d'abord la liste, mais pour la plupart, la séquence est ouverte. Peut-être qu'un utilisateur crée une liste puis la teste, puis en crée une autre puis la teste, ou peut-être qu'un utilisateur crée une liste de couples, puis les teste chacun. Des choses comme ça.

Se décoller sur un sous-optimal

Vous gravitez vers quelque chose comme un assistant, mais reconnaissez que les assistants ne sont bons que pour un seul chemin linéaire à travers les différentes étapes potentielles, pas ce saut et la répétition d'étapes dans des séquences imprévisibles. En tant que concepteur, pour ne pas vous fixer sur une alternative de conception particulière (comme les assistants), concentrez-vous sur pourquoi vous aimez l'alternative, pas ce que l'alternative est .

Vous dites qu'un assistant permet aux utilisateurs "de voir quelle étape [les utilisateurs] sont dans un processus et que chaque étape aide à construire le résultat final". Les assistants indiquent l'étape actuelle par la fenêtre ou la page que l'utilisateur voit en ce moment. Alors, comment pouvez-vous indiquer une étape autrement qu'en changeant la fenêtre/page entière? Un assistant lui-même n'est en fait pas trop bon pour indiquer les progrès. Vous devez ajouter "Étape 3 sur 5" ou un graphique équivalent à chaque fenêtre/page, et parfois vous ne pouvez pas parce que l'assistant peut entraîner l'utilisateur dans différentes branches de différentes longueurs en fonction de l'entrée de l'utilisateur dans les fenêtres/pages précédentes. Mais la question pour vous est, comment pouvez-vous indiquer les progrès, que ce soit un assistant ou non?

Vous avez peut-être reconnu un autre problème avec un assistant pour ce contexte: ils ne fonctionnent que sur une seule entité (une liste, dans votre cas). Cependant, vos utilisateurs ont plusieurs entités chacune, qui peuvent être à une étape différente du traitement à un moment donné (il peut même y avoir un certain retour aux étapes précédentes pour certains). Vous devez suivre l'état et la progression sur chaque liste .

Si ce n'est pas un assistant…

Maintenant que nous nous sommes éloignés de l'assistant et revenons à ce dont les utilisateurs ont vraiment besoin, la solution devrait être plus claire. Je pense que vous avez besoin d'un tableau de bord. Vous avez besoin d'une fenêtre "d'accueil" qui affiche un résumé du travail de l'utilisateur. Ce serait probablement un tableau des listes d'utilisateurs avec des champs/cellules qui résument ou agrègent 1) ce qui est sur chaque liste, 2) comment la liste fonctionne, 3) quels détails/paramètres elle a, 4) où elle est affichée. Vous pouvez avoir un petit contrôle dans chaque cellule pour lancer l'application appropriée pour la liste correspondante pour terminer (ou refaire/modifier) ​​l'étape.

Les cellules sont vides si l'utilisateur n'a pas effectué une étape particulière sur une liste, fournissant une indication graphique claire et intuitive de l'étape et de la progression de chaque liste. L'ordre des cellules "suggère" l'ordre d'effectuer les étapes, sans verrouiller l'utilisateur dans cet ordre (si vous devez restreindre l'ordre, désactivez dynamiquement les contrôles qui lancent les applications si nécessaire).

Tirer le meilleur parti de celui-ci

De préférence, chaque cellule du tableau indiquera non seulement si une étape a été terminée, mais comment elle a été terminée. La cellule 1 peut être des exemples de balises de la liste, ou un nombre de balises (si cela est utile), la cellule 2 peut fournir une moyenne pondérée des mesures de performances ou peut-être un graphique sparkline, etc. Selon la taille de votre écran et le nombre de listes que les utilisateurs ont généralement (et donc la taille de chaque cellule), vous pouvez être en mesure de mettre tous les détails de l'étape dans la cellule (par exemple, les performances de tous les tests). Mettre un tel contenu dans les cellules aidera les utilisateurs à distinguer les listes et peut-être à les aider à décider s'ils veulent refaire certaines étapes.

Autant que possible, les "applications" doivent être intégrées au tableau de bord/page d'accueil pour limiter la navigation et l'orientation des frais généraux (contrairement à un assistant, qui pourrait automatiquement conduire l'utilisateur à la prochaine application, vos utilisateurs doivent choisir explicitement l'application et la liste depuis la maison/le tableau de bord, car ce n'est pas prévisible). Ce que vous pouvez faire dépend de la complexité de l'interface utilisateur de chaque application. Par exemple, plutôt qu'une "application" pour définir les détails de la liste, vous pouvez afficher les paramètres de la liste dans une relation maître-détail: les contrôles d'édition sur place sous le tableau des listes affichent les paramètres actuels de la liste actuellement sélectionnée. Pas besoin de lancer explicitement l'application Détails et paramètres. Bien sûr, cela ne fonctionne bien que si les paramètres de liste sont relativement peu nombreux et que vous pouvez vous permettre de prendre de l'espace sur l'écran du tableau des listes.

Comme autre exemple, un clic sur le contrôle des performances pourrait ouvrir une simple boîte de dialogue de paramètres de test et un bouton pour exécuter le test et fermer la boîte de dialogue; les résultats n'apparaissent que dans la cellule (s'ils correspondent), éliminant ainsi la nécessité de revenir de la page de résultats de l'application Test et performances à la page d'accueil/tableau de bord. Si le test s'exécute rapidement (<0,5 seconde) et que les paramètres du test ont tendance à être fixés entre les listes et les sessions, laissez l'utilisateur les définir dans Options/Préférences et exécutez automatiquement le test chaque fois que l'utilisateur crée/modifie une liste. Pas besoin de lancer explicitement l'application Test and Performance. Un traitement sophistiqué n'a pas nécessairement besoin d'une interface utilisateur compliquée.

7
Michael Zuschlag

Vous pouvez essayer de présenter les étapes comme un ensemble ordonné. L'ordre de haut en bas définit la séquence des étapes, telle qu'elle sera perçue par les utilisateurs.

Chaque bouton contient des instructions, de sorte que les nouveaux utilisateurs peuvent sélectionner l'étape nécessaire, tandis que les nouveaux utilisateurs sont dirigés par la séquence de haut en bas.

enter image description here

Vous pouvez également implémenter certains principes de l'interface utilisateur pédagogique dans votre interface:

  • Restez simple. Présentez un concept de base à la fois et utilisez des images lorsque cela est possible. Envisagez d'ajouter une section d'aide à un menu déroulant Paramètres dans votre application Windows Store pour traiter des fonctionnalités complexes.
  • Enseigner en contexte. Intégrer l'interface utilisateur pédagogique avec la tâche qu'elle aide un utilisateur à accomplir. Un utilisateur est plus susceptible de conserver un concept lorsqu'il est présenté au moment où il en a le plus besoin. Ne bloquez pas l'interaction. Assurez-vous que les utilisateurs peuvent toujours interagir avec votre application lorsque l'interface utilisateur pédagogique est présente. L'interface utilisateur pédagogique devrait aider les utilisateurs, pas les ennuyer en les gênant.
  • Enseigner, puis disparaître. Supprimer l'interface utilisateur pédagogique dès qu'elle n'est plus pertinente ou permettre à l'utilisateur de la rejeter. De plus, dans la plupart des cas, les utilisateurs n'ont besoin que d'une interface utilisateur pédagogique affichée une fois. Évitez d'afficher à plusieurs reprises la même interface utilisateur pédagogique.
  • Utilisez avec parcimonie. Une conception réfléchie et une section d'aide peuvent souvent enseigner aux utilisateurs tout ce qu'ils doivent savoir pour profiter de votre application. Tenez compte de l'étendue des options de conception avant d'ajouter une interface utilisateur pédagogique à votre application.
2
Alexey Kolchenko

Je recommanderais une barre des quatre étapes sous forme de boutons ou de liens.

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

La première fois qu'ils passent par le processus, les étapes qu'ils n'ont pas suivies seront désactivées (grisées), mais après cela, ils peuvent rapidement passer d'une étape à l'autre dans n'importe quel ordre. Selon le nom de chaque application/étape, il peut être judicieux de placer cette barre en haut de la page.

1
Luke