Crissez! Proliférez!

le 06/10/2015 par Christophe Thibaut
Tags: Évènements

Résumé des épisode précédents: ToF et Misteur Rup, au cours d'une revue de code particulièrement houleuse, ont réussi par hasard à se dématérialiser-rematérialiser dans un listing, où ils ne tardèrent pas à découvrir qu'ils se trouvaient à proximité d'un important repaire de bugs. En effet Misteur Rup a ramassé là par terre une note autocollante repositionnable verdâtre qu'ils déchiffrèrent non sans peine et qui semblait indiquer en termes cabalistiques la future venue d'une sommité des bugs à une sorte de "presidium diurétique" au cours duquel il allait être expliqué aux bugs disciples fraîchement insérés, la vision partagée du "Grand Plan". Rongés par la curiosité, nos deux compères suivirent tant bien que mal le diagramme de dépendances qui menait au presidium diurétique — la réunion devant, probablement selon ToF, se tenir dans un garage.

ToF et Misteur Rup, précautionneusement cachés dans une anfractuosité du listing, observaient la lente procession des bugs qui entraient dans le garage maintenant par dizaines.

— Faut qu'on file d'ici au plus vite, si tu veux mon avis, dit Misteur Rup. C't'un pétrin ce comité.

— Tu nous y a mis, maintenant tu veux partir ?

Mais leur dispute fut interrompue par une annonce solennelle que le président des bugs lui même allait commencer son talk.

— Une chance que les bugs parlent le Frangliche et qu'on l'a appris à l'école! disait Rup.

— Chute donc! lui fit ToF

Une espèce de grand prêtre des pous, une créature hideuse, se hissa sur une caisse de cambouis. Sa voix grézillait comme le son d'un scooter de pizzeria, avec un effet flanger à peine décelable.

"Jeunes pous! Virulents bugs de la deuxième génération, et vous ma vieille garde, anciens vaillant choléoportes, mes fidèles!! Vous êtes tous venus vous faire dire encore le Grand Plan, et je vous accueille de toutes mes lamelliformes!"

Le grand prêtre toussa, attendit une seconde que deux trichoptères retardataires prennent place, puis commença son essplication. ToF, qu'est agrégé de Frangliche, a pris les notes.

GRAND PLAN — LE COMMENT : COMMENT PROLIFERER

Soyez Discret

C'est la règle numéro un de la vie du bug, et la sagesse essentielle. Rappelez vous que le but, le sens de la vie, la Cause, c'est d'arriver indétecté en production! Aussi, pour ne pas vous faire avoir, ne vous faites pas voir! Si deux humains sont à l'écran, et que l'un des deux tape du code dans lequel vous envisagez de vous reproduire, méfiance! Vous pouvez être assuré que l'autre humain est en train scruter le code pour vous traquer! Ce n'est pas le moment pour vous de proliférer. Les humains n'écoutent rien, même en binôme, mais ils y voient très bien. Ne sautez pas aux yeux des humains!

Fuyez au premiers Signes d'Alerte

Dès que vous entendez l'un de ces mots: test, check, assert, verify, spy, mock, revue, pair, fuyez à toutes pattes!

Les humains n'entendent rien, voient bien, mais par dessus tout ils peuvent être retors et malicieux, avec un goût pronconcé pour les farces douteuses et les pièges et les machines infernales, comme la célèbre fraâmeworque jUnit.

Evitez le Code Testé

N'entrez jamais dans un code appelé par un test. Seuls les plus malins d'entre nous survivent aux tests, et dites vous que vous n'êtes probablement pas le plus malin de la couvée. Si vous devez rester dans les parages parce que votre progéniture est en larve et ne peut pas encore marcher, installez vous plutôt dans le code de tests. Avec un peu de chance les yeux des humains seront fixés sur l'autre code et laisseront les tests en jachère. Résidez là plutôt.

Reproduisez vous à l'Ombre

Privilégiez le code compliqué, le code touffu, le code illisible, verbeux, mal pensé, pas relu, le code bricolé, le code ancien mais qui doit évoluer quand même. Une petite routine, même de seulement 300 lignes, c'est un endroit agréable où s'installer et élever sa famille, ce n'est pas le luxe comme un petit château de 2000 lignes et sept niveaux d'ifs imbriqués, mais c'est un bon début dans la vie.

Nichez vous dans les Dépendances

Dans les dépendances, l'humain peine à bâtir des tests. Ses machines infernales restent pratiquement sans effet face à ces prodiges de la nature pouilleuse que sont le Singleton, l'Instance Unique, les Variables Globales en tout genre, les Effets de Bords, le Typage en Canard.. L'humain est rusé, mais il cherche à tout faire en même temps, ses abstractions fuient, mais il s'entête. Lorsque vous entendez quelque chose comme "ça y est, ça marche" sur un code dont la fabrication a pris plusieurs jours, vérifiez que le code s'éxécute au moins une fois, puis sautez dans la première dépendance que vous trouverez.

Nichez vous dans le code Obsolète

L'obsolescence c'est l'opulence! Les humains changent d'avis comme de carapace. Les projets sont à peine livrés qu'on passe à la benne des librairies entières, que dis-je des langages de programmation! Les humains sont inconséquents! Ils recommencent leur projet dans une nouvelle technologie tous les deux ans, mais ne jettent pas les anciens. Certains de mes plus vieux amis vivent dans une Procédure Stockée écrite en 1992! Et la légende dit que notre prophète est encore vivant, tapi dans une Clause Copy en Cobol, depuis 1965! Si vous n'avez pas ces technologies dans vos parages, installez vous dans un fichier JS. Le code Javascript peut devenir obsolète en quelques semaines! C'est le nouvel eldorado de la génération de bugs montante!

Attendez Jusqu'au Moment de la Nuée

Si votre code se développe dans un projet agile, il y a danger. C'est à la fois danger, mais aussi opportunité! Vos conditions d'existence en production sont plus favorables avec un code qu'on livre aux usagers toutes les deux semaines plutôt que tous les deux ans! Mais il faut passer la barrière des tests. Vous n'êtes pas le plus malin de la couvée! Si vous êtes jeune et sans expérience, installez vous dans un projet en cascade, où vous pourrez attendre six mois, voire un an, que votre code passe en production. D'ici là vous vous serez reproduit à merveille, et avec votre progéniture, vous profiterez de la cascade pour faire des nuées!

Profitez des Heures Supplémentaires

Le code qui grandit dans la nuit est un paradis pour nous autres. Les humains sont malins, mais ils sont têtus et n'écoutent rien. Certains humains restent à coder bien après le crépuscule, ils y parviennent en boostant leur système par ingestion de glucides et de cafféine. Observez ces humains là, ils sont probablement en train de bâtir la résidence de vos rêves. Un humain influençable, pris sous la pression, qui n'ose pas dire ses obstacles à ses camarades partis depuis l'heure du dîner, ou bien qui se prend pour superman, peut produire une quantité considérable de code dépendant, mal pensé, non relu, pas testé. Après 20 heures, c'est l'idéal pour s'installer!

La suite de mon discours s'adresse à ceux d'entre vous qui vont se faire prendre. C'est malheureux. Ce n'est pas souhaitable. Mais si cela arrive, vous pouvez encore faire quelque chose pour la Cause!

Cachez vous derrière un Bug plus Visible

D'abord, est-ce sûr que vous allez vous faire prendre? Si vous être pris dans une chasse aux bugs, essayez de trouver un camarade plus visible que vous, derrière lequel vous cacher. Un jeune bug naïf, c'est l'arbre qui cache la forêt. L'humain présomptueux le choppe, et croit la mise au point faite, et pendant que votre malheureux camarade se fait prendre, et puis pendre, vous pouvez en profiter pour vous installer et rester, peut être jusqu'à la Nuée! Les humains nous trouvent quelque fois, mais leur rage est passagère, et surtout, elle les empêche de comprendre. Un jeune bug naïf qui se fait prendre, et les humains n'iront pas plus loin. Ils taperont sur l'auteur du code, au lieu de mettre à la question le bug qu'ils viennent de prendre! Si après la pendaison vous n'entendez pas "5 pourquois", "rétro analyse", "cause profonde", alors vous pouvez probablement rester dans les parages.

Participez à une Réinsertion

Si vous êtes à découvert au moment d'une chasse, vous pouvez, dans un geste ultime — et fort noble — de survie pouilleuse, tenter de vous reproduire par réinsertion. L'humain qui corrige le code après découverte dispose rarement des marges de manoeuvre suffisantes pour opérer une tactique d'éradication efficace. Il pare au plus pressé. C'est là la chance pour vous de vous glisser à nouveau dans le code, ou bien d'appeler un camarade moins voyant que vous. L'humain n'aura pas le temps de le trouver. Rappelez vous le couplet fameux de notre épopée lyrique, il est dans notre hymne et nous le chanterons tout à l'heure:

De poisse amère je suis oint,

Car avecque toutes ces bogues

À suivre à pied, seul, et sans dogue,

D'ourdir des tests le temps n'aie point.

C'est le couplet de la victoire!

Faites des Ecrans de Fumée

Que faire lorsque vous êtes pris? C'est un triste sort, mais vous pouvez encore être utile à la Cause. Certains d'entre vous ne seront pas assez malins pour survivre en production, mais ils pourront se faire prendre pour ce qu'ils ne sont pas, en faisant croire à l'humain des choses qu'il ne peut pas vérifier, parce que ses collègues et son client ne sont pas là, ou que ses livres restent fermés. Si sur votre lieu de capture vous entendez des phrases comme :

"Si ça se trouve, c'est le disque qui a un problème…"

"C'est peut être le comportement normal…"

"En tout cas chez moi ça marche…"

"La spec ne dit rien là dessus…"

"C'est juste un paramètre mal écrit…"

"En PHP on a le droit d'écrire ça…"

alors c'est le moment de tenter de plaider l'innocuité. Prenez votre air le plus innocent et frais, né de la dernière couvée. Vous allez peut être survivre à votre prise!

Accaparez l'Attention

Si toutefois vous ne survivez pas, vous pouvez encore vous rendre utile à la Cause, en faisant un effet spectaculaire. L'effet que vous ferez peut empêcher les humains de réfléchir. Pour peu que le projet soit en retard — ils le sont tous — et que votre effet soit un peu visible, paradoxal, insolite, amusant, perturbant, les humains vont s'emparer de vous pour alimenter leur discussions. Les humains n'écoutent pas, aussi leur discussions prennent beaucoup de temps. Tout le temps passé par les humains à discuter, c'est du temps qui leur manquera pour se remettre en chasse, et tendre des tests ou faire des enquêtes sur votre petite famille et vos résidences secondaires. Attirez l'attention. On m'a dit que certains camarades qui se sont fait prendre et sont maintenant prisonniers du bug traqueur, arrivent à revenir en réunion d'humains une fois par semaine depuis plusieurs mois! C'est un bel exemple de fidélité à la Cause.

Provoquez des Débats sur Qui est Responsable

Si vous êtes prisionnier du bug traqueur, et que vous sentez qu'une réunion va se mettre en place et porter sur vous, essayez de faire jouer les apparences en votre faveur. Les humains sont prompts à s'accuser entre eux des maux contre lequels ils luttent. L'auteur du code dira peut être à votre propos, "ce n'est pas un bug, c'est ce que disait la spec!" à quoi son client répondra: "certainement pas, la spec ne disait pas cela", à quoi l'auteur répondra "c'est le problème, la spec était pas claire", et son client: "si elle n'était pas claire il fallait le dire", et l'auteur : "tu nous a dit qu'on manquait de temps", et le client: "je n'ai jamais dit: faites de la marne" et la discussion s'ensuivra continûment, et avec un peu de chance escaladera les échelons hierarchiques humains. Comme c'est beau!

Découragez les Initiatives

Rappelez vous, camarades pous qui allez vous faire prendre, que vous êtes l'instrument contondant de notre guerre psychologique! C'est notre masse, qui fait notre force, elle étouffe patiemment l'humain sous une charge de travail à la croissance exponentielle, sans pour autant blesser son amour propre au point qu'il renonce à produire et reprenne un peu ses livres. Les livres, les exemples, les formations, les articles de blogue, sont les ennemis des bogues! Lorsque vous voyez un humain ouvrir un livre, prevenez quelques camarades, invitez les à se manifester. C'est pour la bonne cause. Avec une petite faction de bugs par semaine, l'humain aura chaque soir trop de travail à finir pour se remettre à apprendre. Et d'ailleurs à l'université, dans les écoles, la traque aux bugs est pour ainsi dire inexistante! C'est le pays des TPs bâclés à la hâte en fin de trimestre, et les locutions telles que tests unitaires, revues de code, y sont pratiquement inconnues, ou restent lettre morte. Malheureusement, ces environnements de code ne partent jamais en production, ils sont donc sans intérêt pour nous.

Devenez Intermittent

Vous avez tous entendu les histoires de ces héros passés, sublimes bugs devenus des légendes, qui ont survécu à la trappe, et bien que s'étant fait prendre, sont quand même en production! C'est oeuvre magnifique, et d'une grande noblesse pouilleuse. L'art en est difficile. Il s'agit pour vous d'apparaître, puis de disparaître. L'humain qui vous a traqué va lancer son code plusieurs fois afin de voir si vous vous manifestez encore. C'est le moment que vous choisissez pour disparaître. Vous êtes repassé en invisibilité. Vous êtes double, à la fois dans le code en production, intermittent, à la fois dans le bug traqueur, marqué résolu "non reproduit". C'est le sort de peu d'entre nous, sauf lorsque les humains dans leur folie décident de faire un projet compliqué où plusieurs morceaux de code s'éxécutent en faisceaux parallèles.

Transformez Vous en Fonctionnalité

Enfin le but ultime, le dessein suprême, la consécration pour tout bug qui se respecte, c'est d'être annobli, adoubé par les humains et transformé en feature! Peu d'entre vous obtiendront ce saint statut, mais croyez moi, le jeu vaut la peine d'essayer, et d'essayer encore! Certains groupes d'humains vérifient à chaque livraison si nos camarades pous qu'ils ont détectés mais décidé de ne pas corriger faute de temps, sont bien toujours présents dans la nouvelle version du code en production! Ils appellent cela "l'isofonctionnel". Certains groupes d'humains ont réussi à imposer à des millions d'autres humains ce qui n'était rien d'autre au départ qu'une minuscule erreur de logique, cachée derrière une dépendance, codée par un débutant. Car pour les humains ce n'est pas la qualité qui prévaut, mais la vitesse à laquelle ils peuvent vendre ce qu'ils fabriquent. Aussi leur est il venu l'idée de vendre les bugs. De grandes maisons humaines prestigieuses vivent de cette idée, qui prouvent que par delà nos différences avec les humains, une collaboration gagnant-gagnant dans un monde en révolution digitale permanente est possible, et je crois savoir que des premiers accords de paix avec certains grands groupes humains sont en cours. C'est un espoir magnifique pour vous jeunes bugs, pous de la deuxième génération, et vous ma cohorte de fidèles!

LONGUE VIE AUX BUGS DE TOUTES ESPECES!!

CRISSEZ! PROLIFEREZ!

Le presidium allait bientôt prendre fin, lorsqu'un glapissement se fit entendre, qui mit l'alarme à l'assemblée des bugs. ToF dans sa maladresse avait écrasé de sa chaussure droite une jeune thysanoptère qui sortait à peine de l'état larvaire et son couinement avait résonné dans le silence qui suivait l'allocution du roi des pous. Dans une clameur de grézil, toutes les cohortes de choléoportes se dressèrent et fonçèrent vers nos deux compères.

Faut qu'on file au plus vite! hurla Misteur Rup.