Le stress, la fatigue, les problèmes externes… tout développeur doit lutter contre les erreurs ou les bugs dans son code, et il y a de nombreuses raisons pour que le débogage devienne un cauchemar. Cependant, il existe une technique très curieuse qui remonte à la fin des années 90, et qui implique un canard en caoutchouc. Quelle est l'idée exacte ? Que le développeur soit obligé d'expliquer au canard, ligne par ligne, son code, et grâce à ce processus de déconstruction, trouver la solution.

Le « débogage du canard en caoutchouc », ou comment corriger des problèmes en parlant à un jouet
Canard en caoutchouc

L'origine : The Pragmatic Programmer

L'histoire d'aujourd'hui remonte à 1999, année où Andrew Hunt et David Thomas ont écrit The Pragmatic Programmer, un livre pour développeurs qui est rapidement devenu un manuel universitaire. Avec l'aide de courtes histoires et d'autres astuces, Hunt et Thomas donnent au développeur potentiel des outils destinés à optimiser son processus de développement, en commençant par la nécessité d'être un « early adopter », de s'adapter très rapidement, de ne jamais perdre sa pensée critique ni son réalisme, et de fonctionner comme un joker.

Malheureusement, ce n'est pas un titre très accessible. Sa dernière édition ne descend pas en dessous de 45 euros (sauf si vous cherchez sa version numérique), et si ma mémoire est bonne, il n'a jamais été traduit en espagnol. Mais il y a un petit détail dans ce livre qui a pris le dessus sur le reste en un temps record, et sur lequel de nombreux développeurs jurent.

La clé est de placer un canard en caoutchouc sur le bureau. Lorsque le développeur ne parvient pas à trouver une erreur ou reste « bloqué » à un certain point, le canard se transforme en une sorte d'auditeur et d'étudiant passif. Le développeur procède à expliquer le problème étape par étape, et à travers cette même explication, il trouve la solution. C'est assez courant entre collègues et compagnons de travail (ou développeurs parlant à leurs animaux de compagnie), mais le canard présente deux avantages importants : il n'interrompt pas, et il évite que nous dérangions quelqu'un d'autre.

https://old.neoteo.com/cursos-de-programacion-online/

Ce qu'il y a de plus précieux, c'est que cela oblige le développeur à recommencer depuis le début, et en avançant, il ne fait que « réanalyser » son code dans son esprit. Cette visualisation mise à jour de son projet apporte souvent suffisamment de clarté pour détecter le problème, à tel point que parfois il suffit de décrire un ou deux détails du souci. Cela semble être une blague, mais ça n'en est pas une. Alors que certaines tâches nécessitent une approche totale, d'autres ont besoin d'être « démontées » d'une certaine manière, même si le seul auditoire est un canard en caoutchouc.

https://old.neoteo.com/mycompiler-16-lenguajes-de-programacion-sin-instalar-nada/