Le bug de 17h30

Tous les développeurs connaissent le terrible bug de 17h30 (à 20 minutes près). C'est, je crois, le pire bug que puisse rencontrer un développeur.

Imprévisible, implacable, inexpugnable, il surgit au pire moment : 30 minutes avant la quille, au moment même ou le malheureux développeur, entrapercevant la fin de la journée, lance ses dernières forces dans sa tâche en cours dans l'espoir de pouvoir rentrer chez lui vivre un peu s'il termine à l'heure.

Mais voilà, le bug de 17h30 est particulièrement sournois. Et le développeur est vulnérable : fatigué nerveusement, éprouvé mentalement, son niveau de concentration, durant l'après-midi, a chuté aussi spectaculairement que monte le prix du baril de pétrole, pour se retrouver aussi bas que le niveau intellectuel d'une émission de TF1.

Dans ce pitoyable état, le développeur n'est plus bon à grand choses. Pressé par le temps, il essaye de se concentrer sur la seule et unique tâche qui le sépare de la fin de sa journée et d'un repos bien mérité. La tête dans le guidon, il enfile ses oeillères et tente de rassembler ce qu'il lui reste de facultés intellectuelles sans se laisser déconcentrer par l'agitation naissante de cette fin d'après-midi.

Mais alors que la fébrilité du développeur est à son comble, alors qu'il semble sur le point, pour une fois, de réussir l'exploit de terminer sa journée à l'heure, surgit brusquement le terrible bug de 17h30. Il fond sur le développeur comme un rapace sur sa proie, le prend au dépourvu, le heurte comme un uppercut qui le laisse pantois, sans souffle et sans voix.

Le développeur, expérimenté, comprend vite à qui il a à faire. Rompu à l'art de l'algorithmique, endurci par son expérience riche en longues sessions d'intense débuggage, il n'entend pas se laisser abattre par le premier message d'erreur venu. Son sang gorgé de cafféine ne fait qu'un tour. Déterminé à en découdre, il se jette corps et âme dans la bataille numérique. À la fin, il n'en restera qu'un seul.

À ma gauche, le développeur. 1m75, 70 kilos, 5 années d'études et 15 ans d'expérience sur le terrain. À ma droite, un message d'erreur sibyllin annonçant un dysfonctionnement du programme.

Le combat commence. Le développeur commence par un message de débug pour localiser le problème. Le programme répond par un segfault. Le développeur vide les caches. Heap overflow. Il installe l'extension manquante. Fatal error: Call to a member function on a non-object. Il tente un cvs update. Failed to open stream !

Bing ! Paf ! Vlan ! Les coups pleuvent de toutes parts. Et pendant ce temps, le développeur voit, de plus en plus paniqué, l'horloge qui avance, inexorablement. Déjà son rêve de rentrer chez lui à l'heure s'envole. Finalement, en l'espace de quelques minutes, il a l'impression qu'une journée entière s'est écoulée. Il a vu passer tous les messages d'erreurs imaginables, et en a même découvert de nouveaux, inconnus jusqu'alors.

Le développeur est loin d'être un incompétent, et il s'est battu honorablement. Mais la lutte, trop inégale, était perdue d'avance. Résigné, il comprend que son programme, malgré tous ses efforts, ne tournera pas ce soir. À 18h55, épuisé, pantelant, couvert de l'aigre sueur de la défaite, il n'a d'autre choix que d'abandonner, en songeant que de toutes façons, sa copine lui passera un savon.

Tête basse, il se décide à tout laisser en plan. Il ajoute un dernier commentaire pour retrouver facilement l'emplacement du problème le lendemain, fait disparaître son éditeur préféré d'un :q! rageur, se déconnecte de ses quelques consoles ssh, et fini par éteindre sa machine, le coeur lourd, l'âme en peine. Vaincu !

Le lendemain, frais, dispos, l'esprit clair, il découvrira l'origine du problème en une minute, et le corrigera en cinq. Car le terrible bug de 17h30 n'est généralement qu'une pécadille, un point-virgule manquant, une erreur d'index, une variable non affectée, une inversion de casse.

Après coup, le développeur se demandera comment une erreur aussi stupide, aussi évidente, a pu lui résister aussi longtemps. Il en rira, et amusera ses collègues, autour de la machine à café, en leur racontant son épopée. Mais au fond de lui, demeurera toujours cette hantise, cette angoisse qui apparaît lorsque l'aiguille approche de cette horaire fatidique : 17h30. L'heure des bugs.