Creo que se aprovechan del nerd que llevamos adentro que queremos saber todo.... desde administrar la bbdd a mover un div.
La trampa del Full-Stack

¿Saben qué es un programador Full-Stack? Es un empleador ahorrándose dinero.
Nadie le pediría a un albañil que le hiciera, además de las paredes, los planos, la instalación de luz, gas, el techo, pintara todo, son trabajos que asociamos a distintos roles y especializaciones. En sistemas, en cambio, todo van para el mismo personaje: el Full-Stack.
Como su nombre lo indica, tiene todo el stack, pero no todo UN stack, tiene TODOS los stacks de moda, sabe todos los frameworks, se adapta de uno a otro en un instante y el resultado es siempre: software de mierda. Y no, no es su culpa.
Nos han mentido, como developers, con una idea totalmente errada y que deriva en software de malísima calidad: que un developer con suficiente conocimiento es todo lo que hace falta en la empresa o área de IT.
No se trata de un prorgamador, eso es insuficiente, el programador tiene que conocer todas las modas del momento, encargarse del backend y del frontend, y ser bueno en todo.
Tiene que, además, encargarse del servidor, de los servicios asociados, de Docker hasta Kubernettes, tiene que ser un sysadmin programador, el santo grial de los de sistemas.
Tiene que programar "a la vieja escuela" para hacerse cargo de código legacy que lleva una década sin mantenimiento ni documentación, tiene que programar con los recursos más modernos desde React hasta Node, pero no sólo con la base, sino con cada pequeña cosa nueva que acaba de salir.
Tiene que ser un experto en base de datos, pero SQL ya no alcanza, además la tiene que tener super clara en no-SQL, y poder hacer búsquedas en JSON gigantes con la eficiencia de un servidor que jamás tendrá porque "es muy caro, se puede con menos".
Es más, su jefe le dirá que desde ahora en más serán "serverless" y tendrá que poder programar en el aire mientras logra convencerlo de que no existe tal cosa como "less" acompañado de "server".
Después tendrá que dejar de renderizar en el servidor porque la moda es que todo sea en el cliente, así que tendrá que ser un experto de backend, APIs y luego de frontend, Javascript del más avanzado posible y CSS, los diseñadores ya no hacen falta ¿No? Sólo se encargan de tirar un dibujo en Figma, el trabajo de maquetación lo tiene que hacer el mismo programador!
Todo esto, sin olvidar, de hacer testing y QA.
La única profesión que reniega de los especialistas
Justo nombré al diseñador porque es una profesión especializada, se le piden muchas cosas que van más allá de su alcance, pero dentro de todo sigue diseñando.
El programador ha aceptado este mote de "Full Stack" como si no tuviera consecuencias y, de pronto, es incapaz de producir código bueno. Hay al menos cinco o seis roles en una misma persona, no se puede con todo!
El "ahorro" no es tal, encima de ser permanentemente amenazado con que la AI lo va a reemplazar (dato: ni una AI puede manejar un contexto tan grande todavía jejeje), encima tiene que saber más que ésta si quiere ser aceptado en cualquier puesto.
Lo que la mayoría vemos es, en cambio, que muchos "full-stack" no sólo no son full, ni stack, ni nada, apenas tienen conocimiento de alguno de todos los roles que se le piden. Como en cualquier otra profesión, uno es mejor en una porción de la misma, no en toda.
No le pedimos a un traumatólogo que se encargue de nuestro sistema linfático, ni a un neurólogo del sistema digestivo, al no existir una responsabilidad mayor por entregar software malo a producción, a diferencia de la medicina, se sigue haciendo basura sin consecuencias y eso permite renegar de los especialistas.
Hasta que... haste que esa idea deja de funcionar.
Un ejemplo del fallo general de este enfoque es justamente la AI, no me refiero al "reemplazo" propuesto sino al tipo de experiencia y conocimiento que hace falta para poder desarrollar un LLM, por ejemplo.
De pronto matemáticos y estadísticos pasaron al centro de la escena, los más especializados de todos, ninguno "full-stack" de nada, todos tipos con un título y especialización tan acotada como difícil, sólo esos eran necesarios y un sólo programador que pudiera traducirlo a Pyhton.
La especialización de pronto se volvió un requerimiento y casi no quedan profesionales disponibles para cubrir esos roles.
El error del dev
Es tal vez uno de los mayores errores de nosotros como profesionales dejarnos manosear de esta manera. Todo rol de "Full Stack" es en realidad un pedido de tres empelados al precio de uno. Es una estafa.
Sí: la mayoría podemos hacer ese trabajo porque no nos quedamos con crear una API y dejarla así sin usar, aprendemos un poco de diseño, tiramos un bootstrap, le damos algún "cariño" a la UI y no mucho más,todo el resto debería hacerlo un especialista en frontend, otro rol, otra persona, uno que conozca todos los trucos y soluciones de la santísima trinidad HTML+JS+CSS sin tener que pensar en nada más.
Todo ese trabajo debería pasar a un tester dedicado a encontrar todos los bugs con una batería de tests super detallados que rara vez se escriben, todo basado en un requerimiento preciso y detallado de un PM imaginario que sabemos que no existe.
Y, claro, con un cliente que comprenda que para hacer una casa hacen falta no sólo buenas materias primas sino un arquitecto, un ingeniero civil, obreros especializados para cada cosa y luego que no se le caiga en la cabeza.
Si con una casa nos resulta tan fácil de comprender ¿Por qué no con nuestra profesión? Sencillamente porque se puede, porque aceptamos que el software puede salir a producción sin riesgos ya que "no se va a morir nadie", hasta que sos el que programa un Tomógrafo y te equivocás en una coma y matás de radiación a todos los pacientes de un hospital, ahí sí que lloran todos.
La casa que construimos tiene pérdidas eléctricas, goteras, huele a gas y el revoque se está cayendo, pero para el manager eso está perfecto para enviarle al cliente.
Cuando usás una webapp que falla por todos lados recordá: no es culpa del programador, es de su jefe que quiere pagar lo menos posible..
Hoy por hoy los sistemas se hacen así, sépanlo.
Otros posts que podrían llegar a gustarte...
Comentarios
-
Es muy de la idiosincracia argentina. De hecho, por eso es que afuera nos ven como "buena" mano de obra. Porque nos metemos en todo, pero terminamos siendo buenos para nada.
En europa o yanquilandia, la hacen distinto. Se especializan en áreas mucho mas acotadas, e interactúan.
Como decís, no se puede ser bueno en todo. El modelo de "cada maestrito a su librito" es el que mejor funciona, pero es caro en relación al programador todo terreno. Y muchas veces cuesta encontrar a los teamleaders que entiendan un poco de todo pero no se metan en las tareas del otro.
Incluso el ejemplo de la evolución del modelo de IA (donde la dividieron en especialidades y las hacen interactuar) demuestra eso. Un buen equipo de trabajo no tiene competencia.
-
Por fin se dijo como se tenía que decir! Hace mucho tiempo que había dejado de programar y me dediqué a otras cosas. Pero el tiempo hizo que vuelva a ver ofertas en el sector y la figura Full Stack era la que pedían en muchos lados y me costó mucho entenderla.
Me preguntaba, ¿Cómo alguien especialista en optimizar DBs, mejorar consultas, tiempos de respuesta y demás, tiene que saber cómo arreglar una imagen de wordpress que el JS no lo muestra o armar los bloques de elementor para una landing de venta?
Ponele que en un proyecto propio y con poca inversión lo hacés vos porque no te queda otra, pero que una empresa pida devs con ese perfil, me parece igual que lo que dice en el primer párrafo: "Full-Stack? Es un empleador ahorrándose dinero"
-
Los generalistas reales son cada vez menos. Por muchos motivos, pero fundamentalmente es porque cualquier área ahora es gigante. La superficie de aprendizaje en cada capa y especialización es inmensa. Hoy podes ser todo un experto especialista en un área, y no te va a alcanzar una vida para explotarla y explorarla al máximo, por lo que cada vez es más difícil ser generalista y experto en todo. O solo saben un poco (muchas veces MUY poco) de todo, pero sin llegar a profundizar en nada, o solo en un par de cosas.
Los que tenemos cierta edad y podíamos ver todo y en todos los niveles, fuimos privilegiados, porque hacer una formación de cero así hoy día es muy difícil, porque la superficie de conocimiento creció exponencialmente mientras aprendíamos, pero la seguíamos. Aparte que vivimos toda esa evolución, vimos el porqué de cada cosa, qué funcionó y qué no, y por qué. Entienden por qué ahora es como es. Aunque los conceptos son los mismos y nunca cambian, ahora es más difícil formar generalistas sin que se pierdan en los detalles y que a la vez alcancen aquel nivel de profundidad y amplitud simultáneo en todo que lograban algunos, los más nerdos.
Y entra la IA. La IA hace fácil meterse con cualquier tema sin conocerlo... y es una bendición y una maldición. Es un problema, porque nos evita hacer ese valioso proceso que nos llevaba al aprendizaje. Sin eso, no pueden saber si lo que hace va por buen camino o no. Si tiene algún sentido o es un disparate.
Igual como diría Spock, es fascinante. Tanto el pasado, este presente y como el futuro que vendrá. Y son optimista, porque aunque sea diferente (aunque en el fondo siempre son igual), nunca deja de fascinarme.
Para retomar el tema. La mayoría de los "full stack" no son más que una forma explotar o vender loa recursos lo que no son. Que siempre hay excepciones, pero son eso, excepciones. La mayoría, es puro humo. Leo "full stack" y me sonrío. :D
-
La primera mitad del post me describe de plano: un full-stack con resultados mediocres.
En mi caso mi compañero arrancó un sistema muy simple y me contrataron para ampliarlo. Eramos full-stack antes de saberlo. Con el tiempo el sistema creció a un punto donde ya sabíamos que no podíamos manejarlo. Encima mi compañero estaba pronto a jubilarse así que un día le expliqué al coordinador de área que necesitábamos incorporar al menos tres personas: DBA, programador frontend y diseñador, quedando yo como arquitecto/backend.
Y me dijo que no, que así estábamos bien, que donde faltara gente contratarían a un par para casos puntuales cosa que nunca ocurrió porque esos dos contratados quedaron quasi fijos por años. Al poco tiempo me desvinculé del proyecto, mi compañero se jubiló y el coordinador también se fue. Hoy el sistema agoniza en las sombras, funcionando por inercia y mantenido con respirador por algún full-stack que nadie conoce. -
Para el que no me conoce, trabajo en el Estado Nacional.
Para agregar algo más alegre, un día estaba jugando al PUBG con mi hija sentada al lado (nos turnábamos entre partidas). En un momento maté a uno con sniper, granadié a otro y rematé a un tercero con fusil. Una situación que muy, pero muy rara vez logro sortear con éxito. La cosa es que después de eso exclamé "¡Seeee, full-stack developer, baby!". Mi hija quedó con cara de "WTF!?" y tuve que explicarle porque pensó que había enloquecido definitivamente.
-
Como Diseñador Gráfico recibido que incursiono en el desarrollo web, con estudios pero sin recibirme, este post es lo más exacto que se puede escribir.
En estos momentos estoy tire y afloje con un jefe que piensa que la AI le va a hacer el sitio en dos días, porque eso leyo, y no hay manera de explicarle, que lo va a hacer, pero que hay que corregirlo porque no es perfecto y que esas correcciones muchas veces llevan bastante tiempo, porque se genera bastante código sucio que hay que interpretar.
Pero esta con que se hace todo solo con AI, cualquier duda que tiene la resuelve con chatGPT. :chock: -
Estamos parecidos en experiencia, recibido en diseño y arte pero empírico en todo lo demás. Había que hacerle donde estaba la guita :P
En estos días estoy montando un sitio-directorio para un colectivo de arte usando Wordpress. Tengo años de no tocar WP para desarrollo y ahí estoy pregunte que pregunte al ChatGPT cómo hacer tal y cual cosa. PERO en el proceso voy refrescando el conocimiento que adquirí cuando era activo en el tema y tengo además el criterio y experiencia para determinar si lo que me tira la IA es útil o no.
La gente que cree que con la IA se ahorran pagarle a profesionales me caen en el quinto forro, primero por ignorantes y segundo por pelotudos :D
-
La boludez del full stack en mi opinión caló mucho con el ego del programador promedio al que siempre le hicieron creer que podía con todo a la vez y ellos mismos se encargaron de perpetuar ese mito. Lo cual no solo siempre ha sido una falacia del tamaño de las pirámides egipcias sino que ahora que las vacas gordas del mercado IT en pandemia se pusieron a dieta encima se espera que lo hagan por dos pesos, todo mal.