Comment ne pas réaliser une interface d'application web
La création d'une application web ou locale devrait faire intervenir au moins deux acteurs: un développeur et un designer.
La conception des interfaces a été révolutionnée plusieurs fois, notamment par Apple. Un premier progrès a été réalisé par l'unification (à l'époque de l'Apple II): tous les programmes devaient utiliser les mêmes commandes pour les mêmes fonctions, ce qui n'était pas le cas auparavant, il fallait réapprendre le clavier avec chaque logiciel et les programmeurs notamment ne pouvaient passer d'un éditeur à l'autre sans réapprendre les commandes.
Puis en reprenant les idées développées à Palo Alto, est apparue l'interface graphique avec la souris. Mais la firme a ensuite constamment innové sur ce plan et depuis l'iPod, n'a jamais mis en vente un appareil sans que son mode d'utilisation ne soit parfaitement mis au point pour fournir le comportement le plus intuitif à l'utilisateur. Pour ce faire, la tâche de conception des interfaces à été enlevées aux programmeurs.
Un programmeur est toujours la personne la mieux qualifié pour écrire un programme et quelquefois il est aussi capable de réaliser un interface parfaite. Mais cette partie est un fait un métier différent. Cela est montré par quelques expériences malheureuses, comme par exemple Gnome Shell 3!
Comment ne pas réaliser une interface
- Définir les fonctions du logiciel d'abord et créer une commande pour chacune ensuite.
- Rajouter fonctions après fonction au cours du temps, et ajouter un bouton pour chacune.
- Définir la parfaite interface pour ... un programmeur. Les utilisateurs ne sont pas toujours des techniciens et ne sont pas familiarisés avec les arcanes du fonctionnement d'un programme.
On peut trouver de bons exemples de mauvaises idées dans Windows, au moins jusqu'à la version 7 (je n'ai pas essayé la version suivante). Une fois sur deux, quand je clique sur un nom de fichier, le système propose de le renommer. Est-ce que renommer les fichier est si fréquent que l'on doive rendre cette opération si directe? Je ne crois pas. C'est une idée qui a paru intéressante aux programmeurs et qu'ils ont implémenté sans prendre en compte le moins du monde le point de vue de l'utilisateur.
Une autre anomalie, toujours à propos du renommage, est la capacité de renommer en bloc un groupe de fichiers. J'ai entendu dire que certains programmeurs appréciaient de pouvoir renommer en block les fichiers d'un projet, mais à part cela quel est l'intérêt de donner le même nom à plusieurs fichiers? Cela m'est arrivé quelquefois, mais par inadvertance, parce que je n'ai pas vu que des fichiers étaient sélectionnés dans la liste hors de la fenêtre visible... Et je devais ensuite rechercher ce que représentait chaque fichier!
Dans Windows, les exemples de mauvais choix de design sont innombrables. Quand on pousse une fenêtre sur le coté de l'écran pour voir les autres par exemple, elle s'affiche en plein écran et c'est plus qu'agaçant. Pour donner à l'utilisateur une meilleure expérience, on devrait suivre quelques règles...
Autre exemple... L'écran ci-dessus est celui de l'opérateur à Honolulu qui par mégarde à lancé une alerte au missile balistique dans le pays, alors qu'il voulait juste effectuer un test. Plus précisément, il voulait cliquer sur "DRILL - PACOM (CDW) - STATE ONLY" et a cliqué sur "PACOM (CDW) - STATE ONLY".
Aucune demande de confirmation, aucune possibilité de revenir en arrière! Par ailleurs il aurait été judicieux de séparer les commandes de tests des commandes réelles...
Comment réaliser une interface
- Il faut se départir totalement de son expérience et pouvoir se mettre à la place d'un utilisateur totalement débutant.
Essayer de s'imaginer transporté dans un pays étranger dont on ne connaît ni la langue ni les usages, pour devoir se débrouiller avec les panneaux indicateurs, afin de trouver les services dont on a besoin. - Définir l'interface indépendamment du logiciel. On s'efforcera ensuite d'associer le code aux actions de l'utilisateur.
- Utiliser un framework pour ses widgets prédéfinis, et l'exploiter au mieux, de façon imaginative.
- Créer une maquette préalablement à la construction de l'interface, l'imaginer en action, prévoir toutes les actions de l'utilisateur et trouver les simplifications.
- Supprimer toutes les étapes inutiles dans l'accomplissement d'une tâche. Par exemple, regrouper les fonctions dans une même page si possible.
- Relire encore les principes du web design.
Voici un exemple de formulaire réalisé par les programmeurs et refait par un designer...
Un peu plus agréable, n'est-ce pas? (Référence: Nathan Barry).
Voir aussi