Parlare a una Rubber Duck può salvare il tuo codice

Pubblicato: 26 mag 2025
Di: Samuele Medici

È successo almeno una volta nella vita di ognuno di noi: abbiamo tentato di risolvere un problema di qualsiasi tipo, ragionandoci in silenzio nella nostra testa per minuti, ore o addirittura giorni, arrivando allo stremo senza una conclusione. 

Poi, abbiamo rinunciato e chiesto aiuto a un compagno di studi o un collega e, mentre stavamo spiegando per filo e per segno il nostro problema, improvvisamente abbiamo trovato la soluzione.

È proprio in casi come questo che abbiamo utilizzato inconsapevolmente il più semplice, ma spesso il meno utilizzato, metodo di debugging nell'ingegneria del software: il rubber duck debugging.

Che cos’è il rubber duck debugging?

Il rubber duck debugging (o debugging della paperella di gomma) è un metodo che aiuta lo sviluppatore a trovare una soluzione al problema su cui si sta incaponendo, semplicemente enunciando e articolando ogni componente che descrive il problema stesso. 

Non è essenziale che lo sviluppatore stia per forza parlando con un altro sviluppatore: secondo questo metodo l’altro interlocutore potrebbe essere una persona che non sa assolutamente nulla di codice, potrebbe essere il proprio cane o gatto o addirittura un oggetto inanimato. 

Non importa davvero chi ci sia dall’altra parte, che stia dormendo o che stia realmente ascoltando, ci sono delle volte in cui addirittura avere un interlocutore che non abbia idea di quello che gli stai dicendo ti fornisce una sorta di pagina bianca, un punto zero da cui partire e ricostruire il proprio problema con un altro punto di vista. 

Le origini del metodo

Questo metodo fa la sua comparsa nel libro The Pragmatic Programmer: From Journeyman to Master, scritto da Andrew Hunt e David Thomas nel 1999, insieme ad altri metodi e principi che sono tuttora alla base dell'informatica moderna.

Nel libro viene raccontata la storia di uno sviluppatore che utilizzava una paperella di gomma come interlocutore per risolvere problemi complessi di codice. Lo sviluppatore metteva la paperella sulla scrivania e le spiegava il codice riga per riga, trovando spesso la soluzione durante il processo di spiegazione.

La genialità di questo metodo risiede nella sua semplicità: l'atto di verbalizzare un problema ci costringe a strutturarlo in modo chiaro e logico, facendo emergere contraddizioni o lacune nel nostro ragionamento che altrimenti rimarrebbero nascoste.

Quali sono gli step esatti da seguire per metterlo in pratica? 

  1. Comprate, prendete in prestito, rubate, fabbricate o procuratevi in altro modo una papera di gomma (quelle da vasca da bagno).

  2. Mettete la paperella di gomma sulla scrivania e informatela che state per ripassare un po' di codice con lei, chiedendole se le va bene.

  3. Spiegate all'anatra che cosa dovrebbe fare il vostro codice, poi entrate nei dettagli e spiegate il codice riga per riga.

  4. A un certo punto direte all'anatra che cosa farete e poi vi renderete conto che non è quello che state facendo. L'anatra si siederà lì serenamente, felice di avervi aiutato nel vostro percorso.

Source (https://rubberduckdebugging.com/

Strumenti digitali per il rubber duck debugging

Non avete una paperella, oppure ce l'avete ma volete parlare con una paperella virtuale?

È stato ideato un sito nato con la sola intenzione di spiegare e dare strumenti a tutti, soprattutto a chi non ha possibilità di ottenere una paperella di gomma: rubberduckdebugging.com.

Nella sezione "Talk to a duck" troverete anche un chatbot che replicherà il comportamento di una tipica paperella di gomma (non proprio la classica paperella, ma ci va molto vicino).

Perché funziona: la scienza dietro il metodo

Non sono un esperto di psicologia, ma dalle ricerche che ho effettuato il rubber duck debugging funziona per diversi motivi:

  • Esternalizzazione del pensiero: Quando parliamo ad alta voce, attiviamo diverse aree del cervello rispetto al pensiero silenzioso, creando nuove connessioni neurali.

  • Ristrutturazione cognitiva: L'atto di spiegare ci costringe a riorganizzare le nostre idee in modo lineare e comprensibile.

  • Effetto della distanza psicologica: Parlare con un oggetto esterno crea una distanza emotiva dal problema, permettendoci di vederlo più oggettivamente.

  • Cambio di prospettiva: Spiegare qualcosa a un "principiante" (la paperella) ci costringe a semplificare e chiarire i concetti, eliminando presupposti errati.

Alcuni elementi chiave

Ai fini di crescita professionale e personale è sempre meglio utilizzare tutti gli strumenti che avete nell'arsenale prima di farvi indicare la strada giusta da qualcun altro.

Quindi la prossima volta che vi trovate di fronte a un ostacolo, prima di andare dal vostro tutor o collega più esperto, utilizzate sempre questo metodo per capire dove risiede il problema.

In alcune aziende innovative, come Quinck, la prima cosa che viene regalata ai neo assunti con poca esperienza è proprio una paperella di gomma.

Conclusione

Il rubber duck debugging rappresenta molto più di una semplice tecnica di programmazione: è un potente strumento cognitivo che sfrutta la nostra capacità innata di chiarire i pensieri attraverso la verbalizzazione.

La prossima volta che vi trovate bloccati davanti a un problema apparentemente insolubile, non sottovalutate il potere di una semplice conversazione con una paperella di gomma. Potreste scoprire che la soluzione era già dentro di voi, aveva solo bisogno di emergere attraverso il dialogo.

E ricordate: a volte le risposte più profonde arrivano dagli interlocutori più silenziosi.

Condividi sui social: