Hoy en el twitter, @lolo_es comentaba lo siguiente: “Lo siento por el que no conoce la sensación de euforia cuando, tras mucho tiempo depurando un trozo de código, ¡funciona!” Nos contaba la alegría que embarga al programador, cuando por fin el programa con el que está trabajando funciona de forma correcta. A mi me pasa lo mismo, la sensación de felicidad, cuando ese programa hace lo que debe, es algo impagable.
Pero en ocasiones, esa alegría dura poco. Puesto que una vez que el programa funciona, pues hay que hacer más cosas. Estos días he estado yo peleándome con un problema parecido. Tuve que escribir código, pero no mucho. Realmente necesitaba un procedimiento y una forma de obtener una respuesta con un montón de datos que no la mostraban de forma clara.
En mi empresa de por las mañanas, estamos otra vez de movida. Cambiando de host, en pleno proceso de conversión. Y para ajustar la migración de una aplicación debíamos obtener una información, que no estaba así almacenada en nuestros sistemas. Así que había que tratar de con los datos que teníamos conseguir una respuesta. Como siempre los programadores de una externa llevaban unas semanas con la tarea. Pero los resultados que nos mostraban no parecían correctos. El problema era que la pregunta que parecía muy sencilla era realmente complicada. Y más que conocimientos de programación y de bases de datos, requería saber como introducían los usuarios la información en el sistema y entender realmente que queríamos convertir. Como se acercaba la fecha de cumplimiento de plazo de la tarea, mi jefe me dijo si podía ayudar. Yo no tengo acceso directo a los datos del host, pero resulta que he tenido muchos años de experiencia en el proceso que se estaba analizando, tanto por haber sido usuario, analista y probador. Así que me puse con mi juego de herramientas digitales de la Señorita Pepis: ficheros planos del host, una Excel, y un Access. Y me costó conseguir un resultado. Y lo peor, no era ya llegar a un resultado, sino además hacer una batería de pruebas, que nos permitiese validar que los datos eran buenos. Era un información que nunca se había sacado (ni se sacará, solo se necesita para esta migración) y no teníamos donde comparar.
Pero como decía al principio, tras la alegría de conseguir un resultado, vino la tristeza de tratar de explicar. Me puse a explorar con los datos y la solución fue muy heterodoxa. Y me costó casi más explicar a mis superiores como había llegado a ella y además explicar que los datos eran buenos. Lo malo es que mis jefes y compañeros son informáticos de carrera, y yo soy más un analista que los azares corporativos han dejado entre ellos. A lo que iba, ellos esperaban una bonita sentencia SQL con unas tablas relacionadas que se pudiesen consultar. Y en su lugar yo venía con dos módulos Access, y una varias macros en Excel. Y al final como prueba de la bondad de mis resultados, consultas directas a resultados de programas en real. Me sentí como Edison en la anécdota del cálculo del volumen de la bombilla. Edison quería saber el volumen de aire que había en un modelo de bombilla. Así que puso a un matemático a trabajar en al tarea. Pero éste tardaba en darle una respuesta. Así que Edison fue a lo rápido, llenó la bombilla de agua y midió el volumen de forma experimental. Y algo parecido había hecho yo con el problema que mis jefes me habían encargado.
Menos mal que al final entendieron mi razonamiento.
6 Comentarios
Comentarios Cerrados
Hace algún tiempo leí un artículo donde hablaban de hackers, y donde aclaraban que hacker no es solo aquel que se dedica a hurgar en las tripas del software ajeno (este mas bien sería un cracker) sino alguien que es capaz de encontrar atajos en un problema hasta dar con una solución heterodoxa pero válida. Aunque no tenga conocimientos informáticos.
Y eso sí que no te lo da un diploma. Ni dos. Eso se consigue con un 90% de olfato que te da la experiencia y un 10% de inspiración.
En mi trabajo me pasa a menudo. Veo problemas, soluciones, relaciones, causas, consecuencias en los sistemas con los que trato que a mi me parecen muy obvios (o a veces los tras un trabajo importante), muchas veces lo veo así debido a mi experiencia y conocimientos, pero luego intentar explicarlo a otra gente (compañeros, clientes) puede ser muy difícil y frustrante: a menudo simplemente se fían de ti “vale, tú eres el experto y sabes de lo que hablas, no hace falta que yo lo entienda tan a fondo, adelante”, pero cuando no se fían y hay que convencerlos o hacerles entender, entonces es cuando sé que voy a tener que tirarme a veces horas para explicar de la manera mas sencilla posible conceptos y sistemas que igual me ha costado a mi meses o años dominar.
Yo debo ser algo masoquista, porque realmente el trabajo que me gusta es romperme la cabeza con problemas de este tipo. Pasas por una etapa de frustración cuando no salen las cosas, pero cuando definitivamente se desatascan (y siempre se desatascan de una forma u otra) la sensación es indescriptible.
Eso sí, lo que no he sufrido nunca es tener que explicarlo con detalle a un “profano”. Si es alguien que controla del tema, sí me meto en explicar los pasos que han conducido a la solución, que nos interesan a ambos, pero si no tiene mucha idea, solamente dando unas pinceladas del problema que había y como se ha solucionado por encima me suele valer. Y ahí sí que me vale mi condición de experto 🙂
¡Un saludo!
¿Y no hubiera sido más fácil meter la bombilla en un recipiente con agua y ver cuánto subía el nivel?
Porque entonces tendrías que calcular el volumen que ocupa el cristal que tiene la bombilla
Sin duda alguna es dificil explicar las cosas,pero mas el codigo,sobretodo si no es al forma en que al gente espera y de formas un poco “burdas” pero eficaces,por ejemplo cuando haces cosas como parsear un texto completo a numeros para actuar con ello en vez de trabajar con ello de forma mas fina,pero bueno lo importante es que habiendolo hecho,se acaba por saberlo explicar