15 Avr 2015 | Développement

La méthode du canard en plastique

Je suis retombé il y a quelques jours sur la page Wikipédia consacrée à une méthode de débogage peu banale, le rubber duck debugging, en français la méthode du canard en plastique.

Franchement, que vous soyez ou pas l’heureux(se) propriétaire d’un canard en plastique et même si au premier abord ça peut porter à sourire, je vous encourage vivement à jeter un coup d’oeil à cette page et surtout à mettre en pratique cette méthode.

Pour les plus fatigués du clic, je cite l’article:

La méthode du canard en plastique consiste à expliquer méticuleusement le code source que l’on a écrit à un collègue, à un simple passant, ou même à un objet inanimé comme un canard en plastique. Le simple fait d’exprimer ses pensées à voix haute est censé aider à trouver les erreurs de programmation. Comme les réactions de l’interlocuteur ou son niveau de compréhension du problème n’ont aucune importance dans ce processus, on peut le remplacer par un canard en plastique.

Pour résumer, on exploite ici la dissonance cognitive. Ouh là ! Et c’est dangereux me demanderez-vous ? Absolument pas et vous connaissez déjà: Il vous est sûrement déjà arrivé de trouver la solution à un problème simplement en expliquant la situation à quelqu’un de votre entourage. En plein milieu de votre démonstration vous débusquez votre erreur et corrigez vous-même ce qui vous mettait dedans depuis un moment: le rouage manquant, l’erreur de logique, etc. Bien sur cela s’applique à n’importe quel domaine de la vie de tous les jours, aussi bien lorsque l’on cherche ses clés que lorsqu’on bute sur un bug récalcitrant.

Perso, j’avoue, lorsque je me sais tout seul, j’ai parfois tendance à penser à voix haute1. Comme tout le monde, j’espère … Non ?

Lorsque je rédige un mail ou comme maintenant un post de blog, j’ai tendance à me relire tout haut. Il m’arrive aussi, parfois, de commenter ce que je suis en train de faire lorsque je bricole, que je gribouille ou que je cuisine par exemple. En revanche, je ne suis pas très bavard lorsque je code. Question d’habitude peut être.

Donc, depuis quelques jours, j’essaie de mettre en pratique cette méthode et je dois dire que c’est assez bluffant !

Je m’efforce d’expliquer désormais tous mes petits soucis logique à mon propre avatar, le Munny bleu qui surplombe cette page et qui me représente un peu partout depuis plus de 10 ans.

Il aura fallu 2 minutes pour dépasser le stade du « ah ben j’ai l’air malin tiens ! » et à peine plus pour voir la « magie » opérer ! En plein milieu d’une phrase la solution à mon problème en cours m’est apparue, comme une évidence, me coupant net en plein monologue (ou dialogue, on ne sait plus trop bien là). Très étrange comme sentiment, la solution m’apparaissant d’un coup comme évidente, d’une limpidité déconcertante alors que 5 minutes plus tôt je pensais avoir fait le tour de la question.

J’ai renouvelé l’expérience plusieurs fois depuis et même si le résolution du problème ne fut pas toujours au rendez-vous comme lors de ce coup d’essai, je vous confirme que ça aide vraiment.

Parfois c’est le déclic et d’autres fois cela permet plus simplement de prendre le recul nécessaire et d’envisager des solutions totalement différentes qui peuvent porter leur fruit. Je retrouve là les bénéfices d’une bonne douche, qui me permet bien souvent de me décoincer dans certains cas plus ou moins désespérés …

C’est donc pour l’instant une expérience concluante en ce qui me concerne et je vous encourage à vous jeter à l’eau, avec votre canard à vous et à lui exposer vos problèmes, comme ça, juste pour voir. Bon, il est vrai que cela peut mettre un beau bazar dans un open-space mais aussi beaucoup de fun !

Je m’égare peut être mais il me semble que dans un autre domaine, la série TV Dr House repose parfois là-dessus. La plupart du temps House à plus ou moins besoin de confronter ses idées à ses subalternes pour mettre à l’épreuve son propre diagnostic. Mais parfois, quand la situation l’impose, il peux se contenter d’un profane pour projeter ses idées: un agent d’entretien2 ou une équipe improvisée dans un avion composée notamment d’un enfant et d’une personne ne comprenant pas un traître mot d’anglais3.


  1. Vous noterez que je n’ai pas dit « parler tout seul », on passe tout de suite moins pour un excentrique, non ?
  2. S04E01: Tout Seul
  3. S03E18: Y a-t-il un médecin dans l’avion ?





* Champs requis