[UX Labs] Que peut apporter l’UX à une interface en ligne de commande (CLI) ?

Temps de lecture estimé : 7 minute(s)

L’amélioration continue de l’espace client OVH, qui est une interface graphique, concentre une grande partie des réflexions et ressources de l’équipe UX d’OVH. Notre objectif : rendre l’administration des services OVH la plus simple et efficace possible, ceci tout en considérant le niveau technique hétérogène des utilisateurs. Toutefois, la configuration au clic des services ne convient pas à tous. Et la vocation d’UX Labs, notre cellule de R&D dédiée à l’expérience utilisateur, est de proposer de nouvelles manières d’interagir avec vos services. C’est dans ce contexte que nous travaillons à la création d’une interface en ligne de commande (CLI, pour command line interface). Explications.

À vrai dire, ce n’est pas un projet inédit. Certains chez OVH avaient déjà caressé l’idée de proposer une interface en ligne de commande, et ont partagé la concrétisation de ce projet sur GitHub. Nous souhaitons aujourd’hui aller plus loin, en approfondissant le travail sur la navigation et l’ergonomie de cette interface. Bref, en y apportant le savoir-faire de l’équipe UX. La question est néanmoins légitime : que peut l’UX pour une interface en ligne de commande, c’est-à-dire ressemblant globalement à ces terminaux dont les développeurs et administrateurs système sont très familiers ? C’est exactement ce dont nous allons parler !

Qu’est-ce qu’une interface en ligne de commande, au-delà des idées reçues ?

J’ai été chargée du design de cette nouvelle interface. Du fait de mon profil d’UI Designer et intégratrice, je partais avec des connaissances assez limitées sur le sujet. J’ai donc commencé par mener une étude de ce qu’est une CLI. Qu’attend-on on en général de cet outil ? Qu’est-ce qui différencie une bonne CLI d’une mauvaise CLI ? Comment et pourquoi coexistent CLI et interfaces graphiques (GUI, pour graphic user interface) ?

L’étude que j’ai menée m’a permis de dépasser la vision simpliste de la CLI comme « juste un outil pour développeurs ». Ce qui rend la CLI moins accessible que d’autres formes d’interfaces tient à la rigueur de son utilisation, qui s’abstrait de tout autre canal de communication que la commande écrite. Pour le reste, il est toujours et même encore plus question de codes et de règles d’expression, lesquels s’expriment notamment au travers de la syntaxe, avec des notions similaires à celles qui régissent la grammaire. Un parallèle peut s’opérer entre la phrase et la ligne de commande, puisque chacun des éléments qui la compose a un rôle précis, à l’instar des sujets, verbes, adverbes…

De cette observation, nous avons retiré l’importance d’adopter une syntaxe rigoureuse et logique. C’est pourquoi nous pensons associer les règles des langages de commande les plus répandus à un ordre des termes unique et simple. Et nous garderons les termes issus de l’API OVH pour ne pas perdre l’utilisateur. Toutefois, nous sommes convaincus que cette rigueur ne doit pas empêcher l’utilisateur d’être aidé ou accompagné. Ainsi, nous pensons autoriser la reconnaissance de certains synonymes, en s’inspirant de ce qui fait que la communication humaine est plus naturelle que la ligne de commande. Enfin, nous mettons l’accent sur la possibilité d’employer des raccourcis pour les différentes commandes que nous proposerons. Le but est double : permettre à l’utilisateur de gagner du temps, et rendre le langage de l’interface plus permissif.

De la CLI à la TUI

Je me suis interrogée sur la façon dont les CLI sont parvenues à perdurer malgré la prolifération des GUI. Ces dernières, grâce à leur navigation plus permissive et leur design plus complet, sont plus accessibles au grand public. Toutefois elles s’avèrent souvent moins efficaces que les CLI quand la priorité est d’aller vite, d’effectuer une série d’opérations successives, ou d’exécuter la même opération sur un grand nombre de services.

On peut considérer les environnements en mode texte (TUI) comme une évolution graphique des CLI. Celles-ci allient certaines fonctions des GUI (mise en page, navigation à la souris…) à la rapidité de la ligne de commande. Plus qu’une CLI, c’est donc une TUI (pour text user interface) que nous voulons créer. Une TUI à l’interface épurée, qui met en valeur le dialogue écrit entre l’utilisateur et la machine.

Nous conservons des interfaces graphiques des notions liées à l’ergonomie et la hiérarchie de l’information. Comme l’espace client, notre interface est divisée en deux : la liste des services concernés à gauche et leur gestion à droite. C’est dans la partie gestion que s’effectue la communication entre l’utilisateur et l’interface. Il est même possible de s’abstraire de la navigation via la liste des services, en entrant simplement la commande pour accéder à l’un d’eux. Cette liste apporte surtout un repère supplémentaire pour s’y retrouver au sein de ses services.

Visuels de l'espace client et de la CLI OVH
À gauche l’interface graphique de l’espace client ; à droite, notre projet de CLI.

Le design graphique est minimal. Il intervient surtout pour donner une lecture plus claire de l’échange entre l’utilisateur et ses services. Nous utilisons un code couleur simple, mais rigoureux pour identifier les éléments sélectionnés, commandes de l’utilisateur, réponses de l’interface… Le découpage de l’espace en plusieurs zones vient quant à lui apporter plus de clarté à notre TUI et permet de mieux identifier les actions principales.

Maquette de la CLI
Apparence graphique envisagée pour notre TUI (environnement en mode texte) : en blanc et bleu pâle, les réponses de l’interface, en bleu vif, les commandes de l’utilisateur.

Enrichissement fonctionnel

Pour compléter notre outil, nous souhaitons également nous inspirer de certaines interactions souvent présentes au sein des GUI. La plus importante est l’auto-complétion. Nous y voyons un moyen d’accélérer la gestion des services et une aide pour l’utilisateur qui ne sera pas contraint de retenir chaque commande. Nous souhaitons la rendre possible sur tous types d’entrées : commandes, options, noms de services… D’une certaine manière, elle va de pair avec la recherche de services. Celle-ci ne devrait pas se limiter à la recherche parmi des noms de services, mais inclure leurs caractéristiques, catégories…

Maquette de la CLI.
Apparence envisagée pour l’auto-complétion au sein de la TUI.

Nous pensons inclure la navigation à la souris, comme le permettent certaines autres TUI. Non nécessaire, cette possibilité témoigne surtout de l’adaptabilité de notre interface aux préférences de l’utilisateur. Dans notre outil, les différentes actions situées en bas des parties « Services » et « Commands » sont un moyen d’afficher le raccourci associé, mais ces items sont aussi cliquables à la souris.

Dernière fonctionnalité vouée à accélérer l’utilisation de notre TUI : la sauvegarde de groupes de services et d’ensembles de commandes. Ceci a pour principal but de rendre les actions de masse plus simples et rapides. C’est aussi un moyen pour l’utilisateur de personnaliser son utilisation de l’outil.

Et maintenant ?

Notre TUI est encore à l’état de concept. Il reste encore un long chemin à parcourir avant de pouvoir le mettre entre vos mains. J’ai apprécié me confronter aux spécificités de cet outil qui peut sembler froid et cryptique aux néophytes. Mais, à bien y regarder, sa rigueur est la base des interfaces plus élaborées. Mieux, l’absence de superflu aide à se focaliser sur l’essentiel : la communication homme-machine. Ayant un pied dans le monde du design, j’y ai d’ailleurs vu un parallèle avec l’avènement du flat design il y a quelques années, qui se caractérisait par sa simplicité et son minimalisme.

Maintenant que vous en savez un peu plus sur ce projet, qui va un peu plus loin que le simple fait d’embarquer un outil de ligne de commande, qu’en pensez-vous ? Pour que vous puissiez nous transmettre votre avis et vos suggestions,  nous avons mis en place une mailing-list : uxlabs@ml.ovh.net (envoyez un simple e-mail pour vous y inscrire). Si vous êtes dans le monde de la technique et que vous voulez échanger autour des technologies, n’hésitez pas à nous rejoindre sur notre Gitter.

 

UI Designer et intégratrice au sein de la team UX d’OVH.