El Zen del Software

¡Me gusta construir!

Cuando era niño mi mamá decia que me encantaba destruir cosas. Ella dudaba en comprarme juguetes caros por que sabia que eventualmente terminarían desarmados. No puedo decir que no sentia cierta emoción al desarmar las cosas. Pero también sentia una gran frustración cuando no podia volver a armarlas -Y años después cuando me sobraban tornillos–.

Mi teoría es que ciertos hombres y mujeres tenemos una curiosidad natural por saber como funcionan las cosas. ¿Por que es azul el cielo? ¿Que es lo que genera el fuego? ¿Que permite que ardan las estrellas?

Construir es hemoso. Personalmente creo que construimos para mejorar.

¡Mejoramos nuestras construcciones para mejorarnos a nosotros mismos!

Podría atreverme a asegurar que el hombre empezo a construir con base a una necesidad –No he pensado cual necesidad ¿Protegerse del clima?–. También podría apostar que otro hombre vío lo que uno estaba haciendo y decidio competir con el haciendo una construcción más grande. Empezamos a desarrollar necesidades que generaron estabilidad y riqueza.

Y para conservar nuestro nuevo estilo de vida demandamos más información útil, esto creó el pensamiento formal, las ciencias y los procesos –Cientos de años más tarde iPads y iPhones–.

Con el paso del tiempo nos dimos cuenta de que la repetición es el camino al perfeccionamiento –Cuando existe disciplina y conciencia de las acciones–. Nos volvimos maestros ingenieros, artesanos de clase mundial, soldados extremadamente competentes.

Todo esto por que empezamos a construir. Por una necesidad de permanencia. Debido a que somos seres que saben que su paso por este plano es demasiado breve para significar algo en la mayoría de los casos. Algunos hombres buscan vencer la impermanencia de su propia existencia a través de procrear.

Sin embargo ambas acciones terminaran siendo vencidas por la naturaleza humana.

Construir es una tarea ardua, con un propósito superior, trascender la impermanencia mortal que acompaña esta vida que vivimos. Pero también acarrea apegos disfrazados de tradiciones. Nuestra psique se arraiga fuertemente en las necesidades de ser y pertenecer, que se ven amenazadas cuando algún factor externo modifica la realidad. Nuestra necesidad es proteger lo que tenemos por temor a perder.

Esto resulta en una dicotomía. Por un lado nuestra necesidad de construir y por el otro nuestra necesidad de que las cosas no cambién. Especialmente nuestras cosas.

Esto da como resultado una doble moral, donde estamos dispuestos a inculcar el cambio en cosas que no afectan nuestra psique, pero somos incapaces de aceptarlo en lo que nos resulta importante. O lo que es lo mismo, creemos que la nuestra, es más grande.

La mía es más grande que la tuya

Consideremos desde el punto de vista del desarrollo de software, tan solo por un momento, la naturaleza de muchos programadores –Incluido yo mismo–, pero especialmente de los jóvenes, a remplazar código.

Cuando algo no anda bien se piensa que sustituir es mejor que arreglar. Y en muchos casos puede ser la decisión correcta. Siempre y cuando lo que estemos sustituyendo lo haya codificado alguien más.

En muchos casos sustituir el código viejo con código nuevo es mejor. Siempre y cuando no sea nuestro código el que está siendo sustituido ¿Verdad?

Esta forma dual en la que percibimos la realidad es una paradoja. Donde nuestra necesidad de crear cosas-nuestras, es más grande que la de aportar y mantener lo que existe. También es una de las razones por las que en algunos países en desarrollo no existen muchos proyectos de código abierto –Es un exceso de competencia incompetente–.

Esta necesidad de remplazar código, a veces viene de lugares oscuros, como el hecho de no querer aprender otro lenguaje de programación por que es demasiado complicado. O por que consideramos que no es lo suficientemente bueno.

Tomar horas de nuestro tiempo para mejorar algo que no construimos nosotros es un esfuerzo del cual se  puede aprender bastante. Especialmente en el mundo de lenguajes dinamicos donde se tiene acceso al código fuente.

Estoy conciente de que existen más factores para la toma de esta decisión, y que muchas veces no está en tus manos. Sin embargo, eres parte del resultado, y por tanto responsable. Por lo cual deberías evaluar todas las posibilidades antes de descartarlas.

Mi opinión, es que en este mundo de start ups, estamos demasiado preocupados con crear la siguiente ola de inovación –Muchas veces haciendo otra versión de algo que ya existe y funciona bien– , que perdemos de vista nuestra realidad como raza.

Los logros más grandes de nuestra raza se han dado a través de la colaboración de individuos con grandes talentos.

El método científico

El método cientifico esta diseñado para evitar pepetrar verdades absolutas e incomprobables –De otro modo sería una religión–, como raza llevamos años abranzado la impermanencia de las cosas, sabemos que lo único que no cambia es que todo siempre cambia.

Zen es abrazar esa impermanencia, es entender que todo se encuentra en un constante estado de cambio. Además de una increible disciplina para mantenerte conciente de la realidad, aceptarla por lo que es y entonces poder construir algo alrededor de ella, con ella o a partir de ella.

El Zen del Software es entender que el propósito es más grande que el código mismo.

Que los procesos se crean para eficientizar, no para limitar. Que nada –Ni siquiera la ROM– esta escrito en piedra.

Un maestro Zen del software es aquel que puede cambiar de lenguaje de programación y plataforma de un momento a otro sin temor. Por que sabe que una vez que ha terminado de cultivar su jardín este empieza a cambiar.

Un maestro Zen del Desarrollo de Software puede ver el código mal escrito por lo que es. Una solución en constante estado de cambio.

Si todos los días te levantas y escribes la misma sub-rutina, el mismo código. Si lo repites todos los días como un mantra, eventualmente ese código habra de evolucionar. Y si logras alcanzar el grado de maestro Zen en desarrollo de software podrás hacer desaparecer esa sub-rutina, convertir lo que hoy crees permanente en algo en constante estado de cambio.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *