La programmation est un art difficile. Vous êtes un véritable architecte dont la mission est de designer, construire, décorer et entretenir une application, à l’instar d’une maison.

Une difficulté supplémentaire vient s’ajouter à cela : vous devez communiquer avec une machine à travers un langage de programmation. Et il vous arrivera régulièrement de buter sur un problème dont vous ne comprenez pas l’origine. Vous serez persuadés d’avoir bien mis tout en place pour que votre application fonctionne à merveille, mais rien n’y fait : il y a un bug dans votre code.

Le premier réflexe est bien entendu de rejeter la faute sur notre pauvre ordinateur. Après tout, vous savez ce que vous faites, et s’il y a la moindre erreur, c’est cet imbécile d’ordinateur qui fait encore n’importe quoi. Cependant, la vérité est assez cruelle.

La machine fait exactement ce que vous lui dites de faire.

Que vous le vouliez ou non, votre ordinateur est assez bête. Il se contente de récupérer les informations que vous avez tapées et de les exécuter. Et si cela échoue, alors c’est invariablement de votre faute. Oui, c’est assez douloureux à admettre, mais croyez-moi, vous allez vous en remettre.

La balle est donc dans votre camp. Vous savez que vous avez fait quelque chose qu’il ne fallait pas, et pourtant, vous êtes persuadés d’avoir suivi la bonne logique. Alors que faire ? Demander à un collègue ? Chercher des réponses sur StackOverflow ? Non.

La première étape lorsque vous rencontrez une erreur dans votre code est de faire appel au canard.

Je sens déjà vos regards interrogateurs. Un canard ? Vivant ? Donald Duck ou Daffy Duck ?

Ne vous inquiétez pas, je ne vous demanderai pas de partir visiter la ferme la plus proche pour récupérer clandestinement une volaille. Dans notre cas, c’est d’un canard en plastique dont nous aurons besoin.

Une fois votre petit compagnon installé sur votre bureau, il ne vous reste plus qu’à lui parler et à lui expliquer ce que vous essayez de faire avec votre code, et le problème qui vous préoccupe.

Laissez-moi vous rassurer, le canard ne vous répondra pas, il est bien trop occupé avec ses propres affaires. Toutefois, il représente une oreille attentive avec une capacité d’écoute et une patience sans limites contrairement à un collègue. De plus, le canard ne vous jugera pas sur vos erreurs, il est compréhensif.

À force de lui expliquer ce que vous tentez de réaliser et ce que vous avez fait jusqu’à présent, vous allez petit à petit déceler une incohérence entre vos propos et ce résultat souhaité. Doucement mais surement, vous allez enfin mettre le doigt sur la ligne du code qui vous posait problème et que vous pensiez avoir écrite correctement.

Et c’est là l’utilité de la méthode du canard en plastique. En plus de ne déranger aucune personne aux alentours, vous allez vous forcer à prendre du recul sur votre code de manière à pouvoir l’expliquer à une autre personne (ou à un objet dans ce cas-là).

Cet effort de mettre des mots sur le comportement attendu et sur l’exécution de votre code va mettre en évidence des problèmes de conception, des soucis d’optimisation et surtout des erreurs bénignes qu’on ne peut détecter quand on a passé trop de temps le nez dans son code.

En décrivant ce que le code est censé faire et en observant ce qu’il fait réellement, toute incongruité entre ces deux devient évidente.

Ainsi, la prochaine que vous bloquez sur un problème, ne dérangez plus votre collègue, économisez de la bande passante et faites-vous un nouvel ami en parlant à votre canard !

Si vous désirez en apprendre plus sur cette méthode, n’hésitez pas à vous rendre sur le site qui m’a inspiré la rédaction de cet article.

https://rubberduckdebugging.com/