Pensando en programar

Quien me conozca un poco sabrá que no me cae demasiado bien todo el mundo de la “farándula de los programadores” que hay montado por ahí. Cuando digo farándula me refiero a toda una serie de grupos, eventos, artefactos comunicativos, personajes, y a veces personas, que presentan una cierta visibilidad que los destaca frente al resto. No es que me caigan mal realmente, es que creo que si hacemos balance entre lo bueno y lo malo que aportan, es difícil valorar el total como algo positivo.

The 99% Programmers

Si hay algo que valoro de forma especialmente positiva de mi carrera profesional dentro del desarrollo de software es que, a lo largo de los años, me ha permitido conocer y observar a muchas y muy distintas personas. Desarrolladores de software de todo tipo y con todo tipo de carreras.

He conocido eso que algunos llaman “grandes profesionales”, y también -supongo que habrá que llamarlos así- “pequeños profesionales”. He tenido ocasión de encontrar gente que trabajaba en una pequeña empresa haciendo software día a día para cubrir pequeñas necesidades aquí y allá y que ni siquiera se consideraban desarrolladores. También he conocido quien se metía en una ahem-consultora al comenzar su carrera, y se ha quedado ahí para siempre, 10, 15, 20 años o los que queden. He conocido mujeres programadoras, claro que sí, muchas, más de las que algunos y algunas quieren hacer ver que hay. Y alguno que con 20 y pocos años elegía COBOL frente a Java, C++, .NET, JavaScript o cualquier otra cosa, y no porque eso le asegurara un trabajo sino porque realmente le gustaba trabajar con COBOL. Y otros que con la misma edad solo consideraban, y así lo refleja su carrera, trabajar en las start-ups más “molonas” y punteras.

He conocido gente que se convertía en programador o programadora por necesidad de su “trabajo real”, y solo lo consideraba una herramienta más. Y a quien le producía pura fascinación alejarse por completo de la realidad y sumergirse en bits, bytes, expresiones matemáticas y lenguajes, independientemente de qué uso real tuvieran. Ha habido de esos que trasteaban haciendo sus jueguitos cuando eran adolescentes y quienes todavía, después de trabajar sus ocho horas en esto, se siguen juntando 4 o 5 amiguetes y siguen haciendo esos mismos juegos. Y también de los que después de ocho horas de esfuerzo y excelente trabajo, no querían saber nada más del software salvo, quizá, para jugar con sus familias.

Alegres, serios, apasionados, aburridos, profesionales, aficionados… con todo tipo de formación, con padres o madres que ya eran programadores, unos que han llegado a esto desde muy pequeños y otros que han llegado ya mayores.

He conocido, también, a mucha gente que llevaba su profesión de manera digamos aislada o personal, aprendiendo por su cuenta o quizá con unos pocos compañeros de toda la vida. También a quienes decidían participar en o incluso montar alguna web comunitaria. Foros de ayuda, webs de noticias, listas de correo, portales, más recientemente “blogs” propios o compartidos. Y también he conocido a una buena parte de quienes han dado otro paso más y forman parte de ese grupo que acude a conferencias y eventos, como oyente o como ponente, incluso a algunos de los que organiza esos propios eventos.

No puedo evitar -es algo que está en mi- observar a la gente. No solo observarla, sino también escucharla. A veces escucharla incluso más de lo que se escucha a sí misma. Esto me permite, a veces, notar algunas cosas interesantes… que en realidad muy pocas veces comparto porque no creo que le interesen a casi nadie. De hecho, muchas veces a quien menos interesa es a las propias personas observadas porque si no han querido hacer ellas mismas esas observaciones es por un motivo consciente, de modo que no les interesa tampoco que otros vengan a hacérselas.

También me gusta, aunque no tengo muy claro el motivo aún, observar grupos de personas. He participado en bastantes, he visto algunos desde dentro y otros desde fuera y en alguna ocasión desde ambos sitios. Los grupos tienen sus propias mecánicas y comportamientos y a veces son mucho más entretenidos.

En fin, extrañas aficiones que tiene uno…

La desconexión del 1%

Así que, a veces, a ratos, de forma informal, me fijo justo en ese grupo que hay alrededor de eventos, conferencias, grupos, etc. Incluyo aquí también bastante de lo que se ve de todo esto desde la distancia de Twitter, Meetup, y toda esa caja de ruidos, ecos y gritos, porque a pesar de la cacofonía y de lo desagradable que resulta muchas veces la distorsión que produce la amplificación de internet, es indudablemente representativo en algunos aspectos.

Mi primera y principal conclusión es esta. Todo ese ruido, toda esa visibilidad, todo ese espectáculo, está en gran medida desconectado por completo de la realidad de la profesión. Son, de forma clara, “un 1%” que vive no en la riqueza y el poder de ese otro más conocido y nombrado “1%”, sino simplemente en una especie de realidad prefabricada que tiene poco o nada que ver ni con la profesión ni con el desarrollo de software. El mundo de las charlas, conferencias, eventos, meetups, newsletters, etc, es cada vez más un círculo de mutual back-patting. Una auto-congratulación colectiva organizada alrededor, no del desarrollo de software, sino de la popularidad. Y todo esto sin hablar del infierno de falsedad y apariencia que es LinkedIn, que eso ya es un caso al margen.

Y sí, estoy hablando de eventos y demás considerados en principio como de carácter técnico. Pero es que incluso en las ocasiones en las que se tratan temas técnicos, en la mayoría ocurre que siguen alejados de la realidad.

Hace un rato me ha dado por buscar datos sobre cuotas de uso de algunas librerías y frameworks de JavaScript. El motivo ha sido leer a alguien afirmando en uno de esos lugares de discusión social de la red que “todo el mundo usa React”. Que es un poco tonto por mi parte que algo así me lleve a hacer esa búsqueda porque a. no es la primera vez que leo la tontería, y b. ya conocía las estadísticas. Pero oye, por asegurarme, por ver los datos más recientes, por si acaso. Y es que ni siquiera llega al 1%. Ni Angular tampoco. Ni Vue. Ni la que sea que es tu favorita. Por supuesto que no es fácil obtener datos totalmente fiables, pero es que ni hace falta. Después de ver una docena de fuentes distintas las conclusiones son similares. Sí, hay variaciones de unos a otros y de cómo cuentan las cosas, pero es irrelevante, no supone diferencia. Y lo mismo cuando alguien suelta que “hoy en día nadie usa PHP”. Que será feo, que no te gustará, que te hará sufrir… Me parece muy bien, pero decir que nadie usa PHP en internet hoy en día es tan estúpido como falso. Lo mismo que decir que “todo el mundo está metiendo Node en back” o que “Java es el pasado”.

Y mientras tanto, en todos los eventos, charlas, conferencias y demás, de lo único que se habla es de esas cosas que no llegan al 1%.

En algunos casos reconozco que tiene interés y que puede ser bueno hablar de cosas que no se usan pero se deberían usar precisamente para que adquieran más visibilidad. Pero… ¿la adquieren? Porque aunque está claro que hay muchos más asistentes que ponentes en estos eventos, ¿realmente pasan de ahí al “gran público”, al 99% restante? Claro, algo como React o Angular, tiene detrás una implacable máquina de publicidad detrás, un Facebook o un Google, que insistentemente derrochan miles, quizá millones, en impulsar su solución para adquirir esa cuota de popularidad. Y a pesar de eso, según varias estadísticas, hay más sitios usando Mootools que React o Angular (según algunas de esas, incluso más que los dos juntos). Ojo, Mootools, la librería con tan malas prácticas que el comité de desarrollo del estándar de ECMAScript tuvo que cambiar de contains a includes por su culpa. Y aún así…

Popularidad, espaldas rascadas y pequeños puñales

Esta es la farsa construida. A veces conscientemente, a veces no. A veces dirigida por intereses individuales y a veces por intereses corporativos. Es poco más que una escenificación de aplausos a los amigos útiles que otro día corresponderán con los suyos. Es algo, en definitiva, que tiene -en general, siempre hay excepciones, bla bla bla- muy poco que ver con el beneficio de la comunidad o de la profesión.

Y es cierto, el origen, el motivo inicial, aquella tarde en aquella cafetería, siempre es noble e idealista. No lo pongo en duda. Sé positivamente que hoy en día en muchos caso no es así, y muchas de las comunidades y eventos nacen ya con unas motivaciones muy concretas, con intereses detrás y con objetivos silenciados con mayor o menor habilidad. Pero aún así no dudo que otros muchos casos nacen con “buena intención”. Basta tener una idea medianamente razonable de los mecanismos y dinámicas sociales que se dan en grupos de personas para entender que, inevitablemente, ese noble origen casi siempre es irrelevante.

Los grupos crecen en sí mismos, como entidades diferenciadas, más allá de las personas individuales que los componen. Y como entidades, son muy fáciles de manipular, consciente o inconscientemente. Uno de los factores que más afecta a la evolución del grupo como tal es su crecimiento. El simple hecho de crecer, de adquirir más y nuevos miembros, introduce cambios importantes en el grupo, en su dinámica y en los comportamientos que produce.

En tiempos recientes hay dos ideas que parecen estar estableciéndose en muchos entornos como indiscutiblemente buenas -es decir, que todo el mundo las ve como buenas y además no se plantean que puedan no serlo-. La primera es asumir que lo mejor para cualquier grupo, comunidad, evento, etc, es crecer, llegar a más gente, tener más alcance a base de tener cada vez más miembros, de involucrar a más personas. La segunda es que, de algún modo no definido, a la vez que crece y crece, el grupo1) debe ser “el mejor” en su ámbito. Esto es, no basta, por ejemplo, montar una conferencia, sino que esta debe tener siempre a los mejores ponentes, la mejor infraestructura, el mejor ambiente, el mejor todo. Cuando estas dos ideas confluyen, cualquier otro objetivo noble que pudiera existir queda sometido a ellas.

Así todo se encamina a atraer más gente y a ser los mejores. Como es evidente, la forma de validar que se es “los mejores” es mediante el aplauso cada vez más numeroso. Se confunde el aplauso con el éxito. Se comercia con el aplauso.

Lamentablemente, hay efectos que son difíciles de controlar. La llegada de nuevos miembros siempre introduce mecánicas más complejas en el grupo. Nuevos puntos de vista, nuevos intereses personales que pueden, o no, coincidir con los del grupo original. Durante un tiempo, en pos del progreso y crecimiento del grupo, los conflictos o tensiones internas que puedan ocurrir, se intentan suavizar. Todo está bien. Todo es bueno. Es bueno tener diferentes objetivos, nuevos intereses. Unos y otros conviven dentro del grupo. Al final es habitual, casi inevitable, que haya algún tipo de desenlace para esas tensiones no tratadas. A veces, es tan simple como un “relevo generacional”. Algunos miembros salen del grupo, otros adquieren nueva relevancia. Otras veces hay escisiones. En ocasiones todo desemboca irremediablemente en desaparición del grupo. Qué ocurra con un grupo depende también de cómo se gestione, claro.

Pero por debajo de todo esto, subyace el problema de fondo original. La enorme mayoría de estos grupos no está dirigido por un espíritu de altruismo hacia la comunidad de desarrolladores, sino que está guiado por intereses en su mayoría personales y en ocasiones corporativos. Esto lo impregna todo.

Como digo siempre hay pequeños grupos, pequeños eventos, pequeñas comunidades, que consiguen mantener gran parte del espíritu original a lo largo de los años. En mi experiencia, estos son los que siguen siendo pequeños y los que nunca llegan siquiera a plantearse el objetivo de tener más alcance. Son grupos que entienden lo que son y para qué existen, y que no buscan el aplauso del resto o la repercusión.

Volvemos a nuestra programación habitual...

Más allá de todo este tema de las dinámicas de grupo, de los conflictos, objetivos e intereses, hay un problema que sigue permeando a través de todo el tejido de la comunidad: ¿Hasta qué punto representan estos elementos -grupos, eventos, etc- más visibles al resto de la comunidad de desarrolladores?

Y lamentablemente me temo que la respuesta es que no lo representan en absoluto. Es un mundo centrado en mirarse su ombligo, en palmear su propia espalda y producir únicamente apariencia a base de humo y espejos. Y esto es cada vez más fácil de ver porque con el tiempo ahora resulta muy evidente que lo que florece en este caldo de cultivo es todo lo que es ajeno o auxiliar al desarrollo. Todo, menos el desarrollo en sí.

Los grupos se politizan con fuertes cargas ideológicas que nada en absoluto tienen que ver con la tecnología. Los focos iluminan a docenas de gurús de medio pelo que vienen a vender su método, su proceso, su magia y su espectáculo de variedades. El público aclama al que lleva el disfraz más original, ya sea de dinosaurio o de cobrador, y al que pone las diapositivas más graciosas y llenas de referencias culturales irrelevantes. Y como ocurre en cualquier sistema de élites, siempre hay alguno que se erige como árbitro para dar pegatinas a su grupo más cercano.

Porque, como ocurre con cualquier sistema de élites, tened claro que una vez una élite se establece como el 1% y crea su grupo cerrado, dentro de ella surgirá otra, el 1% del 1%, más cerrado y más elitista.

A nivel personal, haber observado estas cosas ocurrir a lo largo de los años, probablemente sea una de las cosas que más tristeza me producen respecto al desarrollo de software. ¿Quizá habría sido mejor no mirar?

1)
comunidad, evento, club, charla…