Tinselcity

Hace unos días, un amigo me señaló que mi descripción de LinkedIn dice que soy un “Stoic Software Engineer” y me preguntó si lo decía en serio. Es un tema del que no suelo hablar con mucha gente -creencias personales, filosofía, etc-, pero he pensado que quizá a alguien le pueda servir de algo ver esta otra perspectiva. Adelanto, eso sí, que lo que sigue es el ideal que intento alcanzar pero que no siempre lo consigo.

El Programador Estoico

(Re)Descubrí el estoicismo hace unos cuantos años. No es nada nuevo, una filosofía con miles de años. Y la había estudiado en su momento en el colegio. Pero una cosa es conocer algo y otra diferente sentir un interés real por ello. Es esto segundo lo que me ocurrió hace ahora unos diez años. Uno de los atractivos inmediatos del estoicismo fue su sencillez. No es necesario acudir a explicaciones complejas ni insertar complicados procesos de comportamiento en tu vida. Además, es bastante compatible con otras creencias que tengas.

Con el tiempo he intentado ir incorporando esta perspectiva no sólo a mi vida, sino también a mi profesión. Pero antes de llegar a eso, veamos un breve resumen de lo que significa el estoicismo… aproximadamente.

Estoicismo

No pretendo ser, en absoluto, un experto en la materia y seguro que en lo que cuente a continuación me olvide cosas o las presente de forma imprecisa o inexacta. No me preocupa demasiado. Cualquier puede acudir a multitud de fuentes mucho más fiables que yo y conseguir una explicación mucho más detallada y correcta. Sea como sea, estas que siguen son las ideas que yo intento adoptar del estoicismo.

Hay dos ideas fundamentales.

Una es la del “objetivo en la vida”. Muchas filosofías presentan un concepto vago de “felicidad” como el objetivo a buscar en la vida, y esta se busca a través de diversas formas. El estoicismo asume, como otras filosofías, la existencia de un “sumo bien”, |Summum bonum, la idea de que existe un bien superior y que es esto lo que debemos buscar. Muchas filosofías comparten esta idea y luego declaran cuál es para ellos ese bien. En el caso del estoicismo, este es el bien común, es decir, que defiende la idea de que debemos avanzar todos juntos, que el objetivo a buscar es el progreso que nos permita a todos, como sociedad, como civilización, alcanzar ese bien. Lo mejor para nosotros es lo que es mejor para todos juntos.

La otra idea fundamental es la de aceptar el mundo tal como es. Esto a veces ha hecho que se asocie el estoicismo con una cierta dejadez, a veces incluso fatalista, pero nada más lejos de la realidad. Si es cierto que el estoicismo promueve un cierto desapego, este está siempre orientado de forma positiva. Es decir, no se trata de simplemente asumir las cosas tal como sean sin más, sino de ser capaz de entenderlas e incluso, por qué no, disfrutarlas.

De estas dos ideas se derivan una serie de consejos y conclusiones sobre cómo debemos vivir. Por un lado, de lo anterior se sigue que todo es efímero y nosotros también y que no debemos, por tanto, aferrarnos a cosas que pueden fácilmente desaparecer en cualquier momento. En su lugar debemos aprender a disfrutar de las cosas tal como ocurran y precisamente debemos ser capaces de apreciar y agradecer lo que tenemos alrededor porque todo ello podría no estar mañana. En este sentido, recomiendan practicas la meditación sobre la catástrofe, es decir, pensar con frecuencia en todas las cosas que pueden ir mal, incluso nuestra propia muerte, para estar preparado para ello. Igualmente defienden la idea de que “el obstáculo es el camino” o que la persona solo llega a realizarse enfrentándose a los obstáculos y que, por eso, debemos recibirlos como bienvenidos, no como un sufrimiento o una desgracia sino como la oportunidad de progresar.

Por otra parte, el estoicismo presenta como guía básica del comportamiento, la búsqueda de la “tranquilidad”, entendida esta como la capacidad de mantener la calma frente a la adversidad. Y aquí es donde explica una de las claves fundamentales para nuestra vida: El “conflicto”, la adversidad, podemos clasificarlo en dos grandes grupos: Cosas sobre las que no tenemos control (i.e. vienen determinadas por factores externos sobre los que no podemos actuar) y cosas sobre las que sí tenemos control (i.e. podemos actuar sobre ellas, en todo o en parte). Preocuparnos por las primeras es inútil, puesto que no podemos hacer nada por cambiarlas. Obviamente nuestro esfuerzo debe centrarse en las cosas sobre las que sí tenemos control. Y, de forma general, aquello sobre lo que tenemos control definitivo somos, claramente, nosotros mismos. (De ahí que, por ejemplo, los estoicos insistan en eso de que no son las cosas que ocurren las que nos hacen daño, sino nosotros mismos los que decidimos dejar que nos afecten de un modo o de otro.)

En fin, esto es un resumen seguramente muy superficial. Como digo hay buenas referencias, antiguas y modernas, que pueden explicar estas cosas mejor que yo. Si no las encuentras, siempre me puedes preguntar.

Una Nota Personal sobre el Estoicismo

Además de las ideas expuestas anteriormente, hay otra que se presenta de un modo quizá algo más genérico. Decía Marco Aurelio, entre otras muchas cosas: “Haz lo correcto. Todo lo demás no importa.” (También se puede añadir esta otra: “No pierdas el tiempo discutiendo cómo debe ser una buena persona. Sé una.”)

Personalmente esta idea es la que, a pesar de parecer más abstracta, más creo que he intentado incorporar a mi vida. Fijaos que Marco Aurelio no pretende aquí definir qué es lo correcto o qué es una buena persona. Realmente lo que está diciendo es esto: “Sé consecuente con tu forma de pensar y sé coherente en tu forma de actuar.” Es decir, yo puedo tener una idea de lo que es correcto y tú puedes tener otra y pueden no ser iguales, pero lo importante es que actuemos siguiendo esa idea que tenemos como guía. Lo contrario, defender hacia el exterior que “lo correcto” o que “una buena persona” es una cosa pero después hacer otra diferente no es sólo hipócrita, sino que nos lleva únicamente a engañarnos a nosotros mismos. Si realmente creemos algo, debemos actuar de forma consecuente con ello. Si no, lo único que tendremos es una ausencia de valores y una forma de vivir que ni siquiera a nosotros mismos nos satisface.

Como añadido diré, eso sí, que mi idea de lo correcto también va alineada con esa idea del progreso y el avance como sociedad y como civilización. Creo en ese bien común por encima del bien individual. Quizá no tengo una idea clara de cómo se debería buscar colectivamente, pero sí asumo que como individuo puedo y debo hacer lo que esté a mi alcance para mejorar la vida de los demás.

El Estoicismo en la Profesión

Al menos en mi caso, mi profesión forma parte de mi vida. Esto implica que también he intentado1) llevar estas ideas sobre la forma de vivir y de actuar a mi entorno profesional. ¿Qué significa o cómo se ve reflejado esto? O en otras palabras, ¿qué refleja ser un programador estoico? Creo que muchas de las ideas encajan de una forma muy práctica y muy directa en la programación2).

En años recientes, en el área en la que trabajaba -el desarrollo de front-end- ha reinado la confusión, el caos, el cambio constante y continuo. Frente a esto, parece muy buen consejo la idea de “mantener la calma”. No sólo a un nivel personal, sino también en el propio software. Es decir, no se trata solo de que, como programadores, no nos dejemos llevar por modas pasajeras, sino que no dejemos que esas modas se lleven al propio software que estamos haciendo. He visto demasiados proyectos recientes perder por completo el camino al dejarse llevar por estos continuos cambios caprichosos. Así que creo que es una buena aplicación de los principio estoicos el tratar de buscar esa misma tranquilidad para nuestro software. Es decir, tratar de hacer software, de escribir código, que se mantenga desapegado del entorno y de las modas. Mantener una visión de progreso y de futuro, pensando que todas esas modas son cosas externas, que están fuera de nuestro control y que, por tanto, no debemos dedicarles esfuerzo.

Más aún, esta misma idea de dedicar el esfuerzo en aquello que sí podemos controlar, la podemos aplicar a otros aspectos prácticos de nuestros proyectos. En muchos casos, por circunstancias del cliente, o necesidades del negocio o de los usuarios, tendremos que trabajar con cosas que “no nos gustan”, que querríamos que fueran de otra forma o que no tuviéramos que hacer. Pues bien, la forma correcta de afrontarlas es asumir el mundo tal como es e incluso disfrutarlo.

Hace poco en un foro en internet, una persona se quejaba. Había aceptado un cierto trabajo. El ambiente, la empresa, el equipo… todo eso le gustaba. Pero, decía, se veía obligado a trabajar con tecnologías que no eran las más recientes y modernas. Ni siquiera eran anticuadas, pero no eran punteras ahora mismo en el ambiente de moda. Tristemente, varios aconsejaban que dejara ese trabajo y se buscara otro. Para mi, hacer eso sería una gran oportunidad perdida. Se puede aprender muchísimo de tecnologías maduras. Es más, diría que se aprende más de estas que de tecnologías demasiado verdes y volátiles que aún están intentando encontrar la estabilidad. Pero incluso yendo un poco más allá, es un caso claro de distinguir entre lo que podemos controlar y lo que no. Por necesidad del proyecto, podemos tener que utilizar tecnologías antiguas, que no están de moda, o que no conocemos. Esto va a ocurrir con frecuencia. Es mucho más productivo e incluso razonable asumir y aceptar que esto está en la naturaleza de nuestro trabajo, que dejar que nos afecte negativamente.

Otro aspecto interesante del desapego es uno que ya se defiende en muchos ambientes de desarrolladores, sin relación con el estoicismo. Es el de dejar de lado nuestro ego y de no enamorarnos de nuestro código. El problema es que demasiadas veces esto no se plantea del modo correcto. Demasiadas veces esta idea termina produciendo un desentendimiento, un desinterés total por el código, aduciendo que “de todos modos, el código es efímero” y que se cambiará y se tirará. No es esta la aproximación más productiva, creo yo. De lo que se trata es de conocer y aceptar cuál el la realidad del código. El código no es el producto. Es únicamente una herramienta para producir el resultado que buscamos. Pero la forma de afrontar esto no es quitando al código su relevancia, sino entendiéndola en su medida apropiada.

Viéndolo así, llegaremos a entender que el código tiene un ciclo de vida y que este no es igual para todo el código. Habrá código con una vida muy efímera, casi instantánea, mientras otro deberá estar escrito para durar. Entender esto, entender cuál es la utilidad de cada código que hacemos y qué debemos esperar, y qué no, de él nos dará una perspectiva mucho más clara para asumir ese desapego hacia una solución concreta y evitaremos caer en hacer código que solo satisfaga nuestro interés “estético”.

Finalmente, uno de los aspectos que personalmente más he intentado aplicar a la hora de desarrollar es el que hacer lo correcto. Es triste observar cómo en esta profesión se ha ido degradando en gran medida el concepto de responsabilidad. Demasiados desarrolladores intentan buscar a toda costa formas de desentenderse de cualquier tipo de responsabilidad. Hay “movimientos” y “manifiestos” e incluso empresas que, por modas o por oír cómo estas ideas son “modernas”, aplican prácticas y procesos cada vez más irresponsables. Ante esto, mantengo que la única forma de ser verdaderamente profesional es asumiendo nuestras responsabilidades para llevar a cabo un trabajo no solo correcto sino buscando el compromiso real.

Pero incluso más importante que esto es esa otra idea de ser consecuentes. Demasiados profesionales y empresas, proclaman a los cuatro vientos su bondad y su excelencia para luego atajar y trampear siempre que pueden en cualquier aspecto del proyecto. Su turbia filosofía parece querer decir “Haz que parezca correcto; todo lo demás no importa.” Frente a esto, como decía Epicteto, la mejor respuesta es no ser como ellos.

Conclusiones

En realidad, no tengo ninguna conclusión. Obviamente creo que estas ideas son buenas -y más aún, necesarias- si no, no las aplicaría en mi vida. Pero todo esto solo son cosas que me han ayudado a mi a intentar ser mejor como persona y como programador. Si lo he conseguido o no, eso ya es otra historia y no me corresponde a mi juzgarlo. Y si estas cosas pueden o no ayudar a otros… Bueno, está por ver, pero para eso las he compartido aquí :)

1)
por lo menos lo he intentado
2)
Estoy bastante seguro de que también encajan en otras profesiones, claro, pero yo hablo de la mía porque es la que conozco :-)