Como programadores existen ocasiones en las que nos topamos con errores en nuestros desarrollos que parecen imposibles de resolver, debido a que luego de buscar el problema durante un buen rato, no encontramos una solución.

¿Qué debemos hacer cuando nos encontramos con un problema que no logramos solucionar?

La anterior es una lista de actividades que he preparado y que en lo personal me han servido de manera eficaz y eficiente cuando me he enfrentado a bugs invisibles. Además, tengo plena seguridad de que le pueden ayudar a desarrolladores de cualquier nivel cuando se enfrentan a un problema de programación.

Empecemos:

Toma un descanso

Pasamos gran parte de nuestro tiempo en nuestro trabajo analizando, diseñando, escribiendo código y probando el mismo; por lo que, es natural que tras una larga jornada de programación nos sintamos fatigados y nos cueste encontrar incluso el punto y coma al inicio de un script.

En esos casos, no es conveniente seguir insistiendo, sencillamente porque no somos robots y necesitamos también de periodos en los que cambiemos nuestro ambiente.

A veces basta simplemente con que nos levantemos de la silla, caminemos un poco, tomemos un poco de aire, nos alejemos de la pantalla así sea por un breve periodo de tiempo y definitivamente dejemos de pensar en encontrar la solución.

Es necesario que olvidemos aquello que nos está bloqueando y nos esforcemos por apartar nuestros pensamientos del editor de texto o IDE y hagamos una actividad diferente, así sea socializar un poco con otra persona. Esto, contrario a lo que puede parecer en principio, resultará en un ahorro de tiempo.

Me ha sucedido que luego de tomar un descanso y regresar al escritorio de trabajo, un problema en el que llevaba horas, me toma cuestión de minutos resolver.

Deja de teclear y escribe con el lápiz

Programar no se trata únicamente de estar frente a la pantalla de la computadora y escribir sentencias en algún lenguaje de programación, si ese es tu pensar, deberías buscar la manera de convertirte en una máquina de transcripción y no en un desarrollador.

Los desarrolladores buscamos solución a los problemas, lo que implica aparte de escribir el código, analizar qué factores hay que tener en cuenta, por lo que a veces, plasmar nuestros pensamientos sobre el papel puede ayudarnos a aclarar nuestras ideas.

Escribir el algoritmo en lenguaje natural puede ayudarnos a ver que tal vez el error no está en el código, sino entre el escritorio y la silla, es decir, hemos analizado mal el problema y por ende, la solución está mal orientada y propensa a errores.

Otra herramienta útil es elaborar proposiciones. Esto puede ayudarnos a encontrar los valores de verdad resultantes de ejecutar la funcionalidad que estamos desarrollando, así pues, si “carrito de compras tiene productos” y “todos los productos tienen un valor” entonces “el total del carrito de compras es mayor a cero”.

Piensa por fuera de la caja

Cuando alguien de Linux menosprecia a alguien que utiliza Windows (si, lamentablemente aún existen este tipo de infantiles), me causa gracia el hecho de que ellos quizás piensen que el usar Linux los hace superiores; sin embargo, no es así.

Lo anterior no solamente los muestra como programadores con prejuicios absurdos, sino que además demuestra que son personas poco profesionales por tener falta de flexibilidad al trabajar. También es posible que tengan bloqueos por falta de pensar por fuera del contexto en el que están.

El punto es que no buscan soluciones alternativas con herramientas diferentes a las que comunmente utilizan.

Debes estar dispuesto a pensar que el problema quizás no esté directamente relacionado con el fragmento de código que acabas de escribir, es posible que estés usando una función propia del lenguaje de programación o framework que ya no sea compatible con las versiones que tienes instaladas en tu entorno de trabajo.

Hay que tener en cuenta que tal vez no estemos utilizando la herramienta más adecuada para la necesidad que se tiene.

Por otro lado, tampoco debes cerrarte a una sola forma de solucionar el problema, es decir, piensa en maneras diferentes de solucionarlo. De hecho, es posible que se te ocurra una manera más eficiente de abordar un requerimiento específico.

Otro de los errores que podemos cometer ante un bloqueo en alguna funcionalidad es probar vez tras vez lo mismo, por ejemplo, diligenciar el formulario varias veces sin hacer cambios en el HTML o en el back, evita esto, pues es claro que hay algo que no está funcionando correctamente.

Una buena manera de abordar el problema es aislando piezas de código y probándolas por separado, al realizar esta actividad, tal vez te des cuenta de que una función está haciendo más cosas de las que debería, y esto va en contra por ejemplo, del primero de los principios SOLID en la programación.

Busca ayuda externa

Independientemente de si trabajamos en un equipo o de manera solitaria (Lo cual no es lo más común), debemos reconocer de que no somos todopoderosos y de vez en cuando podemos enfrentarnos a muros que van más allá de nuestras capacidades profesionales actuales.

Es por esto que, ir en busca de ayuda es un factor útil del que podemos valernos a la hora de tratar de encontrar el bug invisible.

En mi caso actualmente trabajo desde casa; sin embargo, esto no representa un impedimento a la hora de necesitar ayuda de mis compañeros de trabajo.

Cuando no encuentro la forma de solucionar por mis propios medios, recurro al chat para escribirles y solicitar ayuda.

Te darás cuenta de que si tienes compañeros realmente profesionales, por lo general, estarán dispuestos a ayudarte siempre y cuando tu realmente hayas tratado de solucionar por tu cuenta.

También, puedes buscar ayuda en la internet en sitios como Stackoverflow, DigitalOcean, entre otros.

Por otro lado, acota el problema. Es importante reducir el número de variables de salida cuando se trata de un error en nuestro código.

Es útil evitar la pluralidad de resultados, así pues, si una función que comprueba si un usuario existe o no en la aplicación retorna un booleano, no podemos darle cabida a que también retorne una excepción personalizada, lo mejor es retornar true o false, y encargarnos de las excepciones personalizadas en otra de las funciones.

Y estos fueron los tips que podemos seguir a la hora de enfrentarnos a un error que se resiste a ser encontrado. Estoy seguro de que algunos de ustedes pueden tener sus propios trucos, por lo que, sería muy interesante que los compartieras en la sección de comentarios.

📚 Últimos artículos del blog

3 Cualidades que te ayudarán a ser mejor profesional en la Industria de la Tecnología
📅 15 julio, 2021

Actualmente soy desarrollador de aplicaciones web. Mi trabajo ha requerido de mí programar en diferentes lenguajes de programación como Java,...

El bug invisible – Qué hacer cuando no encontramos el error en el código de nuestra aplicación
📅 30 junio, 2021

Como programadores existen ocasiones en las que nos topamos con errores en nuestros desarrollos que parecen imposibles de resolver, debido...

3 Pasos para conseguir trabajo como programador sin experiencia
📅 28 julio, 2020

No hay receta perfecta para obtenerlo. Conseguir trabajo sin experiencia es uno de los retos de la vida más importantes,...