Embauchez-moi


Mon site pro : http://thibault.jouannic.fr

Mes appli Android : http://apps.miximum.fr/

mots-cles : Ingénieur web freelance Python Django Scrum

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.


4 Commentaires

  1. Posté le 08/06/2008 à 14:11 | Permalien

    Joli texte, merci :)
    Pour ne pas subir ce fameux bug, le plus simple est de ne pas se fixer d’heure précise pour la fin de son travail… Mais ça implique d’avoir un patron plutôt flexible… :)

  2. yoyo2000
    Posté le 09/06/2008 à 15:08 | Permalien

    Bravo et merci pour ce texte !!!
    C’est tellement vrai !
    Ma parade personnelle contre ce bug sournois : le laisser tel quel et rentrer direct at home. Car je sais très bien que le lendemain (voir même avant, sur le chemin du retour ou dans la nuit…) je n’en ferai qu’une bouchée.
    Mais c’est vrai que c’est un vrai travail sur soi de laisser un bug, mais là on touche à la psychologie profonde du développeur…

  3. Posté le 24/10/2008 à 19:45 | Permalien

    Oui, beau texte. Merci !

  4. cker
    Posté le 20/05/2010 à 16:59 | Permalien

    La solution à ce problème est pourtant très simple…
    Partir à l’heure prévue, de toute façon, il ne faudra qu’une minute le lendemain pour le fixer.
    Le billet le montre clairement, il ne servait à rien de rester !

3 Trackbacks

  1. [...] laissez moi illustrer mon propos au travers d’un cas concret. Imaginons qu’un bug sournois surgisse soudainement et vienne perturber la bonne marche de votre projet. Après quelques investigations dignes [...]

  2. [...] plus, recoder l’existant augmente considérablement les chances de voir apparaitre des bugs. C’est bien, ça permet de vendre des extensions de [...]

  3. By Comment PHP me rends fou – Miximum on 12/03/2010 at 20:07

    [...] cela vous fera-t-il marrer. Je suis victime d’une version particulièrement vicieuse du bug de 17h30 (avec un combo «  bug du vendredi de fin d’itération  » compte [...]