Para programadores – 5 habilidades humanas para encontrar errores en el software

 

debug

 

Si trabajás como programador seguro que estás familiarizado con el proceso de debugging, el cual consiste en revisar un programa para encontrar uno o varios errores. Que el software tenga errores puede ser algo común, por lo que estar preparado para ser un buen debugger resulta una habilidad importante. Quienes tienen experiencia en este proceso sabrán que por momentos esta tarea puede ser muy desgastante.

Por ese motivo hoy quiero presentarte algunas sugerencias para ser un buen debugger. Las mismas no apelan a aspectos técnicos sino más bien a tus habilidades intra personales. Si bien a primera vista el debugging puede parecer un aspecto puramente técnico, lo humano juega un rol fundamental en esta actividad.

Estas sugerencias te va a ayudar a cambiar la manera de pensar y de encarar el proceso de debugging para que puedas encontrar más rápidamente errores que de otra manera serían muy difíciles de descubrir.

 

1. Dejar de lado el ego

 

1 ego 

Un tema importante es cómo nos tomamos el hecho de que algo que hayamos programado tenga un error. Esto puede causar mucho estrés en algunas personas, especialmente aquellas con un alto índice de perfeccionismo. Es importante tomarlo como algo que puede ocurrir. Es sabido que el software puede tener fallas y esto es tenido en cuenta en los proyectos. De hecho, conocí proyectos que dedicaron más recursos a probar el software que a programarlo, dado que anticipaban que los errores iban a ocurrir.

Tu grado de estrés va a depender de cómo interpretes esta situación y de qué te digas a vos mismo cuando encuentres un error. Es importante reconocer que las fallas son parte de la excelencia. Uno de los postulados de la PNL nos dice que no hay fracaso solo aprendizaje, o sea que todo es información que nos ayuda a aprender. Cuando encontramos una falla lo más saludable es reconocerla, corregirla y aprender de ella para que la próxima vez no ocurra.

Tené esto en cuenta y cuidá mucho lo que te digas al encontrar un error. Si te encontrás diciéndote a vos mismo algo negativo, detenelo inmediatamente y cambialo por otra frase más positiva como ser: no hay fracaso, solo aprendizaje.

 

2. Pensar de manera sistémica

 

2 pensamiento sistemico

Según John Sterman, “la ceguera sistémica es el mayor de los problemas que, en nuestro trabajo, nos enfrentamos”. En el área de la programación, especialmente en proyectos de gran tamaño, resulta fundamental tener un pensamiento sistémico. Cambios en una parte del sistema tienen efectos en otras partes del mismo. Estos efectos a veces no son evidentes y pueden demorar en descubrirse. Según Beizer, los errores se esconden en los rincones.

Esto ocurre mucho con los errores de software. Que la falla se encuentre al ejecutar una parte del programa no significa que el error se encuentre en dicha parte. Este puede ser un buen lugar para comenzar a buscar, pero debemos estar preparados para que las fallas vengan desde cualquier otra parte del sistema.

Si no encontrás el error preguntate: ¿en qué otro módulo puede estarse produciendo una falla? ¿cómo afectan el resto de los módulos al módulo en cuestión?

 

3. Desafiar tus asunciones y creencias

 

3 beliefs

A la hora de encontrar bugs debo desafiar lo que asumo como verdadero porque esto puede cambiar en un contexto diferente. Si existe un bug es porque puede haber algo que no haya considerado y para descubrirlo debo desafiar a mi propio pensamiento.

La habilidad de desafiar nuestras propias creencias es una habilidad muy importante a la hora de detectar errores bien ocultos. ¿Cuantas veces ocurrió que nos pasamos horas frente al código sin poder encontrar un error? Luego de eso nos dimos cuenta que algo que asumimos como verdadero no lo era, y a partir de ahí el error fue evidente. Por ejemplo, una función que debe retornar verdadero o falso retornaba un valor nulo. Una línea que asumí que se estaba ejecutando no se ejecuta. Al descubrir esto el error sale a la luz pero para llegar ahí tuve que darme cuenta que algo que creía verdadero no lo era.

Esta sugerencia es aún más importante cuando existen programas que se ejecutan de manera concurrente. El resultado de un programa que se ejecuta de manera concurrente con otros puede producir un resultado completamente diferente al que produciría si se ejecutara de manera aislada. 

Hacé una lista de aquello que estás asumiendo como verdadero. Luego revisá uno por uno los elementos de dicha lista y preguntate si eso que estás asumiendo puede no estarse cumpliendo en este escenario en particular. 

 

4. Tolerar la frustración y seguir avanzando

 

4 frustración

El proceso de encontrar errores puede ser muy frustrante. Por momentos puede ocurrir que probemos lo que probemos no encontramos el error, que las teorías que tenemos no se cumplan e incluso que hasta las pistas que teníamos se terminen contradiciendo.

Esto puede causar mucha frustración pero debemos seguir adelante. Según la PNL, si lo que hacemos no funciona debemos probar algo diferente. Sólo así vamos a llegar a un resultado distinto.

Manejar esta frustración requiere la capacidad de avanzar aunque nos sintamos estancados. También tener la habilidad de seguir buscando pistas diferentes aunque no terminen de cerrar del todo o que no nos den una respuesta inmediata. Cada prueba es como una pieza en un rompecabezas. Al principio pueden verse solamente partes que no tengan ninguna relación, pero si avanzamos poco a poco se va viendo la imagen completa.

Si estás estancado preguntate: ¿qué otros casos puedo probar que me den una pista diferente a las que tengo? Algunas respuestas ejemplo podrían ser: probar con otro usuario, agregar o quitar un permiso, probar en otra base de datos, etc.

Tolerar la frustración implica también no apurarse a llegar a una conclusión. En mis años de trabajo en tecnología encontré profesionales que con tal de terminar cuanto antes no llegaron a encontrar el error por completo o comunicaron antes de tiempo la solución y esta tuvo que corregirse nuevamente en el futuro. Si bien fueron capaces de encontrar parte del error a veces pueden ocurrir varios errores conjuntamente.

Si hay algo que no te haya cerrado del todo es probable que necesites seguir investigando. Este esfuerzo va a valer la pena al terminar el trabajo. Es probable que encuentres más errores que si no tarde o temprano van a aparecer.

 

5. Tomar descansos efectivos

 

stk134395rke

Ya hablé de la importancia de tomar descansos efectivos en las notas sobre productividad. Si trabajaste hasta un punto en el cual el cansancio te dificulta seguir es hora de que te tomes un break. 

Esto permite que las ideas se ordenen en tu mente y aún en el momento de descanso tu mente va seguir trabajando en la solución. Esto explica cómo muchas respuestas surgen cuando al día siguiente estamos más descansados. Si hubiéramos seguido trabajando toda la noche probablemente nuestra mente estaría saturada y no encontraría la repuesta a pesar del esfuerzo adicional. Sin embargo, un descanso efectivo nos ayuda a encontrar la solución que estábamos buscando.

 

Te aconsejo que revises estas sugerencias y las tengas a mano cuando tengas que encontrar un error. La manera de pensar un problema y las preguntas que te hagas al buscar una solución van a hacer una gran diferencia en los resultados que obtengas.

En Integra++ nos enfocamos en trabajar habilidades humanas que permitan maximizar tu productividad. Nos especializamos en profesionales de tecnología. Si te interesa aumentar tu productividad escribinos a info@integramasmas.com y te pondremos en contacto con uno de nuestros consultores para diseñar un plan que se adapte a tus necesidades.

Saludos

Martin 

 

 

 

Etiquetado .Enlace para bookmark : Enlace permanente.

Comentarios cerrados.