← Todas las historiasOffice

Rubber duck debugging: por qué los programadores le hablan a un pato de goma (y por qué funciona)

2 min de lectura

Rubber duck debugging: why developers talk to a duck (and why it works)

Pregunta en una sala llena de programadores quién tiene un patito de goma en su mesa y te sorprenderá cuántas manos se levantan. No es solo una broma. Es un método de depuración, y tiene nombre: rubber duck debugging (depuración con pato de goma).

¿Qué es el rubber duck debugging?

Cuando tu código no funciona y no ves por qué, se lo explicas en voz alta, línea a línea, a un patito de goma. Qué debería hacer cada línea, qué hace en realidad, qué valor esperas. En algún momento, a mitad de la explicación, te oyes decir algo que no es cierto. Ahí está el bug.

De dónde viene

El término se popularizó gracias a The Pragmatic Programmer, de Andrew Hunt y David Thomas (1999), que cuenta la historia de un programador que llevaba siempre encima un patito de goma y depuraba su código explicándoselo. La idea en sí es más antigua: solo entiendes algo de verdad cuando eres capaz de explicarlo.

Por qué funciona

  • Te obliga a ir más despacio. Cuando lees el código mentalmente, lo lees por encima. Cuando lo explicas, no puedes saltarte ninguna línea.
  • Te obliga a expresar tus suposiciones. Los bugs suelen esconderse justo en aquello de lo que estabas seguro.
  • El patito no te interrumpe. Un compañero saltaría enseguida con una hipótesis. El patito te deja terminar la idea.
  • Ahorras tiempo a tus compañeros. La mitad de las preguntas que ibas a hacer se responden antes de que llegues a hacerlas.

Cómo hacerlo

  1. Pon el patito donde puedas verlo. Sí, en serio.
  2. Cuéntale en una frase qué se supone que hace el código.
  3. Recorre el código línea a línea y di en voz alta qué hace cada una.
  4. Cuando lo que dices y lo que hace el código dejan de coincidir, lo has encontrado.
  5. Dale las gracias al patito. Opcional, pero recomendable.

No solo sirve para programar: también para hojas de cálculo, un correo difícil o un plan que no termina de cuadrar.

Elige tu patito de depuración

Cualquier patito sirve, pero es más fácil hablar con uno que tenga personalidad.

Patito de goma Danny DeveloperDanny Developer12,95 €VerPatito de goma EinsteinEinstein12,95 €VerPatito de goma Peter ProjectPeter Project12,95 €VerPatito de goma SleepySleepy12,95 €Ver

Danny Developer es el favorito de nuestro programador, Einstein es para cuando el problema parece más grande de lo que es, Peter Project para el project manager que también quiere entender el bug y Sleepy para el despliegue de las 2 de la madrugada.

Mix & match

3 patos −10 %, 5 o más −15 %. Combina como quieras; el descuento se aplica automáticamente en tu cesta. Si gastas 35 € o más, te regalamos un llavero Sharky con tu pedido. Envío en 1–2 días y 14 días para devoluciones.

Un patito también es un regalo de bienvenida genial para un nuevo programador del equipo. En la colección Profesiones hay uno para el resto de la oficina.

Preguntas frecuentes

¿De verdad funciona el rubber duck debugging?

Sí. Explicar un problema paso a paso te obliga a revisar cada suposición, que es justo donde se esconden la mayoría de los bugs. Muchos programadores encuentran el error antes de terminar la explicación.

¿Tengo que hablar en voz alta?

Funciona mejor en voz alta, pero susurrar o escribir la explicación también ayuda.

¿De dónde viene el nombre?

Del libro The Pragmatic Programmer (1999), en el que un programador depura su código explicándoselo a un patito de goma.

¿Qué le puedo regalar a un programador?

Un patito de goma para su mesa es un clásico. Es útil, da conversación y cualquier programador pilla la broma.

Consigue tu patito de depuración