On ne peut pas parler de code sans parler à un moment de bugs, et donc de debug. Pourtant je trouve qu’on en parle peu… il y a un petit côté tabou, et peut-être aussi une peur de se lancer dans quelque chose de très vaste.
On ne peut pas parler de code sans parler à un moment de bugs, et donc de debug. Pourtant je trouve qu’on en parle peu… il y a un petit côté tabou, et peut-être aussi une peur de se lancer dans quelque chose de très vaste. Il y a presque trop de choses à dire.
Nous sommes plusieurs à parler depuis quelques années de « Slow Debug », qui n’est pas tant une technique qu’une posture, une attitude que nous adoptons. Ces idées sont nées dans le coin-cuisine chez /ut7, ont pris forme autour d’une plaque de cuisson défectueuse, se sont inspirées des travaux de Willem Larsen sur l’apprentissage des langues. Avec Raphaël Pierquin, nous les avions restituées à l’occasion de la conférence Agile France 2017 (en empruntant le titre « Chouette un bug » à notre collègue Pascal), mais sans en laisser de traces. Régulièrement, on nous demande « c’est cool votre histoire de Slow Debug mais où est-ce que je peux lire des choses à ce sujet ? » Cet oubli est enfin réparé !
Les ordinateurs, c’est vraiment magique. Mais pas que.
C’est pas que magique, c’est aussi utile. Donc parfois quand on utilise un ordinateur, on s’énerve, et on essaie d’aller vite. Et c’est dommage, parce que les ordinateurs, c’est magique.
C’est pas que magique, et il n’y a pas que les ordinateurs, il y a aussi les machines à laver et les plaques de cuisson. Et tout un tas de choses en fait. La nature toute entière est magique.
C’est magique parce qu’à tous les coins de presque tout, se cachent les fées d’apprentissage. Si tu arrives à les apprivoiser, tu vas apprendre quelque chose. C’est leur cadeau.
Mais les fées d’apprentissage s’effarouchent facilement. Si tu vas trop vite, elles risquent de s’envoler. Si tu te fâches ou que tu te dis « bah oui c’est évident, je sais ce qui ne va pas », tu risques même de les tuer.
On ne voit pas les fées d’apprentissage mais il y a un indice pour savoir qu’elles sont là, à voleter autour de toi. C’est quand tu es surpris. Par exemple, tu te demandes pourquoi la plaque de cuisson ne cuit rien… et en fait ne chauffe pas du tout. Ou tu viens de faire un truc à l’ordinateur et il t’a fait un truc où tu t’es dit « c’est bizarre ».
Ecoute bien les « c’est bizarre ». Dis-toi : « tiens, je suis surpris, normalement ça devrait chauffer.» Encore mieux, dis-le à quelqu’un d’autre.
Le Slow Debug c’est comme le slow, c’est mieux de ne pas être tout seul. On peut, mais c’est un peu triste.
A deux ou à plus, tu peux dire « je suis surpris » à haute voix, et ne pas te sentir bizarre parce que tu parles tout seul. Tu peux dire plus de trucs, par exemple « je ne m’attendais pas à ce que ça quitte l’application, je m’attendais à ce que ça affiche une page Web ».
Tu peux demander à une autre personne si elle est surprise aussi, ou si elle est surprise par des choses différentes. Peut-être même que tu seras surpris de ce qui surprend les autres. (Et ça fera venir encore plus de fées.)
Avant de faire des choses dans le monde, regarde d’abord comment est le monde dans ta tête. Par exemple, si tu te dis « ben oui, c’est un faux contact » et que tu tournes un bouton, ce qui risque de se passer, c’est que juste après tu vas te dire « bah voilà, ça marche pas, je le savais ». Tu viens de tuer une ou deux fées d’un seul coup.
Prends le temps de décrire le monde dans lequel tu penses être. Par exemple te dire « la plaque de cuisson a été installée par les gens qui étaient là avant mais il y a un faux contact à l’intérieur et c’est pour ça que ça ne marche pas ».
Tu vas peut-être en arriver à te dire, et à dire aux gens qui sont là, « bon ben là, il faut tout démonter ». C’est un coup à tuer des fées.
Tu peux certainement imaginer une action plus simple ou plus rapide. S’il y a deux boutons, tourner le premier ou tourner le deuxième bouton peut être une action plus simple. S’il y a une porte de placard sous la plaque de cuisson, ouvrir la porte peut être une action rapide. Regarder dans le fichier de logs peut être une action moins coûteuse que réécrire la moitié du composant de calcul des résultats mensuels.
Ne le fais pas tout de suite, attends encore un peu.
Avant de faire quelque chose, assure-toi que tu as imaginé ce que ça va donner comme résultat. Dis-toi et dis aux autres: « je vais choisir l’option Inspect dans le menu contextuel et je m’attends à voir un bout de code HTML avec un élément ‘div’ qui porte la classe ‘article’ ».
Si tu ne vois pas ce que tu as décrit, promets-toi d’être surpris. C’est à ce moment que l’apprentissage va se produire.
Une fois que tu as fait une prédiction, que tu as fait un petit quelque chose et que tu as peut-être changé des choses dans ta tête, tu peux continuer ou t’arrêter là.
Le Slow Debug, ce n’est pas forcément fait pour “finir” quelque chose ou le faire marcher, là, tout de suite. C’est une façon de prendre les choses. Tu peux aussi décider de t’arrêter et recommencer plus tard, ou refaire du Slow Debug sur autre chose.
Ce n’est pas grave de s’arrêter. D’ailleurs, l’article s’arrête ici.
Notre Manifeste est le garant des droits et devoirs de chaque CodeWorker et des engagements que CodeWorks a vis-à-vis de chaque membre.
Il se veut réaliste, implémenté, partagé et inscrit dans une démarche d'amélioration continue.
Tu veux partager tes connaissances et ton temps avec des pairs empathiques, incarner une vision commune de l'excellence logicielle et participer activement à un modèle d'entreprise alternatif, rejoins-nous.