¿Alguna vez has pasado horas revisando el código porque un programa se comportaba de forma extraña y has acabado pidiendo ayuda a un colega sentado a tu lado? Lo curioso es que muchas veces, mientras le explicas «Aquí recibo este valor y luego lo paso de esta manera…», tú mismo das con la respuesta y dices «Ah, aquí está el error». Y tu colega solo ha asentido con la cabeza. Desde hace tiempo, entre los desarrolladores circula un método que aprovecha deliberadamente este fenómeno. Se conoce como «depuración con un pato de goma» (Rubber Duck Debugging).
En pocas palabras, la depuración con un pato de goma consiste en detectar un problema explicándole el código en voz alta, línea por línea, al pato de goma que tienes sobre el escritorio. Quien escucha puede guardar silencio, porque el propio acto de explicar saca a la luz los errores y las lagunas de tu razonamiento.
Empezaremos por el origen del nombre de la depuración con un pato de goma. Después veremos cómo se practica, por qué explicar algo ayuda a detectar problemas y cómo aplicar el método en la vida cotidiana, más allá del desarrollo de software.
Por qué hablarle a un pato ayuda a detectar errores

La anécdota que nos dejó «El programador pragmático»

El nombre se popularizó gracias a «El programador pragmático» (The Pragmatic Programmer), un libro sobre desarrollo de software publicado en 1999. Escrito por Andy Hunt y Dave Thomas, es un clásico que muchos desarrolladores siguen recomendando.
- El protagonista de la anécdota (Greg Pugh). Según el libro, un asistente de investigación llamado Greg Pugh llevaba siempre consigo un pato de goma y, cuando se atascaba con un problema, se lo explicaba al pato.
- La explicación del libro (Explaining the Problem). El libro cuenta que quien escucha puede guardar silencio y que muchas veces basta con explicar paso a paso qué debería hacer el código para que el problema salte a la vista en la pantalla.
- Variantes del método (Other Objects). El pato es opcional. También se cuenta que hay quienes les explican el código a un oso de peluche, a una mascota o incluso a una figura de un perro recortada en papel.
Lo esencial del método es explicarle el problema a alguien de principio a fin. El pato sirve de oyente.
Cómo explicar el código en voz alta, línea por línea

La depuración con un pato de goma es sencilla y conviene seguir los pasos en orden. El proceso se puede resumir en tres pasos.
(1) Empieza por contarle al pato cuál es el objetivo
Primero, explica en una o dos frases qué se supone que debe hacer el código. Al poner el objetivo en palabras, a veces descubres que habías entendido mal los requisitos desde el principio.
(2) Lee el código línea por línea, sin saltarte ninguna
Lee el código desde el principio, línea por línea, y di en voz alta qué hace cada una y qué valores deberían contener las variables. Lo fundamental es explicar también todas esas partes que sueles pasar por alto pensando «Esto seguro que funciona».
(3) Compara lo que has explicado con el resultado real
Busca el punto en el que tu explicación difiere del resultado que realmente produce el programa. Por lo general, el error se esconde justo en la línea donde aparece esa discrepancia.
En este paso conviene pasar de la lectura mental a decir la explicación en voz alta. Si te resulta difícil hablar, puedes escribirla en frases completas. Al hablar, reduces el ritmo de forma natural y vuelves a comprobar hasta esa coma o el sentido de ese signo de desigualdad que se te escapaban al leer por encima. En lugares donde es difícil hablar, como una oficina, escribir la explicación en un bloc de notas produce el mismo efecto.
El pato es un oyente que te escucha como si no supiera nada. El método resulta más eficaz cuanto más sencilla sea tu explicación y más te pongas en el lugar de quien desconoce por completo el tema.
Por qué explicar algo saca a la luz el problema

Cuando solo le das vueltas al problema en tu cabeza, tiendes a saltarte sin darte cuenta las partes que crees conocer. Para explicarlo en voz alta, tienes que expresar cada idea en orden.
- Detectar lagunas (Explicit Reasoning). Al hablar vas más despacio que al pensar y sigues una secuencia más clara. Así quedan al descubierto las lagunas en la lógica que habías enlazado de manera apresurada en tu cabeza.
- Cambiar de perspectiva (Shift in Perspective). Cuando te pones a explicarle el código a otra persona, vuelves a mirarlo con los ojos de quien lo ve por primera vez y te apartas de la perspectiva de quien lo escribió.
- Efecto de la autoexplicación (Self-Explanation Effect). En las ciencias del aprendizaje se han publicado de forma sostenida estudios que muestran que los estudiantes que se explican a sí mismos lo aprendido afianzan su comprensión.
En particular, los errores suelen esconderse en las partes del código que das por infalibles, más que en aquellas donde ves que algo está mal. Al explicarlas, tienes que decir en qué se basa esa certeza. Si en ese momento no puedes justificarla, ya sabes qué parte conviene volver a revisar.
También es interesante que el método funcione mejor cuando tienes a quien dirigirte que cuando murmuras a solas. Con solo poner un pato delante, sientes que debes explicarte bien y acabas contándolo todo.
Cómo aplicar el método en la vida cotidiana, más allá de la programación

La depuración con un pato de goma se ha convertido en una especie de símbolo de la cultura del desarrollo de software. El curso de introducción a la informática CS50 de la Universidad de Harvard incorporó un pato como personaje en sus herramientas didácticas. En el Día de las Bromas de Abril de 2018, el sitio de preguntas y respuestas Stack Overflow hizo reír a sus usuarios con un pato que escuchaba sus preguntas y solo respondía «cuac».
El mismo método se puede aplicar a problemas ajenos al código. Si el razonamiento de un informe se enreda, si te atascas al resolver un problema de matemáticas o si una presentación no fluye bien, pon delante una silla vacía o un muñeco y empieza a explicarlo desde el principio. Así podrás ver con claridad dónde te has atascado. Si antes de enviarle una pregunta a un colega se la explicas al pato, muchas veces encontrarás la respuesta por tu cuenta. Y, si sigues sin encontrarla, podrás formular la pregunta con mucha más claridad.
Hay errores que solo se hacen visibles cuando los pones en palabras. Acostumbrarte a contarle al pato, paso a paso, el problema que te tiene atascado es el primer paso para resolverlo por tu cuenta.