Nivel de abstracción

Este fin de semana se realizó la primera reunión de Nodebots Mexico City, en el marco del día internacional de Nodebots. Tuve la oportunidad de mostrar un poco de lo que he jugado con tessel y escuchar muy buenas platicas de lo que se puede hacer con Johnny Five de parte de Julio Rodriguez e Ian Meza, además de escuchar a Alex Mercado hablar de Makey makey. Después de las pláticas se dio un taller y en el cual los asistentes armaron y programaron un coche con 2 motores controlado desde la terminal de su computadora.

El evento juntó un grupo interesante de personas, desde los ingenieros acostumbrados a trabajar con hardware hasta los programadores web acostumbrados a trabajar con javascript. Al mezclar estos distintos perfiles era muy distintivo el área que cada persona dominaba y cual eran los problemas interesantes para cada quien y cuales son las herramientas que utilizaban para resolverlos.

En cierta parte del taller esto fue bastante evidente. Las personas que tenían experiencia con javascript y Nodejs resolvieron el problema de ordenar los motores en el código y las personas que tenían experiencia con hardware lo hicieron conectando y desconectando cables. A mi me pasa algo similar, todavía le tengo mucho miedo a trabajar con protoboard y conectar cables, transistores y leds, pero con un tessel, donde todo el problema sucede en el lado del codigo, me siento muy cómodo.

Una de las grandes reflexiones que han rondado mi cabeza esta semana es cuál es el nivel de abstracción en el que buscó resolver los problemas y a cuestionarme si este nivel de abstracción que utilizo es el correcto para cada problema que atacó. En la última semana me he dado cuenta que tengo muletillas de usar javascript para problemas que se puede resolver con css de manera más facil y que no generó herramientas de terminal para facilitarme la vida como hace el resto del equipo de Tutum.

Poco a poco, el rol que tomó en los proyectos es más amplio y se aleja más de la parte de programación. Va desde pensar el producto, en algunos casos incluye manejo de equipos de desarrollo, un poco de front end y ui, un poco de back end hasta estructurar cosas en la base de datos. Espero poder desarrollar la sensibilidad para entender cual es el nivel correcto de abstracción para resolver los problemas y con esto reducirlos a algo mucho más sencillo o inexistente.