Le demi-cercle (épisode 52 -- Cathédrale de sable)

- N’empêche, si le code pouvait parler… - Il dirait : « pitié, achève-moi tout de suite » - Sérieusement…

Tu te demandes comment Hugo et Jérémie peuvent continuer de se concentrer sur le code de l’application alors que la rumeur court depuis quelques heures, que ce code, et tout le projet, partiront bientôt en infogérance. Est-ce qu’il ne vaudrait pas mieux se concentrer sur autre chose ?

La documentation ! Qu’est-ce que je fais ensuite ? Pourquoi est-ce qu’on en est là ?

Jérémie est partisan de ne pas réagir avant d’avoir le fin mot de l’affaire. Hugo a l’air de s’en moquer, comme s’il se tenait toujours prêt à tout, sans jamais placer la barre trop haut (mais tu n’en sais rien). Audrey est partie en réunion avec Victor chez un client, parce qu’on ne pouvait pas faire venir le client ici, au siège: Victor a dit : « ça reviendrait à faire visiter les cuisines ». Jérémie a répondu : « Rien à voir. Analogie stérile. ». Mais le rendez-vous était déjà convenu.

- … alors la fée se tourne vers les développeurs et leur dit : c’est une question de contexte. - Ah ah. Oui. Pas mal. - J’observe que tu es toujours un peu difficile avec les blagues. - Ce n’est pas une observation que tu fais. C’est un jugement. - Si tu veux…

Émotions mitigées.

Tremblement de terre : est-ce que cet immeuble est seulement conçu pour y résister ? Il semble que non. La question se pose. Les agents continuent leur travail constant d’exploration, de réajustement, de reconfiguration. Mais au fond de leur conscience, ils se préparent à l’éventualité d’une évacuation.

Tu aimerais produire un code que tu pourrais transmettre du jour au lendemain, aussi simplement qu’on passe un relais. Le faire sans scrupules, ni remords. Comme un testament.

Un testament, ça voudrait dire que tu n’es pas tellement en forme…

Mais c’est absurde, parce que même sur un code relativement fiable et en « bonne santé », dès qu’on y regarde de plus près, il y a tout à faire. La raison pour laquelle il y a tout à faire, ce n’est pas parce que vous êtes des perfectionnistes en mal de sujets de préoccupation urgents ou importants.

Pas du tout. Sauf si tu veux parler des choix de présentation du code…

La raison, c’est que ce code est vivant, et qu’il est traversé par tant de pulsations diverses : idées en cours d’élaboration, idées anciennes à nouveau déterrées, idées naissantes, idées plus ou moins concrétisées, comme autant de voix qui se font écho. La voix du client, celle de l’architecte, celle des managers, celles de tous ceux qui ont contribué à ce produit, toutes ces voix sonores, chuchotantes, stridentes pour certaines, résonnent et s’interpellent entre les murs de ce logiciel, au point de faire un brouhaha. Un creuset d’idées. Une solution pleine de problèmes, une gigantesque mine (à ciel ouvert) d’opportunités.

Mais pour le moment, il semble qu’en ce qui vous concerne, vous soyez coupés de toutes ces opportunités.

Toute l’attention que vous portiez constamment à ce monstre, à cette (grande demeure de plusieurs étages en perpétuel délabrement/réaménagement) base de code, il faut la suspendre, l’arracher à son objet, et la reporter vers on ne sait quoi. Il faudra recommencer ailleurs. Technologies, organisations, coopérations, amitiés, il faudra tout recommencer.

Du code qui se développe sous les claviers; de l’argent qui change de main.

Mais cette fois c’est le code qui change de main.

Hugo suggère qu’on fasse une liste des obstacles que va rencontrer l’équipe d’infogérance sur cette base de code. Jérémie en voit de deux sortes. Il commence une explication.

Audrey et Victor vont revenir de la réunion chez le client. Avec de nouvelles perspectives. Comme dans une lithographie d’Escher, absurde, géométrique, interminable : reprendre le travail sur la base de code. Chercher une voie praticable et la marquer, avant qu’un éboulement, un dérangement, ou tout simplement une série de contre-décisions ne la rendent à nouveau impraticable.

Tu ouvres un fichier texte intitulé :

Liste des obstacles.

Tu prends des notes. Le correcteur orthographique en mode suggestion t’inflige de l’aide. Tu désactives (l’insinuateur) le mode suggestion. Les zigzags rouges disparaissent. Tu notes. Puis tu tries tes notes, comme si l’ordre allait leur donner du sens.

à peu près -- a prioris -- abstractions qui fuient -- aléas -- anti-patterns -- ambiguïtés -- amendements -- aménagements -- astuces de programmation -- attentes non questionnées -- atermoiements -- biais cognitifs -- boucles infinies -- bugs insidieux -- bugs intermittents -- commentaires trompeurs -- compromis -- concepts improbables -- confusions -- conseils intempestifs -- conséquences inattendues -- contournements -- contradictions -- contraintes artificielles -- contre-vérités -- couplages forts -- coups de gueules -- coups de stress -- critères non vérifiés -- décisions absurdes -- délais non-négociables -- demi-décisions -- diagnostics erronés -- distortions -- défaillances -- défauts résiduels -- déformations -- démissions -- dérapages -- détails insignifiants -- écritures intempestives -- étreintes fatales -- effets de mode -- erreurs d’appréciation -- erreurs d’arrondi -- erreurs de débutant -- erreurs persistantes -- exagérations -- exigences contradictoires -- failles de sécurité -- fausses bonnes idées -- fautes de style -- fautes d’impression -- fautes d’orthographe -- faux départs -- faux positifs -- feedbacks maladroits -- fuites de mémoire -- généralités -- histoires auto-limitantes -- impasses -- imperfections -- imprécisions -- incohérences -- incompréhensions -- indicateurs faussés -- jugements hâtifs -- lignes de code mort -- loups -- légendes urbaines -- malentendus -- modèles parfaits sur le papier -- murs incontournables -- mythes -- notions vagues -- négligences -- objectifs imaginaires -- obstacles imaginaires -- omissions -- optimisations prématurées -- pannes de matériel -- paramètres manquants -- pertes de données -- plans sur la comète -- présupposés -- pressions -- raccourcis -- raisonnements incomplets -- recopies incorrectes -- redondances -- résultats indéfinis -- réconciliations impossibles -- risques inconsidérés -- rumeurs -- superstitions -- traitements interrompus -- trous dans la raquette -- typos -- usines à gaz -- variables écrasées

Il en manque.

null pointer exception

- Évidemment si tu le prends comme ça… - Tu voudrais que je le prenne comment ?

La conversation entre Hugo et Jérémie continue, au gré des sujets. Il règne un désordre apparent. À moins que ce ne soit le contraire.

- Voilà comment ça finit quand on se spécialise. - Tu m’en diras tant.

Il est temps de s’en aller. Peut-être. C’est l’idée d’avoir à lire toutes ces offres d’emploi qui me donne la nausée.

Ton attention se perd dans des méandres des conjectures et des considérations. Tu écoutes distraitement la conversation entre Hugo et Jérémie. Tu ne captes que des bribes, et c’est comme si chaque bribe révélait un sens profond, magique, inouï. Mais si tu essaies de la reprend dans l’ensemble, ça n’a pas plus de sens.

Jérémie dit : - Quand tu dis : on n’avait jamais le temps de bien faire, dans ce projet, tu parles de la conception, n’est-ce pas ? C’était combien de temps avant que tu arrives ici ? - Je te parle du code de leur application. C’était il y a longtemps, mon premier boulot, en fait. - J’aurais besoin de voir le code pour me faire une idée.

Audrey entre dans le bureau, suivie par Victor. Victor, souriant, d’attaque, accroche son imperméable au porte-manteau et déclare : - Il faut qu’on parle !

FIN de la première partie

Episodes Précédents : 1 -- Si le code pouvait parler 2 -- Voir / Avancer 3 -- Communication Breakdown 4 -- Driver / Navigator 5 -- Brown Bag Lunch 6 -- Conseils à emporter 7 -- Crise / Opportunité 8 -- Le Cinquième Étage 9 -- Que faire ? 10 -- Soit... Soit... 11 -- Boîtes et Flêches 12 -- Le prochain Copil 13 -- La Faille 14 -- Poussière 15 -- L'hypothèse et la Règle 16 - Déplacements 17 -- Jouer et ranger 18 -- Arrangements 19 -- Mise au point 20 -- Expérimentation 21 -- Échantillons 22 -- Non-conclusions 23 -- Non-décisions 24 -- Épisode neigeux 25 -- Fusions et confusions 26 -- Débarquement 27 -- Tempête 28 -- Embardée 29 -- Aménagement 30 -- Interruptions 31 -- Normalisation 32 -- Outsiders 33 -- Fabrication 34 -- Observation 35 -- Perturbations 36 -- Conclusions 37 -- Nouvelle Donne 38 -- Transaction 39 -- Mutation 40 -- Exclusion Mutuelle 41 -- Préemption 42 -- Démonstration 43 -- Conversation 44 -- Exception 45 -- Explications 46 -- Télescopage 47 -- Négociations 48 -- Plaques tournantes 49 -- Cocktail 50 -- Fruits inaccessibles 51 -- Fruits pourris

Merci à : Damien Beaufils, Antoine Boileau, Marc Bojoly, Constant Bridon, Nicolas Carlo, Andrea Chiou, Thibaut Colin, Nelson Da Costa, Renaud Dahl, Clotilde Desquilbet, Arnaud Doucerain, Jonathan Duberville, Eric Dubois, Mila Durdevic, Victor Enaud, Christian Fauré, Céline Gilet, Etienne Girot, Vincent Hateau, Arnaud Huon, Florent Jaby, Damien Joguet, Julien Kirch, Arthur Lambert-Bourjac, Dominique Lequepeys, Thomas Lissajoux, Cédric Martin, Benoît Meriaux, Frédéric Merizen, Sandro Micalizi, Armen Ozcelik, Jennifer Pelisson, Thomas Pepio, Mathieu Poignant, Cédric Rup, Adrien Saunier, Natalie Schmitz, Antoine Teuf, Thomas Wickham