El bloqueo del programador.

Sir Arthur Conan Doyle, cuando creó el personaje de Sherlock Holmes, le dotó de virtudes y defectos. Una de sus actitudes, que exasperaba a su gran amigo el Dr John H. Watson era que, cuando un caso llegaba a un punto de esfuerzo y de gran cantidad de información procesada, se iba a la ópera. Watson no entendía que Sherlock necesitaba “desconectar” para poder saber la resolución del caso.

Aquellos que habemos programado alguna que otra vez, sabemos lo que es bloquearse con un código que no funciona y darle vueltas y vueltas hasta llegar a la extenuación. Además, sabemos que muchas veces ese esfuerzo parece no dar el resultado rápidamente, sino que lo que nos pasa es que cada vez estamos más y más confundidos, y por mucho que nos concentremos y miremos el código, no aparece la causa del problema, al menos en un tiempo razonable. El resultado puede ser el aumento del nerviosismo, sobre todo si esa pieza tiene que entregarse lo antes posible.

Comentando este tema con algunos de mis alumnos, expuse algunos “trucos” que pueden ayudar a desbloquearnos cuando estamos en uno de esos casos. Me gustan sobre todo dos:

  1. Verbalizar el código: consiste en buscar a alguien (no es imprescindible aunque recomendable ya que alguien podría pensar que estás loco/a al hablar solo/a) y explicarle el código en voz alta (es importante que sea verbalizado). En la mayoría de los casos, tú mismo verás dónde estaba el problema. Y si no es así, la persona a la que lo explicas quizá lo vea. Hace unos años tuve el privilegio de tener como profesor de matemáticas a Gil Panadés. Me sorprendió como Gil verbalizaba aquellos problemas matemáticos cuando había algún atasco. Además de sus explicaciones matemáticas, esa fue una lección que nunca olvidaré.
  2. Déjalo un momento y haz algo que te guste: lo del momento es variable, pero tampoco se trata de irse de compras durante toda la mañana. Si fumas, sal y fúmate un cigarrillo, da caminando una vuelta a la manzana, cualquier cosa que te haga dejar la pantalla y el teclado. De todos es sabido que los momentos “ajá” o “eureka” ocurren cuando nuestro cerebro exprimenta sinapsis, conectando neuronas. Como dijo uno de mis alumnos: “Para conectar hay que desconectar“.

Estos puntos no son nada nuevo. En su ensayo (que recomiendo) “Una técnica para producir ideas“, James Webb Young nos cuenta cómo, después de hacer el esfuerzo y ver que ya no podemos seguir más, es necesario desconectar para dejar que nuestro cerebro nos muestre las ideas creativas que estamos buscando. Si, he dicho ideas creativas. La creatividad es una palabra que se intenta asociar a unas disciplinas artísticas, pero yo no lo creo así. Para mí, la creatividad está en todas partes, desde fregando los platos hasta las matemáticas de alto nivel, y cómo no, al codificar nuestros programas también.

Acerca de Isildur Fuentes

Apasionado de las buenas historias y aikidoka de la tierra.

Publicado el febrero 3, 2012 en EDIB, Escritos, Programación y etiquetado en , . Guarda el enlace permanente. 2 comentarios.

  1. Buenas, sigo el blog desde hace tiempo, aunque nunca haya escrito en él ni haya llevado a mi ordenador, ni mi android, todo el programa del ahorcado.
    Después de esta minipresentación te diré que me ha gustado el artículo, sobre todo lo de verbalizar, igual que a tí. Me a pasado a veces que me encuentro ese problema del que no sé salir y acabo dejándolo, pillando a alguna pobre persona que tenga que escuchar mi perorata sobre la programación y el problema en sí, y como mientras lo estoy explicando se va mostrando ante mí la solución. Es pensándolo después casi mágico ver como se forma, aunque a veces esa maravillosa solución no funciona, pero te ha dado otro punto de partida que te puede servir.
    También la ducha es un lugar genial para esas situaciones o el momento de irte a dormir y justo ahí, antes de cerrar los ojos te salta la chispa y te dices mañana lo podré solucionar de una vez. Y a veces es así.

    Hacía tiempo que quería, al menos, dejar un comentario por aquí y este me ha parecido un buen artículo para ello.

    Un saludo y gracias por la labor que llevas a cabo con esta web.

    • Hola jmtu.

      Agradezco de verdad tu aportación y muchas gracias por el tiempo que has dedicado a este blog. Te aseguro que son bienvenidas todas las aportaciones que sean beneficiosas para la comunidad. La idea es intentar aprender entre todos y como tú muy bien dices, tener un punto de vista diferente, ver las cosas desde otra perspectiva, beneficia el pensamiento creativo.

      Bienvenido de nuevo.
      Isidro.

A %d blogueros les gusta esto: