Navigation des articles

simon-granger

Métier : programmeur d’algorithmes de recherche

Daniel Lavoie, chef de l'équipe d'indexation chez Coveo Photo : Valerie Busque

Daniel Lavoie, chef de l’équipe d’indexation chez Coveo
Photo : Valerie Busque

Derrière une opération aussi anodine qu’une simple recherche dans sa boîte de courriel se cachent un travail de moine, de longues semaines de programmation et d’innombrables essais. Bienvenue dans le monde de Daniel Lavoie, expert des algorithmes!

Tiré du magazine Les carrières des TIC 2014.

Daniel Lavoie est, depuis 2004, chef de l’équipe d’indexation chez Coveo, une boîte de Québec qui développe un moteur de recherche destiné aux entreprises. Le logiciel classe, en temps réel, les contenus de différentes sources et multiples formats (documents, dossiers, courriels, produits, etc.) afin de permettre aux utilisateurs, employés ou clients, de trouver rapidement et facilement l’information désirée.

Ces fonctionnalités passent par la création d’algorithmes : des suites d’opérations et d’instructions grâce auxquelles l’ordinateur pourra répondre à la requête d’un utilisateur le plus précisément possible. Pour ce faire, des milliers, voire des millions de fichiers sont indexés selon différents paramètres pour créer une gigantesque base de données.

L’équipe de Daniel Lavoie s’affaire donc à construire, puis à améliorer ces formules, qui doivent jumeler efficacité et rapidité. Une tâche éminemment complexe, qui demande une grande minutie.

«De petits détails peuvent avoir des impacts majeurs, explique-t-il. Changer l’algorithme de classement pour ajouter un petit calcul peut faire en sorte que la recherche prenne cinq secondes au lieu de trois quarts de seconde. Tout à coup, ça devient inacceptable, alors que
c’est seulement une ligne de code qui a été changée.»

L’utilisateur ne se soucie guère des efforts investis par le programmeur : pour lui, ce qui compte, c’est d’obtenir son résultat de façon quasi instantanée. «On peut faire toutes sortes d’acrobaties algorithmiques, mais il faut toujours répondre à cette même contrainte. C’est la difficulté principale de notre travail.»

L’instinct du programmeur

Daniel Lavoie a décroché en 1996 un baccalauréat en informatique de gestion à l’Université Laval avant de se tourner vers la programmation algorithmique. Certains membres de son équipe possèdent quant à eux une double formation en informatique et en mathématiques. Bien que la maîtrise de la programmation et des chiffres soit essentielle, une autre qualité s’avère un atout : un instinct pour la complexité algorithmique ou, autrement dit, un sixième sens pour détecter les problèmes potentiels.

«La plupart des solutions vont fonctionner sur un échantillon de 1 000 documents, mais ne marcheront pas nécessairement sur un million de documents. Il faut donc être capable de voir intuitivement qu’une solution ne fonctionnera pas», soutient le programmeur. Une bonne connaissance du matériel informatique est également essentielle, car l’efficacité d’un algorithme peut varier selon les spécificités techniques de différentes composantes.

Daniel Lavoie et les membres de son équipe doivent faire preuve de persévérance, car la recherche de l’algorithme parfait est une longue suite d’essais et d’erreurs… qui fonctionne rarement du premier coup. «Il y a des algorithmes qu’on peut solutionner de façon très satisfaisante en une journée. Mais il y en a certains sur lesquels on a travaillé pendant des mois, à deux ou trois personnes», précise-t-il.

De nouvelles contraintes

La complexité des algorithmes ne cesse de croître; les formules doivent constamment être plus précises, plus rapides. Mais au-delà de ces deux critères de base, d’autres paramètres doivent désormais être considérés. L’équipe de Daniel Lavoie tente notamment d’intégrer la connaissance du réseau social d’une personne dans les résultats des recherches effectuées à l’aide du logiciel. «Par exemple, le document d’un collègue est possiblement plus important pour vous que pour la secrétaire de votre patron. On ne peut plus simplement considérer le document et ses caractéristiques purs, il faut aussi tenir compte de qui l’a écrit et qui est dans son entourage.»

La notion de sécurité revêt également une importance cruciale. En entreprise, tous les documents ne sont pas publics; il faut donc s’assurer que personne ne tombe par mégarde sur un document qui ne lui était pas destiné. «Il faut être rigoureux, on ne peut pas sauter les étapes. Si on affichait un document auquel une personne n’a pas accès, ça serait une catastrophe.»

Daniel Lavoie a un conseil tout simple à donner à ceux qui seraient attirés par ce type de travail : «Programmez! Avoir des projets personnels de programmation les soirs ou la fin de semaine, ça fait une différence. Ce bagage qu’on acquiert à programmer par soi-même, ça n’a pas de prix.»

simon-granger
Simon Granger

Simon Granger s'intéresse aux enjeux touchant la formation, l'orientation professionnelle et l'accession au marché du travail. Il aime le café filtre, le point-virgule et les mots croisés.

Voir ses derniers articles »

Partager