L'application sur laquelle je travaille effectue des calculs très lourds. En ce moment, nous utilisons un spinner indéterminé. J'en deviens fou et j'imagine que nos utilisateurs sont encore plus ennuyés. Je pensais avoir un indicateur déterminé, mais nous ne savons pas combien de temps les calculs prendront.
J'ai donc pensé à prévoir un bouton d'annulation. Serait-ce une bonne solution pour les utilisateurs et leur donnera-t-il plus de contrôle?
(lorsque l'application calcule, il n'y a rien que l'utilisateur puisse faire à l'écran)
La réponse du champ de gauche est de rendre votre processus de calcul asynchrone. En d'autres termes, ne piègez pas vos utilisateurs sur une page où vous ne savez pas combien de temps ils seront bloqués. Au lieu de cela, demandez à l'instance "soumettre" un processus d'arrière-plan asynchrone, qui avertira ensuite l'utilisateur une fois terminé, à la fin du processus asynchrone.
Flux utilisateur de base:
Plus d'utilisateurs assis sur une page "morte".
L'autre chose à faire serait de refactoriser vos calculs afin qu'ils soient déterminés et prévisibles sur une période de temps, ce qui nécessiterait bien sûr plus de temps et de tests de régression. L'idée asynchrone est cependant au moins un pas important pour forcer l'utilisateur à rester assis là. :)
Je ne suis pas fan du bouton Annuler car la seule solution - encouragerait seulement les gens à appuyer dessus et les rendrait probablement plus impatients (ne pensez pas à un éléphant blanc sur un tabouret ... bon sang!). Je suppose que vous avez un avertissement sur le temps que les calculs peuvent prendre avant de le soumettre (avertissement - vos calculs peuvent prendre plus d'une heure (3 jours, peu importe). Ne fermez pas la fenêtre, mais vous pouvez ouvrez une nouvelle fenêtre et parcourez doucement pendant que nous vous découpons.)
Pouvez-vous exécuter le calcul sur une autre page?
En ce qui concerne l'indicateur sous-évalué - les calculs sont-ils ordonnés du tout (ou peuvent-ils être commandés?) Vous pouvez afficher une partie du calcul aux utilisateurs afin qu'ils sachent quelque chose se passe. Comme pour l'installation de logiciels - des milliers de bibliothèques défilent, l'utilisateur ne sait pas nécessairement ce qu'il fait, mais il sait que quelque chose se passe. S'ils sont commandés, ils pourront peut-être dire combien de temps cela prendrait.
la première chose que je me demandais était le fait que vous mentionnez que vous pouvez imaginer que vos utilisateurs sont plus ennuyés par cela que vous, cela semble être une occasion parfaite d'aller le comprendre, Sur le terrain :-)
Je ne comprends pas pourquoi quelqu'un voudrait appuyer sur le "bouton d'annulation", car il n'y a, selon vous, pas grand-chose d'autre à faire. Il y a un certain niveau de contrôle ajouté, mais dans quel but? Je m'attends à ce que l'on fasse le calcul, car c'est son objectif pour cette journée.
Quoi qu'il en soit, si l'utilisateur pourrait faire autre chose, vous pourriez envisager de le mettre dans une file d'attente visuelle ou quelque chose, donc que l'utilisateur puisse continuer à faire autre chose pendant qu'il peut vérifier et voir la progression de ce calcul (dans le coin supérieur par exemple).
Vous devez avertir l'utilisateur que l'exécution de cette action prendra très longtemps à calculer et qu'il ne pourra pas faire autre chose entre-temps.
Vous pouvez également essayer de donner une estimation de la durée probable du calcul et de placer le compte à rebours estimé sous la double flèche. Mais au final, il sera toujours plus qualitatif de déterminer le temps que cela durera. Une chose que vous devez prendre en compte, c'est le fait qu'il doit simplement bouger, même s'il peut être lent, certains mouvements sont meilleurs que rien.
Sources:
Je vous suggère de lire un rapport technique de l'Institut d'ingénierie logicielle de Carnegie Mellon intitulé " Supporting the CANCEL Command Through Software Architecture " qui explique en détail les éléments à présenter à l'utilisateur et comment l'implémenter dans un logiciel. Il y a également des citations dans le rapport de la recherche qui soutiennent les besoins des utilisateurs pour une annulation dans la situation que vous décrivez.