La ingeniería de software puede que ya no sea una carrera para toda la vida
(seangoedecke.com)- Si se usa IA, está claro que se reduce cuánto se aprende al realizar esa tarea, pero eso no alcanza para justificar rechazar la IA
- Incluso si la IA debilita a largo plazo las capacidades del ingeniero, si la ventaja de productividad a corto plazo es suficiente, usarla se vuelve inevitable
- Así como un trabajador de la construcción levanta objetos pesados pese a la carga física, no queda más remedio que seguir las exigencias inherentes del oficio
- Se puede insistir en escribir código a mano, pero así como no hay trabajo para un carpintero que rechaza las herramientas eléctricas, es muy probable que un ingeniero que rechace la IA quede en desventaja competitiva frente a otro que sí la adopte
- Los ingenieros de software también podrían convertirse en la primera generación con una vida profesional limitada, como los atletas profesionales, por lo que hace falta planear en función de esa posibilidad
Uso de IA y duración de la carrera de los ingenieros de software
- No hay evidencia sólida de que la IA reduzca la inteligencia general de las personas, pero sí está claro que, cuando una tarea se resuelve con IA, se aprende menos sobre cómo realizar esa tarea en particular
- La lógica de quienes creen que algunos ingenieros de software deberían evitar usar IA en el trabajo se parece a esto
- Si se usa IA, se aprende menos durante el proceso de trabajo
- Con el tiempo, la capacidad técnica se deteriora y uno se vuelve un ingeniero menos eficaz
- Por lo tanto, no se debería usar IA en el trabajo
- Sin embargo, la segunda premisa no es segura
- Al pasar de ensamblador a C, los programadores se volvieron menos eficaces en algunos aspectos y más eficaces en otros
- El cambio de escribir código a mano a trabajar con IA puede ser una transformación aún mayor, así que es difícil asegurar cuál será el resultado
- Incluso si usar IA vuelve a los ingenieros menos eficaces a largo plazo, eso por sí solo no lleva a la conclusión de que no deba usarse
- Hasta alrededor de 2024, la mejor forma de aprender ingeniería de software era hacer ingeniería de software directamente
- Era posible convertir un hobby de programación en una carrera muy rentable, y quienes disfrutaban el trabajo tendían a mejorar con el tiempo
- Eso se parecía más a una casualidad afortunada que a una esencia inmutable de la ingeniería de software
Choque entre productividad a corto plazo y capacidad a largo plazo
- Aunque el uso de IA empeore a largo plazo la capacidad para el trabajo o incluso la capacidad general de razonamiento, si el beneficio a corto plazo es suficiente, puede que los ingenieros tengan que usarla
- Un trabajador de la construcción debe levantar objetos pesados para trabajar de forma eficaz, pero ese tipo de tarea puede desgastar la espalda y las articulaciones a largo plazo y volverlo un trabajador menos eficaz con el tiempo
- Los trabajadores de la construcción no dicen: “un buen obrero es el que no levanta cosas pesadas”, sino “ni modo, este es el trabajo”
- En la construcción existen técnicas como grúas, carretillas y montacargas para evitar cargar cosas pesadas
- Para los ingenieros de software también podría hacer falta desarrollar técnicas para involucrarse mentalmente a fondo, aunque puede que todavía no se haya encontrado un enfoque equivalente
- Si la IA realmente hace a las personas menos inteligentes, se puede seguir escribiendo código a mano
- Pero, por la misma razón por la que casi no hay trabajo para un carpintero que rechaza las herramientas eléctricas, cada vez será más difícil ganar un salario escribiendo código solo a mano
- Si los modelos son lo bastante buenos, uno quedará en desventaja frente a ingenieros dispuestos a cambiar capacidad cognitiva de largo plazo por una carrera de altos ingresos en el corto plazo
- Los sindicatos podrían, en teoría, ralentizar este proceso
- En otras industrias han logrado hacer que los empleadores frenen la carrera hacia el abismo
- Pero el trabajo tecnológico es bien remunerado y puede hacerse desde cualquier parte del mundo, lo que facilita la sustitución de mano de obra, así que hay motivos para ser pesimista respecto a los sindicatos tecnológicos
- La duración de la carrera de un atleta profesional suele ser de alrededor de un máximo de 15 años, con la posibilidad de ganar mucho dinero hasta mediados de los 30, pero después el cuerpo ya no responde
- Una figura trágica muy común hoy es la del atleta profesional que cree que “el espectáculo va a durar para siempre” y no se prepara para el retiro
- Los ingenieros de software podrían ser la primera generación en quedar en esa misma situación y, si es así, lo sensato es planear en consecuencia
1 comentarios
Opiniones de Hacker News
Tengo la misma conversación varias veces por semana: alguien dice “la IA va a volver irrelevantes a los desarrolladores”, y cuando pregunto por qué, responde “porque los LLM pueden escribir código”
Pero en realidad, dentro de mi trabajo con el que me gano la vida, escribir código antes era 2~5%, y ahora es todavía menos; el resto consiste en entender las cosas y aplicar la capacidad de estructurar soluciones
Los desarrolladores que todavía creen que su trabajo es teclear código quizá no tengan empleo en el futuro, y a los empresarios que creen que los LLM reemplazan a los desarrolladores y quieren intentarlo sin ellos, al final los va a acomodar la selección natural
Como al cuarto día me dijo “te voy a enseñar lo que más me ayudó en mi carrera”, y luego soltó: “siempre numera las tarjetas perforadas, así si se te caen puedes volver a ordenarlas fácilmente”
Como eso fue mucho después de la época en que se usaban tarjetas perforadas, me decepcioné, pero él agregó: “dije lo que me ayudó a mí, no lo que te ayudará a ti. El software siempre cambia”. Últimamente pienso mucho en eso
También cuenta el tiempo de estrellarte contra la pared intentando que corra código reescrito para ajustarse a APIs mal documentadas
La forma en que el comentario original lo plantea hace que la ingeniería de software parezca una actividad pura y noble, como las matemáticas, pero en realidad se parece más a un trabajador de perforación que entra con un plan y termina golpeando metal con un mazo enorme para acomodar una sarta de perforación bajo un cronograma apretado porque la realidad no encajó
Eso de “entender las cosas y estructurar soluciones” también es un área a la que apunta la IA
Puede que solo estés en un entorno donde por suerte se reconoce tu aporte, o en una industria/dominio que no está tan presente en los datos de entrenamiento, o en un espacio de problemas demasiado complejo para que la IA lo maneje
La gente que procesa tickets de Jira y hace apps web CRUD probablemente vea desaparecer su forma de ganarse la vida con frecuencia, o le exijan producir más por el mismo sueldo o menos, y tener que alcanzar el ritmo con IA
Si funciona, va a funcionar, el método se va a difundir y rápidamente todos van a poder acceder a él, y el avance va a seguir
Si no funciona, eso va a quedar claro porque no habrá resultados reales; no basta con decir “yo lo estoy viendo”. Tiene que ser una realidad visible y usable para todos, inevitable e imposible de negar
Tal vez un staff de ultra alto nivel, tipo asesor del CTO en una gran empresa, pero eso ya es una posición muy poco común
La reacción polarizada frente a la IA parece depender del lente con que la mires. Los roles junior están desapareciendo rápido, pero en los roles senior la experiencia y el criterio son más importantes que nunca
Así que la ingeniería de software podría dejar de ser una carrera para toda la vida para mucha gente. Algo parecido a cómo los deportes de élite no son una profesión realista para la mayoría, aunque algunas personas sí seguirán viviendo de esto, y así debe ser
Mi experiencia ha sido justo la opuesta. Los ingenieros muy capacitados que de verdad intentan usar las herramientas más nuevas, incluyendo gente de 40 y 50 años, están mucho mejor que antes
Una de las razones por las que el programador tradicional se debilita en la práctica con el tiempo es que, como en el ajedrez, disminuyen la concentración y el cálculo profundo. Un ajedrecista mayor sabe muchísimo más de ajedrez que un genio de 19 años, pero no puede calcular al mismo ritmo por tanto tiempo, así que al final la experiencia pierde frente a la pura capacidad de cálculo
Claude Code y Codex alivian esa carga de cálculo, y todos los instintos acumulados por experiencia y esa “intuición” de 2 segundos siguen intactos
Ya no es solo que la competencia se haya vuelto pareja; ahora al revés, se volvió injusta. El senior que antes dirigía un equipo de 6 personas ahora dirige un equipo de agentes, y revisa el código como antes. A veces incluso es más fácil redirigir a los agentes que a los juniors de alrededor
Pero la pregunta urgente, todavía sin respuesta, es si puede surgir un buen arquitecto sin haber pasado por las trincheras del trabajo práctico
Los LLM también hacen algo parecido a la intuición, así que hay que distinguir. Un LLM se parece más al inconsciente colectivo de internet, y claramente no es lo mismo que el gusto que nace de experiencias buenas y malas
Al final, la intuición que emerge es “buen gusto”, y eso está muy cerca del trabajo central de los roles senior en cualquier campo técnico
La gente reemplazada por el tractor en la agricultura no conservó su empleo. ¿Qué es distinto ahora?
El equipo de 6 personas ya no es necesario, y lógicamente se elimina de la empresa
Así que la ingeniería de software seguirá siendo una profesión para algunos, pero el personal podría reducirse en 85%
Pero esa empresa ya no existe, y aprender a trabajar de forma eficiente con las herramientas nuevas que uso ahora me toma mucho más tiempo. Es porque no pasé 10 años aprendiendo los detalles de este nuevo entorno
Así que la IA me ahorra muchísimo tiempo para averiguar la sintaxis correcta y recordar los detalles del framework de pruebas unitarias. Supongo que si me quedo 1~3 años, voy a ser mucho más rápido y voy a conocer mejor las herramientas
Si ese ingeniero senior desaparece, no queda nada. Es mejor tener un equipo de 6 personas
Me da pena, pero a largo plazo creo que en general es cierto eso de que “los usuarios de IA, con el tiempo, se atrofian técnicamente y se vuelven ingenieros menos efectivos”
Viéndolo profesionalmente, la gente suele dividirse en dos grupos: quienes usan la IA para reforzar el razonamiento y quienes la usan para reemplazar el razonamiento. Del primer grupo no me preocupo mucho; del segundo sí
Mi mamá, que es profesora en una preparatoria pública de EE. UU., se queja de que muchos estudiantes toman “Google AI overview” como fuente de verdad absoluta
Tal vez sea un fenómeno nuevo parecido al viejo “no puedes citar Wikipedia”, pero siente que desde la pandemia la capacidad de pensamiento crítico de los chicos que llegan a clase ha bajado de forma visible
Ya hay una o dos generaciones que crecieron en un entorno donde influencers y anónimos de internet les dicen qué les debe gustar, qué deben odiar y qué deben creer. Esta gente ya había externalizado su razonamiento antes de los LLM, y no parece preparada para interactuar productivamente con sistemas diseñados para hacerles sentir que obtienen lo que quieren, incluso cuando la calidad es dudosa
Se notan las huellas de Claude por todo el PR, y es bastante seguro asumir que casi no lo tocaron. Ellos son el grupo A
En cambio, también tengo colegas que llevan el problema hasta el final, construyen un harness para probar los cambios, validan el resultado, pasan por varias soluciones, sintetizan una versión ideal, hacen benchmarks, refinan, prueban a fondo y aportan un procedimiento de verificación razonable en el PR. Ellos son el grupo B
Son dos formas completamente distintas de usar la IA. A parece que por ahora más o menos pasa, pero B es una nueva versión de lo posible dentro del tiempo disponible, y define un nuevo estándar de ingeniería de software que casi nunca veía fuera de entornos excepcionalmente profesionales
Creo que el grupo A va a ser expulsado de la industria bastante rápido. Los LLM te permiten trabajar de forma sorprendentemente efectiva si tienes voluntad de aprender. Ese nivel de rigor podría volverse la norma, y quizá sea la única forma en que el ser humano siga siendo un componente útil dentro del loop
Anecdóticamente, siento que este año por fin hubo un cambio real en el mercado de contratación de software en EE. UU. Parece que cada vez más empresas están adoptando una estrategia de esperar y ver, para no sobreinvertir en capital humano durante los próximos años
Las señales de contratación, que ya eran débiles, ahora se sienten completamente desaparecidas
Pones una vacante y te llegan más de 500 solicitudes y cartas de presentación escritas con LLM, y todas se ven y se sienten parecidas
La comparación con atletas profesionales en el artículo me parece un poco rara. Cuando ganas dinero con el cuerpo, los problemas físicos del envejecimiento son claros, pero si lo comparas con trabajo de conocimiento como derecho o medicina, hay muchísimos profesionales muy hábiles y agudos en sus 40 y 50
Conozco casos de personas en esos países que nunca habían recibido ni un mensaje de reclutadores de big tech y ahora reciben mensajes todos los días
También vi que lo atribuyen a cierta disposición estadounidense que expiró el año pasado, pero no sé lo suficiente como para opinar sobre la causa
Más bien se siente como si la economía estuviera al borde del colapso, o al menos en una montaña rusa. Los incentivos fiscales para contratar son débiles, la era de tasas de interés cero se terminó hace tiempo, y los reclutadores están saturados de postulaciones ruidosas
Aun así, a los jefes les encanta decir que es por la IA. Suena como si lo tuvieran bajo control
Sigo leyendo la explicación de que, por culpa de la IA, no pasa nada porque “la gente puede reconvertirse a otros trabajos”, pero nunca veo cuáles serían esos trabajos ni quién pagaría esa reconversión
Yo no tengo ni el dinero ni el tiempo para volver a la universidad y empezar otra carrera desde cero
Y sí, es cierto, pero solo hasta el momento en que deja de serlo
Un ejemplo clásico de cuánto puede fallar ese razonamiento es la teoría malthusiana. La teoría de que los alimentos crecen linealmente y la población exponencialmente, por lo que la población colapsaría, fue cierta durante toda la historia previa a que Malthus hiciera esa observación
A nivel mecánico, la lógica de “siempre encontramos otros trabajos” pasa por alto que eso era posible porque los humanos siempre tenían una ventaja intelectual sobre la automatización
Incluso un insumo humano simple en una línea de ensamblaje dependía de una capacidad humana para hacer ajustes finos y casi invisibles que los robots no podían hacer
Pero si algo cercano a AGI realmente funciona, entonces el trabajo humano ya no tendría ninguna ventaja frente a la automatización, así que no está claro por qué seguiría aplicando la vieja lógica de que “la automatización creó más empleos humanos”
El gobierno va a pagar el mínimo de bienestar social necesario para mantener la situación manejable, y después culturalmente los van a demonizar como si fueran luditas
Claro, por un tiempo seguirán existiendo empleos que requieren trabajo físico humano, pero en la práctica muchos de esos trabajos se hacen en otras partes del mundo donde el salario es más bajo
Los trabajos no exportables, como plomero o mesera, tienen demanda limitada. No puedes empujar al 50% de la fuerza laboral de oficina hacia esos empleos y esperar que encuentren trabajo fácilmente o que cobren salarios decentes. La demanda no existe
Al mismo tiempo, mientras desaparecen los trabajos de cuello blanco, también se están automatizando gradualmente los empleos físicos “de baja calificación”. Las cajas de autocobro reducen empleos en retail, los robotaxis y entregas con drones reducirán trabajos de reparto y logística, y los robots de almacén reducirán empleos en bodegas
Parece haber una suposición implícita de que la IA va a crear muchos trabajos bien pagados que además requerirán empleadores humanos, y que no podrán tercerizarse más barato al extranjero. ¿Qué trabajo bien pagado sería inmune tanto a la IA como a la subcontratación? ¿Todos vamos a ser personal de limpieza de alto salario? No tiene sentido
El consejo actual de reconvertirse a construcción o plomería parece asumir que la demanda de ese trabajo es infinita, pero no lo es. Incluso si la demanda de obreros de construcción se disparara, harían falta años para contar con el equipo, la cadena de suministro y la infraestructura necesarios para incorporar a millones de personas al sector
El escenario más probable es que la gente pierda su empleo y quede atrapada en una competencia descendente interminable por la cantidad limitada de trabajos que queden en la economía local. Lo demás se terceriza o lo resuelven robots e IA
El mejor consejo es empezar a prepararse para esa realidad. No asumas que el gobierno te va a proteger o que puede hacerlo. Cuando la riqueza se concentra, la corrupción es casi inevitable, y los políticos también tienen familia a la que cuidar
Hay que tomárselo en serio. Incluso si me equivoco, es mejor prepararse para el peor escenario que asumir que todo va a salir bien y que podrás reconvertirte a un nuevo trabajo bien pagado
Mis padres trabajaron ambos en construcción. Existe la conciencia de que no puedes levantar cosas pesadas para siempre
Eventualmente dejas de cargar cosas y pasas a ser capataz o supervisor. Si te incomoda aprender a hacer que otras personas hagan el trabajo que antes hacías tú mismo, tu cuerpo termina totalmente destruido, y el resultado es terrible
Eso también es una realidad concreta, pero además fue una metáfora importante para interiorizar la delegación en mi carrera. No es del todo ajeno al uso de IA, aunque tampoco creo que encaje de manera perfectamente limpia
Ojalá la gente que parece inteligente dejara de usar analogías de abstracción como las del artículo. La palabra clave es determinismo
Todas las capas de abstracción, desde herramientas eléctricas hasta C, añadieron capas deterministas en las que podías confiar, que daban siempre el mismo resultado y te permitían trabajar con más efectividad
Los LLM describen la programación en lenguaje natural y el resultado, siendo generosos, es variable. Por eso hacen falta agentes y por eso se empuja el resultado a fuerza bruta
Creo que el verdadero moat sigue siendo ser alguien que de verdad sabe programar
No ejecutas directamente la salida del LLM; usas el LLM para producir algo una vez, y luego ese resultado se ejecuta de forma determinista
La especificación se convierte una vez en código, y si editas la especificación el código puede actualizarse, pero no estás regenerando el programa completo cada vez. Entonces, ¿por qué importaría el determinismo?
Por ejemplo, ¿cómo construía software Mark Zuckerberg hace 5 años?
Igual que yo, podía abrir un editor, pero por su situación tenía disponible otra interfaz: recursos humanos. En vez del editor, interactuaba con esas personas, y esas personas construían el software
Esa capa entre él y el sistema construido, sea determinista o no, es una abstracción
Hoy tenemos una autoridad más amplia para delegar más trabajo que hace unos años
Dependiendo de tu postura sobre el libre albedrío, incluso podrías sostener de manera efectiva que los humanos también son deterministas
El concepto al que realmente se está apuntando aquí es que tanto los LLM como los humanos son funciones opacas. No puedes reducir su comportamiento a una secuencia de pasos lógicos que quepan en tu cabeza, ni existen invariantes que permitan descomponer limpiamente su complejidad en unos pocos estados interpretables; su espacio de entrada y salida no está estructurado, es ambiguo, está especificado de forma incompleta y en la práctica es infinito
Por eso es casi imposible razonar sobre ellos o sintetizarlos con las estrategias y análisis que aplicamos a programas tradicionales
Puedes introducir de manera opcional una fuente de entropía para agregar no determinismo, pero no es indispensable. Si todos los proveedores de LLM fijaran la semilla del generador seudorrandómico, casi nadie lo notaría
No creo que haya muchos flujos de trabajo que dependan de meter exactamente el mismo prompt varias veces y de que la salida tenga cierta distribución estadística. De hecho, hasta podrías recibir respuestas cacheadas aunque no quieras
Si por ingeniería de software entiendes sentarte en un editor de texto a ingresar código carácter por carácter, entonces sí, cada vez será más difícil encontrar a alguien dispuesto a pagar por eso
Pero si te refieres a crear software, entonces estamos creando más software que nunca, y la definición misma de qué es software es más diversa que nunca. Creo que de ahí pueden desprenderse varias carreras distintas
Lo interesante es que la ingeniería de software también tiene que evolucionar. Los procesos y herramientas también deben evolucionar, como lo han hecho durante décadas
Cuando terminé la universidad en 2004, nos enseñaron sobre la época de la “crisis del software”, los procesos en cascada y cómo recién comenzaban las nuevas “metodologías iterativas”
También estudiamos la transición del código espagueti a la programación estructurada de Pascal/C, y luego a la programación orientada a objetos
Las metodologías de ingeniería también evolucionaron. Estuvo el infame UML, técnicas formales como el lenguaje Z para verificación formal, o medidas de complejidad de software como ABC y complejidad ciclomática
Hoy, con la computadora escribiendo la mayor parte del código, el valor de los lenguajes actuales y de los procesos actuales de desarrollo de software está disminuyendo. Los lenguajes de programación fueron hechos para humanos. Si no, habríamos seguido escribiendo en ensamblador
Ahora tenemos que cambiar las abstracciones que usamos para comunicar intención a la computadora y para verificar que las instrucciones finales hagan lo que queremos
Tengo muchísima curiosidad por esas nuevas abstracciones. Si los pequeños detalles de la codificación se automatizan por completo, quizá veamos más rigor de ingeniería real dentro de la profesión de ingeniería de software
Supongamos que en 2026 ambas concluyen que la IA hace a los desarrolladores 10 veces más rápidos. No digo que sea real, solo es un número redondo
La empresa 1 despide a 90 programadores y con 10 hace lo mismo de antes
La empresa 2 mantiene a todos sus programadores y hace 10 veces más cosas que antes, y quizá incluso contrata más
¿Quién gana en el mercado?
La respuesta, como siempre, es “depende”, pero creo que el espacio en que la empresa 1 puede ganar es mucho más estrecho que el de la empresa 2. Requiere una combinación muy precisa de condiciones de mercado; no es imposible, pero es arriesgado apostar a que uno está en la excepción
Mientras ocurre la aceleración, en el periodo en que la nueva realidad todavía no se asienta, la respuesta de la empresa 1 puede verse superficialmente atractiva para el área contable
Pero si en cualquier mercado una sola empresa se sale del molde y elige la solución de la empresa 2, todo el resto de la industria va a tener que seguirla para competir de verdad
A mediano y largo plazo, también es poco probable que disminuya la creación de valor que un programador individual puede producir y capturar en salario
Históricamente, los empleos creados por la automatización suelen tener salarios más bajos y menos autonomía
Dicho de otra forma, todas las empresas reinventan la rueda una y otra vez. No tiene sentido multiplicar por 10 el desarrollo de software cuyo único rasgo nuevo es que fue escrito con un framework brillante de moda
En mi opinión deberíamos empezar a eliminar la mayor parte del software. Volver a lo básico, ver qué se necesita, hacerlo mejor y terminarlo. Alguna vez hay que acabar un software
software engineerporsecretaryycreating softwareportyping correspondence, la frase sigue funcionandoEn un mundo donde la IA resolvió la programación y el diseño de software, el valor se va a acumular en personas con experiencia en otros dominios. Ellas ahora tienen el poder de 1000 desarrolladores profesionales, y el valor no se va a acumular en personas con habilidades redundantes frente a herramientas de IA mejores, más rápidas y más baratas
A menos que me esté perdiendo algo, aquí hay un problema lógico evidente
Si para obtener productividad con LLM tienes que aceptar la atrofia de capacidades, entonces los desarrolladores con vida útil limitada solo seríamos nosotros. La siguiente generación no habrá construido esas capacidades de manera manual, así que tampoco tendrá un conjunto de habilidades que pueda atrofiarse
Y propongo prohibir públicamente la analogía de que “la generación de código por parte de un LLM es como la generación de lenguaje máquina por parte de un compilador”. Ya me cansé de que sigamos discutiendo una y otra vez la misma idea