X

El bloqueo al programar y cómo desbloquearse

No debe haber nada más normal y frustrante a la hora de programar que bloquearse. El bloqueo no sólo no te permite avanzar en el proyecto en el que estás trabajando, sino que también socava tu paciencia, tu concentración y tus ganas de seguir trabajando.

Desde el punto de vista técnico, un bloqueo se da cuando algo que querés hacer simplemente no funciona y no encontrás el motivo por el cual sucede esto. No importa el lenguaje de programación, la tecnología y hasta podría decirte que va mucho más allá del desarrollo, abarcando áreas de sistemas en general.

En este artículo, te quiero contar algunas acciones que podés seguir si te encontrás en esta situación tan molesta que te hace perder mucho más que tiempo.

Los motivos del bloqueo

No me quiero extender mucho en analizar por qué los programadores nos solemos bloquear. Hay demasiados motivos.

Personalmente, me suele pasar cuando trabajo con tecnología nueva o cuando intento hacer algo medianamente complejo que nunca hice antes.

En el mundo del desarrollo de hoy en día, esto para mí representa una gran parte de mi trabajo diario. Es por eso que cada tanto me suelo encontrar con un bloqueo.

Obviamente, también hay otro caso muy común. Me refiero al bloqueo que puede darse a la hora de intentar identificar y resolver un bug.

Hay más causas, pero considero que esas dos son las más comunes.

Cómo desbloquearse

A continuación, algunas ideas que aplico cada vez que siento que estoy en esta situación de bloqueo técnico.

No hacer siempre lo mismo

Una de las máximas de Albert Einstein dice que si quieres resultados distintos, no debes hacer siempre lo mismo.

En programación esto lo podemos traducir a que hay que probar los programas con diferentes valores de entrada. A veces, solamente por probar a ver qué pasa.

Cambiar la entrada va a hacer que la salida cambie también. En función de como cambia, podemos sacar muchas conclusiones. ¡De hecho, es probable que la salida no cambie! Y esto puede deberse a que los datos de entrada no están siendo tenidos en cuenta.

Como ves, cualquier variación que haga que el programa se comporte distinto es bienvenida.

Repasar lo obvio

En cada bloqueo creemos que el problema está en una parte puntual del código. Por eso modificamos allí más que en otro lugar.

El problema es que muchas veces, al poner tanto foco en una parte del código, desatendemos el resto.

«¡Es que el problema no está ahí!», nos decimos a nosotros mismos.

Probablemente esto sea así. Sin embargo, nunca está de más repasar el resto del código por más simple y obvio que este sea.

Lo periférico puede no ser tal cosa y estar vinculado íntimamente al problema a resolver.

Por lo tanto, cuando ya estamos en bloqueo desde hace rato, es preferible repasar aquello que no parece estar tan conectado con el problema.

Activar el debugger paso a paso

No soy muy amigo del debugger clásico. Ese de ir apretando una tecla para ver como el programa avanza paso a paso, mientras se puede examinar el stack o el valor de las variables.

Sin embargo, debo admitir que, a veces, usar un debugger ahorra horas de bloqueo.

El gran problema aquí es que seguramente no nos vamos a poner a instalar y configurar un debugger al momento del bloqueo. Esa es una tarea que en algunos casos puede ser compleja y que requiere investigación (se me viene a la mente la instalación de XDebug en PHP).

Por lo tanto, mejor prevenir que curar. La próxima vez que tengas un hueco libre, dedicá unos momentos a instalar y configurar un debugger para la tecnología que usás.

En algunos lenguajes y plataformas es trivial y prácticamente no hay que hacer nada.

Da el siguiente paso

En muchas oportunidades nos bloqueamos cuando seguimos una serie de pasos. Hacemos el primero, el segundo, el tercero y vemos que no podemos seguir. Algo no está saliendo como debería.

Una estrategia para superar el bloqueo cuando se siguen una secuencia de pasos es dar el siguiente paso sin importar que el anterior no funcione. Solamente a modo de prueba.

Es cierto que en la mayoría de las ocasiones el cuarto paso no va a funcionar debido a que primero se necesita que el tercero esté bien. Sin embargo, no es realmente necesario que todo funcione. Tal vez logremos destrabarnos gracias a algún resultado que arroja hacer esta prueba que, a priori, parece ilógica.

Explicale el problema a alguien

Para explicar algo, primero hay que ordenar las ideas en la cabeza. Ese acto en sí mismo es un ejercicio que puede romper con el bloqueo.

A mí me ha pasado muchas veces que cuando le quiero explicar un problema a un colega, en el medio de la explicación identifico la causa y abandono la charla (agradeciendo el tiempo y la paciencia al colega, claro está).

Si no tenés a nadie a quien contarle el problema, hoy en día podés usar a la inteligencia artificial para exponer lo que te ocurre.

La IA suele resolver algunos problemas triviales, pero no puede con los más complejos o los, mejor dicho, poco documentados. Sin embargo, nuevamente, el asunto no es que te resuelva tu problema, sino que en la conversación, identifiquemos la raíz de los males para así poder desbloquearnos.

Un intervalo o un fin de jornada

Cuando estamos bloqueados horas y horas frente a la pantalla, nuestra capacidad para resolver los problemas disminuye. Es necesario hacer una pausa.

Este es el mejor momento para tomarse un café, comerse un buen alfajor (esos de tres pisos) o simplemente, salir a dar una vuelta.

Y te digo más… Si la hora de cierre de jornada está cerca, mejor cerrar todo por hoy y a retomar mañana. Es muy probable que al otro día logremos encontrar la solución al problema de forma asombrosamente rápida.

Más contenido sobre programación en Crónicas Freelancer

Espero que este artículo te haya gustado. Si tenés alguna duda o querés hacer algún aporte, dejame un comentario.

Te invito a que me sigas en las redes: LinkedInXGitHub e Instagram. También estoy en CodeWars, plataforma que te recomiendo para practicar ejercicios de programación.

Eso es todo. Muchas gracias por tomarte el tiempo de leerme.

Hasta la próxima.

 

Fuente foto:

Idea illustrations by Storyset

Categorías: Programación
Etiquetas: bloqueodesarrollo
Alejandro De Luca: Soy programador web freelancer y blogger. Desde hace más de 6 años me desempeño de forma independiente. Reúno en este espacio experiencias y pensamientos sobre el modo de vida freelancer.