L'algorithme a-t-il toujours raison ?

Les décisions prises par un système informatique revêtent un aspect arbitraire et injuste, parfois plus que lorsqu’elles sont prises par un être humain. Mais ces incompréhensions proviennent le plus souvent d'une mauvaise lecture du résultat de la machine.

On utilise aujourd’hui des algorithmes dans tous les domaines de nos vies, avec de nombreux ressentis, positifs comme négatifs. Dernier en date : les nombreuses incompréhensions concernant le fonctionnement d’APB, logiciel de gestion des souhaits des élèves pour leurs études après le Bac. Deux commentaires prédominaient : « c’est l’algorithme qui décide » et « si je trouve l’ordinateur qui a fait cela, que je lui explique ma façon de penser ».

Les algorithmes : arbitraires et injustes ?

Les décisions prises par un système informatique revêtent un aspect arbitraire et injuste, parfois plus que lorsqu’elles sont prises par un être humain. Une vision paradoxale car l’ordinateur applique de façon impartiale et linéaire les règles qui lui ont été indiquées par ses concepteurs, sachant qu’après une longue période d’utilisation, l’algorithme est modifié en fonction de l’utilisation qui en est faite.

Cependant, il est parfois fréquent d’avoir à expliquer à un client pourquoi le logiciel qu’il utilise quotidiennement prend telle ou telle décision. Aussi surréaliste qu’elle puisse paraître, cette situation peut être compréhensible en revenant au principe d’une application métier : l’un de ses objectifs est de faire gagner du temps à utilisateur en appliquant plus efficacement les règles de son métier que ne le ferait un humain, qui de plus n’y apporterait aucune valeur ajoutée.

Lorsque cet utilisateur appuie sur un bouton de son application, des milliers d’actions et de calculs se déclenchent en quelques millisecondes pour afficher à l’écran un oui ou non. L’utilisateur n’a aucun intérêt à refaire le calcul lui-même car le résultat est fiable, tout en gagnant des heures et des heures. Mais la conséquence de cela est que l’utilisateur finit par perdre de vue la série d’opérations qui est effectuée.

Les cas typiques où cette incompréhension est particulièrement forte sont les cas particuliers d’utilisation de l’application : l’utilisateur attendra une réponse du logiciel conforme à sa vision des règles appliquées et non telles qu’elles sont inscrites. La réponse du logiciel lui paraîtra donc peu cohérente voire complètement fausse.

Comment éviter les incompréhensions ?

Tout d’abord, il est nécessaire de préciser que les incompréhensions ne résident pas dans une mauvaise utilisation du logiciel mais dans une mauvaise lecture du résultat de la bonne utilisation.

Quelques pistes pour éviter ces problèmes :

- Entretenir la crédibilité du logiciel
L’utilisateur doit avoir un à-priori positif sur la qualité de la réponse du logiciel. Dans le cas contraire, les sentiments négatifs vont se multiplier car les utilisateurs vont croire que le retour étrange est tout simplement un bug.

- Expliciter les décisions
Quand un logiciel propose un résultat qui nécessite plusieurs étapes de calcul, il convient de les expliciter. Dans 90% des cas, l’utilisateur ne lira pas ce résumé, mais celui-ci sera primordial dans les 10% restants.

- Avoir une interface de saisie proche du processus de décision de l’ordinateur
Le but : donner à l’utilisateur la possibilité d’apprécier la situation en un coup d’oeil et éviter les quiproquos.

- Proposer une documentation exhaustive
Elle devra synthétiser l’ensemble des workflow et valider qu’ils sont bien appliqués dans le logiciel, tout en les mettant à jour au fur et à mesure.

- Créer un forum utilisateur
Une solution qui a pour avantage de présenter des cas pratiques, mais qui nécessite impérativement une modération et une validation par un référent technique.

La leçon à retenir : l’évolution d’une application n’est pas uniquement interne. Son environnement et ses utilisateurs font partie intégrante de son cycle de vie et doivent être pris en compte dès sa conception, sans quoi cette omission se paiera des mois voire des années après l’écriture de la première ligne de code. Une bonne raison de placer l’utilisateur au centre du système d’information !