Las Diez Reglas de un Programador Zen

En una mañana lluviosa me encontré a mí mismo sentado en mi escritorio, pensando sobre el trabajo eficiente. Antes de comenzar como trabajador independiente, tenía algunos días en los que trabajaba mucho pero nunca estaba feliz con el resultado. Comencé con la práctica del Zen allá por el año 2006. Lo que vino a mi mente luego de un buen tiempo fue, los antiguos maestros Zen ya sabían hace cientos de años cómo deberíamos trabajar los programadores de hoy. Aún siendo que no me gustan esas publicaciones del tipo "sea un mejor programador", quiero delinear algunos de mis pensamientos de esa épica. Me servirá como recordatorio a mí mismo, pero si tienes más ideas siéntete libre de comentarlas.

1. Foco

Si has decidido trabajar en una tarea, hazla tan bien como puedas. No comiences múltiples cosas al mismo tiempo. Haz una sola cosa en cada momento. No te volverás más rápido o mejor, sólo te esparcirás muy levemente. Si trabajas demasiado te agotarás, cometerás más errores y perderás tiempo saltando de una tarea en otra. Esto no sólo aplica a la programación; es una recomendación en general.

Kôdô Sawaki dice “si necesitas dormir, duerme”. No planees tu software cuando estás intentando dormir. Sólo duerme. Si programas, programa. No sueñes despierto sobre el código. Si estás tan cansado que no puedes programar, duerme. Conocidos programadores multitarea como Stephan Uhrenbacher han decidido trabajar en una sola tarea. Tuve una experiencia similar a la de Stephan cuando finalmente escribí Time & Bill, una herramienta de seguimiento de tiempos. Mi objetivo era seguir mis tiempos fácilmente incluso con pequeñas tareas como llamadas telefónicas. Ahora puedo crear algunos cronómetros al principio del día y seguir mi tiempo con sólo un clic. Al principio era un desastre: a veces sólo trabajaba unos pocos minutos en una tarea hasta que pasaba a la siguiente. Ahora he mejorado. De manera similar a la técnica Pomodoro, planifico algunos pocos compartimientos de tiempo y me concentro en ellos. No utilizo salas de chat, no sueño, no reviso un grandioso juego en el Appstore.

2. Mantén tu Mente Clara

Antes de que comiences a trabajar en tu software, necesitas limpiar tu mente. Deshazte de todo lo que hay en tu mente en ese momento. Si tienes problemas con algo, no los dejes influenciarte. En la mayoría de los casos, ese problema desaparecerá. Si el problema es demasiado, tanto que no puedes dejarlo ir, no trabajes. Intenta ordenar las cosas. Pero cuando comiences a trabajar, deja que el mundo exterior se esfume.

¿Hay algo emocionante en las listas de correo? Déjalo allí. Puedes seguir las cosas emocionantes luego. Apaga aquello que llena tu mente con mierda: cierra Twitter, Facebook, tus correos electrónicos. Deberías también poner tu teléfono en silencio, y dejarlo en tu bolsillo. Podrías decir que esto es similar al punto anterior, “Foco”. Pero aquí hay una restricción más: no utilices esas herramientas antes del trabajo, o en el almuerzo. Te conectan con el mundo exterior y traen algún nuevo problema o cosas que requieren tu atención.

Piénsalo de este modo: la mayoría de las veces tu mente está bastante clara cuando te levantas en la mañana. Si no lo está, hacer algo de deporte ayuda (yo corro largas distancias). Si te sientes limpio y refrescado, ve a la oficina y trabaja lo mejor que puedas. Cuando dejes tu trabajo, entonces puedes llenar tu mente con todo ese desorden. Verás que no es tan divertido cuando tienes un día completo de trabajo detrás de ti. Twitter y compañía consumen mucha de tu energía. No pienses que sólo toma un minuto. No lo hace.

Sabes que es verdad.

3. Mente de Principiante

Recuerda los días en que eras un principiante o si aún eres uno, mantente en esa postura. Nunca habrás aprendido suficiente. Aún si ya eres un experto, piensa en ti mismo como si fueras un principiante cada día. Siempre intenta ver las tecnologías desde una mente de principiante. Puedes aceptar correcciones a tu software de un mejor modo, y abandonar el camino habitual, si lo necesitas, por uno más simple. Existen algunas buenas ideas aún de gente que no tiene tu experiencia. ¿Acaso hubo alguna vez una pieza de software escrita dos veces del mismo modo? Aún si copias el software, de algún modo será diferente.

4. Sin Ego

Algunos programadores tienen un problema inmenso: su propio ego. Pero no hay tiempo para desarrollar un ego. No hay tiempo para ser una estrella de rock.

¿Quién es el que decide tu calidad como programador? ¿Tú? No. ¿Los otros? Probablemente. ¿Pero puedes acaso comparar realmente manzanas con bananas? No. Tú eres un individuo. No puedes comparar tu ser completo con otro ser humano. Sólo puedes comparar algunas pocas facetas.

Una habilidad no es algo de lo que puedas estar orgulloso. ¿Eres bueno con Java? Bien. Alguien más no es tan bueno como tú, pero será mejor en los bolos. ¿Es más importante Java que los bolos? Depende de la situación. Probablemente ganas más dinero con Java, pero el otro tipo podría divertirse más en la vida gracias a sus amigos de los bolos.

¿Puedes realmente estar orgulloso de que eres un geek? Los programadores con ego no aprenden. Aprende de todos, de los experimentados y de los novatos al mismo tiempo.

Kôdô Sawaki una vez dijo: “Tú no eres importante”.

Piénsalo.

5. No Existe un Objetivo de Carrera

Si quieres ganar algo y no te importa ti vida “ahora”, ya has perdido el juego. Sólo actúa tan bien como puedas, sin mirar el objetivo que podrías alcanzar luego de mucho tiempo.

¿Trabajar por veinte años para convertirte en el socio de una compañía? ¿Por qué no estás trabajando tan duro como puedas sólo porque es divertido? El trabajo duro puede ser divertido. “Un día sin trabajo es un día sin comida” es un dicho Zen.

No hay necesidad de comenzar a ser feliz sólo luego de veinte años. Puedes ser feliz en este momento, aún si no eres un socio o no conduces un Porsche. Las cosas cambian muy fácilmente. Puedes enfermarte. Pueden despedirte. Puedes quemarte (si sigues todos estos puntos adivino que es poco probable).

A menos que esas cosas malas te sucedan, sólo trabaja tan bien como puedas y diviértete haciéndolo. No hay razón para mirar las ganancias de tus colegas. No hay razón para pensar sobre el nuevo y atractivo puesto que no obtuviste.

Después de todo, conseguirás algo. Terminarás con buenos recuerdos, quizás una buena posición-y veinte excelentes años. Cada día es un buen día.

Si alguna vez llegas al punto en que piensas que trabajar en tu compañía ya no es divertido en absoluto, debes irte inmediatamente. NUNCA te quedes en una compañía que quita la felicidad de tu vida. Por supuesto, esto sólo es posible en países ricos, donde la gente tiene la oportunidad de irse. Pero si estás viviendo en un ambiente tan bueno, hazlo. Vete sin lamentarlo. No tienes tiempo que perder, podrías estar muerto mañana.

Cuando no tienes objetivos de carrera, irse es muy fácil.

6. Cállate

Si no tienes nada que decir, no gastes el tiempo de tus colegas. Esto no te hace ver débil. Cada día que trabajas necesitas intentar no molestar a nadie. Imagínate si todos lo intentasen ¿qué tan buen lugar de trabajo sería? A veces no es posible. Inténtalo duro, te gustará.

Si no desarrollas un ego es bastante fácil callarte y preocuparte solamente por las cosas de las que puedes hablar. No mezcles tu ego con tu “experiencia”, y siempre recuerda: eres un principiante. Si alguien tiene una buena idea, apóyala.

7. Atención Plena. Cuidado. Conciencia

Sí, estás trabajando. Pero al mismo tiempo estás viviendo y respirando. Aún cuando estés pasando por momentos difíciles en el trabajo, necesitas escuchar las señales que te da tu cuerpo. Necesitas aprender sobre las cosas que son buenas para ti. Esto incluye todo, desde las cosas básicas como la comida. Necesitas cuidarte por ti mismo y por todo en tu entorno-porque después de todo, el agua que bebes es el agua que corre en el río. Sólo vives por ti mismo. Vives solo, y mueres solo. El mundo continúa aún sin ti.

Evita trabajar en situaciones que no te gustan. Evita trabajar gratis si esto significa que no habrá diversión y te mantiene alejado de la cama. Deja ir aquello que no te hace feliz. ¿Crees que la gente sólo trabaja gratis en la teoría? Considera la gente desarrollando Open Source en su tiempo libre. Si te has suscrito a algunas listas de correo de proyectos de código abierto probablemente sepas qué conflictos existen (a veces). Si no te diviertes con eso, deja de hacerlo. Conozco un grupo de personas que trabajan en un entorno de Open Source que no les gusta. Nuevamente, con Time & Bill controlé el tiempo que empleaba en proyectos de código abierto y me sorprendió cuánto tiempo perdía allí-especialmente en proyectos que no me gustaban tanto.

Manteniendo esto en mente, algunas personas piensan que sólo están felices cuando tienen tiempo libre y pueden gastar su tarde con una Xbox y algunas cervezas. Mientras que esto es una buena idea de tanto en tanto, no es necesario que cada momento de tu vida sea “diversión”. Si puedes evitar situaciones que no te gustan, evítalas. Pero a veces se necesita hacer algo realmente jodido. Por ejemplo, copiar y pegar cosas manualmente de la hoja de cálculo de tu gerente en phpmyadmin. Puede tomarte días, y es realmente aburrido. No es divertido, pero a veces necesitas hacer esas cosas. No siempre puedes renunciar a tu trabajo cuando tienes una tarea aburrida. Los Monjes Zen tampoco se avergüenzan de su trabajo. Se levantan a las 3am (a veces más temprano, a veces más tarde, dependiendo del convento) y comienzan con la meditación y el trabajo (aún practican meditación mientras trabajan). Tienen cosas para hacer como limpiar los baños. O trabajar en el jardín. O como un Tenzo, cocinan. Lo hacen con todo el cuidado que pueden reunir. Lo que sea que hagan, lo hacen sin sufrir y son (o deberían ser) felices, porque cada segundo, aún en los momentos en que limpian los baños, es un segundo de sus vidas.

Dicho esto, deja de quejarte si necesitas copiar y pegar Excel. Sólo hazlo. No gastes tus energías con esas cosas; pasarán. En cambio, vuélvete el mejor copiador de Excel que exista.

Si sufres un ataque cardíaco, la gente probablemente diga: “Oh, sí, él era un trabajador muy dedicado-trabajaba incluso gratis para mí por las noches”. Nadie puede guiarte al otro mundo. Este último paso se toma solo. No puedes intercambiar nada en este mundo, ni siquiera un pedo. Entonces depende de ti prestar atención, cada segundo. Si mueres, mueres. Pero cuando vives, vives. No hay tiempo que perder.

“Cuidado” es una palabra inmensa en el Budismo Zen (y pienso que también en cada forma del Budismo). No puedo expresar todo lo que necesita decirse. Son difíciles de entender los diferentes significados de “cuidado”. Probablemente sea mejor con la palabra “conciencia”. Debes estar consciente de lo que haces, cada segundo de tu vida. Debes estar atento en tu vida. De otro modo, la malgastas. Pero, por supuesto, depende de ti hacerlo si quieres.

8. No Hay Jefes

Sí, existe alguien que te paga. Existe alguien que te dice qué necesita hacerse. Y él puede despedirte. Pero esa no es razón para rendir tu propia vida, o enfermarte por tu trabajo. Finalmente, tu jefe no tiene control sobre ti. Se puede dudar incluso si tú mismo tienes control sobre ti-pero no exploremos este camino.

Volviendo a tu jefe: puede hacer tu vida peor si lo dejas hacerlo, pero existe una salida. Decir “no” si debes hacer algo que te enferma o que está en contra de tu ética ¿Qué sucederá? En el peor escenario, te despedirán. ¿Y? Si vives en las naciones del oeste, y si eres un programador (lo que es probable ya que estás leyendo esto) obtendrás otro trabajo.

No quiero decir que digas que “no” a tareas como copiar datos de un CSV en HTML. Estoy hablando de semanas de ochenta horas y sentir que tu cuerpo se rompe. O sentir que tus hijos necesitarían tu atención también. O que te fuercen a despedir gente sólo porque no le caen bien a tu jefe. O si eres un consultor y obtienes un trabajo para desarrollar software para una planta nuclear (algunos dirían que está perfectamente bien trabajar para compañías nucleares-va contra mi ética y sirve como ejemplo) o software para tanques de guerra. Puedes decir que “no”.

9. Haz Algo Más

Un programador es más que un programador. Deberías hacer algo que no tenga nada que ver con las computadoras. En tu tiempo libre, ve a navegar, pescar, nadar. Medita, haz artes marciales. Toca el Shakuhachi. Lo que sea que hagas, hazlo con toda la energía que te queda. Como lo haces en tu horario laboral. Hazlo seriamente: un hobbie no es sólo un hobbie, es una expresión de quién eres. No dejes que nadie te engañe cuando dicen que los hobbies no son importantes. Hoy en día podemos costear tener hobbies. He grabado varios discos y escrito libros de fantasía (estos últimos no han sido publicados, aún necesito más práctica). Esas cosas me han convertido en la persona que soy ahora, y finalmente me han llevado hacia el Zen y a este libro. Estos días practico Zen Shakuhachi. Es una aspecto muy importante de mi vida diaria.

10. No Existe Nada Especial

Una flor es bella. Pero sólo es una flor bella, nada más. No hay nada especial al respecto. Eres un humano que puede programar. Quizás eres bueno. No hay nada especial acerca de ti. Eres del mismo tipo que soy yo, y todos los otros en este planeta.

Necesitas ir al baño y comer. Por supuesto, necesitas dormir. Luego de (esperemos) mucho tiempo morirás y todo lo que has creado se perderá. Incluso las pirámides se perderán, luego de mucho tiempo ¿Sabes los nombres de las personas que las construyeron? Si acaso los sabes, ¿es importante saberlos? No lo es. Las pirámides están allí, o no. Nada especial.

Lo mismo aplica para tu software. El banco está ganando dinero con tu software. Luego de que te vayas, nadie te recordará. No hay nada de malo con eso, es el paso del tiempo. Nada de lo que debas preocuparte. Si estás siguiendo las primeras nueve reglas, verás que este último proyecto fue un proyecto bueno y divertido. Ahora simplemente es momento de continuar y concentrarse en algo más.

Si tu compañía cierra por problemas financieros, no hay problema: la vida continuará. No hay necesidad real para una Xbox, un auto, o algo más. La mayoría de la gente en este planeta vive en la más profunda pobreza. No se preocupan por una Xbox porque a ellos les encantaría tener algo de comida o incluso agua.

Entonces… ¿por qué eres especial, exactamente? ¿Porque tuviste la suerte de nacer en un país occidental? ¿Porque puedes programar? No, no hay nada especial sobre eso. Puedes dejar ir tu ego y vivir libremente. Disfruta de los colores y huele las flores. No estés tan triste cuando el invierno llegue, y no estés tan feliz cuando la primavera regrese. Es solamente un flujo. Mantén esto en mente cuando alguien rechace tu aplicación laboral. Porque ninguna compañía es tan especial como para que necesites estar preocupado por el trabajo.