La chasse aux bugs

Olivier n’est pas arrivé sur le projet le plus intéressant au monde, dans l’équipe la plus formatrice de sa vie. Il cherche de l’expérience. Alors c’est un bon début. La maintenance applicative présente trois axes :

  • Les évolutions ou corrections techniques. Souvent, il s’agit de corriger des erreurs laissées par les précédents développeurs ou de faire évoluer les objets manipulés dans les programmes.  
  • Les évolutions ou corrections fonctionnelles. L’utilisateur s’aperçoit qu’il a oublié d’exprimer un besoin ou exprime un nouveau besoin. “Pouvez-vous aussi afficher la date de la demande ?”
  • Les évolutions de frameworks. Les ordinateurs sont changés régulièrement et les logiciels doivent s’adapter aux machines sur lesquelles ils tournent.

Olivier vient d’arriver, alors dans un premier temps il va corriger les bugs, les erreurs laissées par les programmeurs précédents. On parle de bugs mais il faut dire : ‘anomalie’, ‘erreur’, ‘problème technique’, … Et quelqu’un doit corriger. La logique voudrait que la personne à l’origine de l’anomalie la corrige. Il semblerait ici que ce soit le dernier arrivé qui se charge de l’opération. Bizutage ? Mr. Dumond préfère parler d’apprentissage.

Un bug dans le monde réel, ce peut être lorsque le serrurier monte un barillet de serrure à l’envers. Vous le faite tournez, mais la porte reste verrouillée. Il faut faire tourner la clé dans l’autre sens. C’est gênant mais vous pouvez ouvrir la porte. Par contre, si derrière la porte, le maçon a construit un mur, vous ne rentrerez pas dans la pièce.  

Les bugs sont donc classés par criticité. Plus il est gênant pour les utilisateurs et plus vite il doit être corrigé. Alors, il n’y a qu’un seul moyen pour cela, rentrer dans le code. Et là, c’est le drame. Les conseils données par nos professeurs en informatique semblent disparaître passer le seuil de l’école. Comme la connaissance du code de la route lorsque l’on obtient son permis de conduire.

Il existe des principes du bon programmeur rappelés par nos enseignants :

  • Découper chaque fonctionnalité d’un programme.
  • Commenter et documenter son code.
  • Utiliser des noms de variables parlants.
  • Indenter correctement son code.

Il ne viendrait pas à l’idée d’un électricien de changer les codes couleurs des câbles électriques. Mais de nombreux développeurs en informatique se considèrent au dessus des conventions pour vouloir les respecter.

Vous pouvez trouver sur Internet les 10 commandements du programmeur. En pratique c’est plutôt la version sarcastique qui semble être suivie. Et Olivier se retrouve donc dans cette situation. L’équipe se veut généreuse et le premier ‘bug’ à corriger n’est pas prioritaire. Il s’agit d’un problème technique. Marie lui décrit le contexte dans lequel l’anomalie se produit. Avec cela, Olivier isole le programme et peut donc retrouver l’erreur. Dans un programme de plusieurs milliers de lignes, mal indenté, sans commentaires et avec des ‘includes’ dans tous les coins, une boucle oublie systématiquement le premier élément d’une liste. Classique.

Mais la recherche n’a pas été simple. Le chasseur de bugs a en principe un arsenal conséquent pour retrouver ces terribles parasites : les débogueurs (le Baygon vert de l’informaticien). Encore faut-il qu’ils soient mis en place sur la plateforme à étudier ? Sinon, il reste les alertes, les boîtes de dialogue, les fichiers journaux, … plus artisanal mais toujours . L’équivalent d’un tapette à mouche.

Olivier fait remonter ces constats à Mr. Dumond mais ce dernier ne voit pas pourquoi on modifierait les habitudes d’une équipe efficace. Olivier a trouvé la solution au final. Et il y a beaucoup de travail encore. Donc autant ne pas perdre de temps sur des détails.

On a vu la chasse au bugs et les joies d’un code mal écrit. Je n’ai abordé ici que la maintenance corrective. La maintenance applicative présente de nombreuses problématiques et l’activité ne manque pas. Les nouvelles méthodes de développement informatique cherchent à améliorer ces problématiques. Le monde informatique est pavé des meilleures intentions, comme l’enfer paraît-il.

Je me permets un petit aparté sur les évolutions de frameworks. Vendues comme transparentes, elles se révèlent en pratique souvent problématiques. Le passage de Windows 7 à Windows 10, Microsoft le vend comme une promenade de santé. Si vous rencontrez un Administrateur Système, ne le lancez pas sur ce sujet 😉

Partager l'article !!

J’ai de la chance !!!