Des chercheurs de Microsoft proposent de mettre au point des outils de débogage qui anticipent sur les erreurs réalisées par les développeurs, en analysant leur état d'esprit au moment de la rédaction du code source, grâce à la biométrie.

Faudra-t-il bientôt que les développeurs portent sur eux un ensemble de capteurs biométriques, pour permettre à leur employeur d'optimiser les ressources humaines ? Des chercheurs de Microsoft ont publié le mois dernier une étude (.pdf) intitulée "Utiliser des mesures psycho-physiologiques pour évaluer la difficulté d'une tâche dans le développement de logiciels", dans laquelle ils détaillent les résultats d'une expérience menée pour déterminer les endroits du code qui sont le plus susceptibles de contenir des bugs ou des erreurs de stratégie d'approche.

L'objectif des chercheurs est de "détecter lorsque les développeurs de logiciels ressentent des difficultés au moment où ils travaillent sur leurs tâches de programmation, et les arrêter avant qu'ils n'introduisent des bugs dans le code".

Ils ont ainsi mené l'expérience auprès de 15 développeurs dont l'attitude au travail était constamment surveillée par des capteurs permettant d'enregistrer les mouvements oculaires et la taille de la pupille (eye-tracking, ou oculométrie), de mesurer leur activité électrodermale (en clair, savoir à quel point le développeur est en sueur), et leur activité neuronale par électro-encéphalographie.

Ces trois types de capteurs devaient permettre aux chercheurs de déterminer les moments dans lesquels le codeur ressentait une difficulté particulière, pour ajouter automatiquement des marqueurs et déterminer quels bouts de code devraient être relus à tête froide, voire revus par d'autres développeurs.

Le contre-maître est une IA

Les données collectées ont été croisées avec les déclarations faites par les cobayes dans des questionnaires, pour alimenter une base d'apprentissage machine basée sur WEKA. Le tout pour créer une forme d'intelligence artificielle qui sait quels indices rechercher pour détecter les phases de difficulté susceptibles d'être à l'origine de bugs (en l'espèce, ils ont utilisé une méthode basée sur une classification naïve bayésienne).

"Nos travaux amènent la communauté plus proche d'une mesure viable et fiable de la difficulté de la tâche, qui pourrait alimenter les prochaines générations d'outils de support", se réjouissent les chercheurs Thomas Fritz, Andrew Begel, Sebastian C. Müller, Serap Yigit-Elliot et Manuela Züger. Leurs résultats montrent que la difficulté de la tâche a été déterminée avec une précision de 64,99 % pour un nouveau développeur et de 84,38 % pour une nouvelle tâche.

Accessoirement, leurs travaux pourraient permettre aux DRH de savoir quels sont les développeurs qui ont le plus de sang froid dans leur travail, pour les affecter aux programmes les plus complexes à développer, ou au contraire pour casser l'évolution des développeurs qui atteignent trop vite leurs limites.

Jusqu'au jour où il suffira à l'Homme de dire le but qu'il veut atteindre avec un logiciel, et où il laissera une intelligence artificielle écrire le code à sa place. Ce n'est déjà plus tout à fait de la science-fiction.


Abonnez-vous gratuitement à Artificielles, notre newsletter sur l’IA, conçue par des IA, vérifiée par Numerama !