Saturday, November 25, 2017

Un método básico para encontrar la razón de los problemas

Muchas veces, especialmente cuando escribo código, me encuentro con problemas que no puedo explicar, y por lo tanto, no puedo corregir.
Como todo el mundo, tengo mi propio método para abordarlos, porque muchas veces encontrar la razón puede consumir horas de frustración.
A continuación algunas de las ideas que aplico:
  1. Puedo explicar por qué falla? Si la respuesta es afirmativa, ya no necesito continuar :)
  2. Puedo repetir el problema u ocurre erraticamente. En el segundo caso, muy posiblemente se deba a problemas de hilos de ejecución, o datos externos, por ejemplo una base de datos que está siendo actualizada constantemente. Si es el primer caso, puedo continuar con la lista. Si es el segundo, tengo que poner logs por todos lados para capturar el problema la siguiente vez que ocurra.
  3. Aislar el problema: si hay varios componente, intentar probarlos por separado para encontrar si el problema está en uno de ellos o en la interacción de dos o más (estos últimos suelen ser los más complejos de resolver)
  4. Encontré el lugar donde está el problema, pero no puedo explicarlo. Es un problema que cabo de introducir ¿Funciona una versión anterior? ¿Funciona en otras circunstancias, como puede ser cambiando el navegador, versiones de componentes externos, parámetros de compilación: por ejemplo entre versiones de debugging y productivas?
  5. Estoy asumiendo que algo en particular no es la causa del problema y la busco en otro lado? No hacerlo: demostrarme que no estoy equivocado probando eso que asumo que no falla pasa un test.
  6. ¿Encontré la razón del problema? ¡Documentarlo! Ayudar a mi futuro yo a no tener que pasar por el mismo proceso exploratorio si me encuentro con el mismo problema dentro de un tiempo.

Sunday, November 5, 2017

Oh vosotros los que entráis, abandonad toda esperanza

Esto es lo que reza la puerta del infierno en La Divina Comedia de Dante Alighieri.

Más allá de la poesía de la expresión, la frase encierra una sentencia terrible: perder toda esperanza.
¿Cuántas veces nos sentimos en una situación así, que ya nada puede hacerse, con una relación afectiva o con una profesional?

Asumir una postura así, no solamente nos predispone a sufrir, sino a que cada evento nuevo lo veamos como una oportunidad de confirmar nuestra sentencia.

Lo paradógico de todo esto, es que afirmar una cosa así, tan absoluta, nos va a "ayudar" a que se vuelva verdad. Es sabido que uno no ve a la realidad de forma objetiva, sino a través de unos ojos que están cargados de subjetividad e historia. Al margen de esto, está la tendencia del ser humano a buscar confirmar lo que pensamos. Esto es conocido como el sesgo de confirmación.

Ahora, qué pasa si lo vemos al revés: sino que en lugar de perder esperanza, no solo la tenemos, sino que la potenciamos? En este caso, nuestros ojos van a estar pendientes de que aparezcan indicios de que el cambio empieza a darse.  

Las mentiras más tontas también son peligrosas

Creo que si uno pregunta a los demás si mienten, la respuesta siempre es que no. 

Todos mentimos en algún momento, a veces por vergüenza, oteas simplemente porque es la respuesta más fácil para dar. 

El problema es cuando somos agarrados en una mentira. Hay mentiras que son importantes y otras que no, pero todas dejan una imagen nuestra cuando nos descubren. 

Me quiero enfocar en aquellas a las que no le damos importancia, que son tan tontas y parecen inocentes, pero que terminan transmitiendo un mensaje inconscientemente. 

Voy a poner un ejemplo: delante de otros colegas estoy hablando por teléfono con otra persona, donde para finalizar la conversación comento: "te dejo que tengo una reunión". Luego corto y sigo con mis cosas. La reunión nunca existió. Es una forma educada de finalizar la conversación telefónica. Pero que pueden pensar mis colegas si prestan atención: "le mintió a la otra persona solo para finalizar la llamada" y... acá viene la parte peligrosa: "¿cuantás veces me hará lo mismo a mi".

Wednesday, November 1, 2017

Resolver el problema a resolver

Muchas veces recibo propuestas, también órdenes de mis superiores, para solucionar algo. Suelen ser "optimizaciones" en los procesos y circuitos de una empresa. 

Ahora, lo que ocurre, muchas veces también, es que lo que queremos arreglar no está fallando. No siempre se cumplen las siguientes validaciones:
  • ¿Es algo que está fallando o potencialmente puede hacerlo?
  • ¿Hay algo que yo no estoy viendo?
Si no puedo encontrar una respuesta a esas preguntas, posiblemente se trate de una razón subyacente. En estos casos, el cambio puede no ser la mejor solución a este problema. Alguna vez he probado de utilizar el diagrama de Ishikawa  pero lo que me resultó más efectivo siempre es el preguntar por qué cinco veces (a cada respuesta que recibo, le repregunto por qué). 

Por último nunca está de más no perder de foco de la siguiente pregunta: ¿cuál es el problema que debería estar resolviendo ahora? Siempre que esté haciendo algo, voluntariamente o no, voy a estar decidiendo postergar otras cosas. Entonces: este nuevo problema, ¿es el problema a resolver, o debería enfocar mi atención en otra cosa.