Haciendo debug con patitos de goma

¿En serio? ¿Cómo es posible que la mejor manera de hacer debug sea usando un patito de goma? Aunque visto así, pueda parecer un poco bizarro voy a contarte porqué hacer debug con un patito de goma es más efectivo de lo que parece. No es una técnica novedosa, los programadores más experimentados utilizan esta técnica para encontrar problemas en su código de una manera sencilla e intentar reducir su frustración cuando algo no termina de encajar del todo.

En realidad, está técnica viene explicada en el libro The Pragmatic Programer, voy a intentar explicar que es exactamente eso del patito de goma y porqué creo que es una táctica super efectiva.8164695884_25b5c6744d_z

Explicando la forma de hacer debug con un patito de goma

Cómo su nombre indica, la técnica se basa en hacer debug con un patito de goma encima de la mesa. La idea es que le cuentes al patito cada paso de tu código, incluso entrando en detalles, así podrás darte cuenta de los errores que pudiesen causar un comportamiento inesperado de tu funcionalidad.

El primer paso es tener un patito de goma cerca de tu monitor, al lado de tu teclado o donde quiera pero que puedas mirarlo.

Ahora, presenta al pato la funcionalidad que quieres hacer y después empieza a explicarle el propósito de cada linea al patito. Asegúrate de que se llama correctamente y con todos los parámetros necesarios a cada función y de que no te queda ninguna “rama lógica” del código por explicar. Mira al patito, para que no se sienta solo y señala con el dedo en la pantalla las llamadas importantes del código.

Si todo va bien, seguro que encontrarás ese punto del código que te está causando problemas. Normalmente, es cuando cortas el problema en pequeños trozos y se lo explicas poco a poco al patito encontrarás la solución a se dolor de cabeza. Al final todo termina encajando.

¿Por qué la técnica de hacer debug con un patito de goma es tan efectiva?

Cuando estás escribiendo código, estás en el barro, trabajando con if, for, while, llamadas a funciones y a veces estar tan abajo, te hacer (a mi también) la perspectiva global de la funcionalidad que estamos desarrollando. Por eso es necesario que te revisen el código, que haya testing exploratorio y funcional,para tener una perspectiva distinta al ver el problema.

El patito de goma, mitiga el “efecto tunel” de meterte en un problema y perder el foco de la funcionalidad real. Del mismo modo, hace que examines tu código sin necesidad de necesitar ayuda y así podrás date cuenta si has comprendido la funcionalidad completamente y no has ido perdiendo “trozos” por el camino.

¿De verdad es tan efectivo? El hecho de que le cuentes a alguien el problema y como lo estás solucionando hace que tu cerebro funcione de manera distinta a cuando estás programando. El patito de goma necesita que vayas despacio, hablando y contando que es lo que tu código está haciendo, además esto mismo te hace mostrar atención por lo detalles, las variables, los tipos,…

Otra razón para usar la técnica del “patito de goma”, no molestas innecesariamente (a veces) a compañeros de trabajo, la perdida de concentración disminuye muchísimo la productividad. Sin embargo, tu “patito de goma” tiene una paciencia infinita y puedes contarle tu problema tantas veces como quieras que él seguirá mirandote tranquilamente.

De acuerdo, si realmente estás bloqueado, lo mejor es pedir ayuda. Tus compañeros, stackoverflow, Internet,… te van a echar un cable, pero es mucho mejor ir con un problema que hayamos trabajado “bien” para que la ayuda de en el blanco.

Conclusiones

Los beneficios del patito de goma no solo te ayudan a hacer debug, sino a otras muchas tareas cotidianas como: escribir emails, preparar presentaciones, escribir documentos,… etc.

Aprender a describir cosas de una manera sencilla y simple es una habilidad increíblemente difícil de aprender, pero usando el patito podemos practicarla para que nos ayude en otros aspectos de nuestro día a día.

Cuando te esfuerzas por entender la funcionalidad e ir paso a paso examinando el comportamiento de la misma desde cierta perspectiva es sorprendente la cantidad de cosas que puedes descubrir.

Anuncios

3 comentarios en “Haciendo debug con patitos de goma

  1. No hay nada como hacer explicar el problema a los compañeros para que luego ellos mismos resuelvan su propia duda y te digan “¡Gracias! ¡Qué bueno eres!” x)

    Me gusta

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s