Je ne saurais comment décrire ce sentiment étrange et parfois désespérant que l’on peut rencontrer quand on se bat pour comprendre le fonctionnement d’un système d’une complexité qui nous dépasse. La métaphore de la noyade est souvent judicieusement utilisée et c’est exactement le sentiment qui m’habite depuis que j’ai commencé mon nouveau boulot. Si je ne peux vous en parler qu’à mots couverts je vais essayer quand même.
Imaginez une architecture, un modèle logique de données, conçu pour permettre de représenter des objets technologiques complexes contenant une infinité de niveaux logiques différents ainsi que les relations qui existent entre ces niveaux (des relations contenant-contenu ou parent-enfant).
La structure de tout objet peut ainsi être décrit et crée au sein de l’architecture. Le système, via une quantité incroyable de variables dit “génériques” définies pour décrire les composantes comportementales des objets, peut manipuler tous ces objets crée en son sein sans pour autant les comprendre. Ces variables ne sont décryptée que par ceux qui s’en servent et pourtant transportées d’un bout à l’autre du système de manière totalement transparente.
Depuis que je suis ici, ma tâche a été de résoudre des bugs. On a mis sous ma garde une portion de code non négligeable (une petite dizaine de milliers de lignes) et on m’envoie tous les rapports d’erreurs dont la source est supposée se trouver dans cette partie. A moi de trouver mon chemin dans le labyrinthe, trouver là où le bug intervient et finalement trouver et développer une solution.
L’objectif avoué de ce travail est bien entendu de m’aider à naviguer dans les eaux troubles du système et à lentement comprendre de manière de plus en plus précise comment se passent les échanges et comment est manipulé le puzzle pour qu’un jour, moi aussi, je puisse enfin créer des morceaux totalement nouveaux.
C’est hier pour la première fois que j’ai eu l’impression de connaître à peu près le chemin à suivre au moment même de la lecture du rapport de bug. Une sorte d’intuition étrange de connaître la source du problème sans avoir même étudié cette partie du système préalablement. Et le mieux c’est de se rendre compte après coup qu’on avait raison!
C’est un peu comme réussir à sortir la tête hors de l’eau après un bain prolongé. Et même si on réalise qu’on est en pleine mer, avoir au moins rejoint la surface est une victoire en soi!
Finalement mon boulot n’est pas vraiment différent du travail de mes rêves, à savoir imaginer des nouveaux modèles de Legos. J’ai des centaines de pièces et au moins autant de moyens différents de les emboîter. Au lieu de construire des petites maisons ou des vaisseaux spatiaux je dois juste construire des fonctionnalités virtuelles et vachement moins visuelles d’un logiciel méta-énorme!