1 puntos por GN⁺ 1 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 1 시간 전
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

    • Alrededor del 2000, en uno de mis primeros trabajos, me emparejaron con un ingeniero de software veterano que trabajaba desde inicios de los 70, y yo estaba emocionado por aprender
      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
    • Esta respuesta está demasiado pulida. En la práctica, la mayor parte del tiempo se va en programar, y eso incluye teclear, volver a teclear y volver a volver a teclear
      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ó
    • Hay gente para la que “escribir código” es 2~5%, pero para otros es 6~50%
      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
    • Me gusta la frase “la selección natural se encargará”. Sobran las predicciones sobre cómo la IA va a cambiar el software y más allá, pero ya me pregunto cuándo se acaba la habladera y empieza la demostración de resultados
      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
    • En principio estoy de acuerdo, pero la estimación de 2~5% me parece extremadamente baja. Si me dijeran que la mayoría de los desarrolladores dedica 25%, o hasta 40%, al código, me resultaría convincente, pero alguien que solo dedica 2% es muy raro
      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

    • Por suerte, para el ingeniero de software existe la ruta de arquitecto, y muchas veces recompensa la intuición profunda aunque cambie constantemente la forma de hacer los cálculos de detalle
      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
    • Si un senior puede hacer el trabajo de 6 colegas, ¿qué les pasa a esos colegas?
      La gente reemplazada por el tractor en la agricultura no conservó su empleo. ¿Qué es distinto ahora?
    • Decir que “el senior que antes dirigía un equipo de 6 ahora dirige un equipo de agentes” en realidad confirma el punto del autor
      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%
    • Tengo 43 años, y después de 15 años de experiencia era muy productivo como desarrollador Java/Swing y conocía las herramientas a fondo
      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
    • Hay que dejar de antropomorfizar esto. No existe ningún equipo de agentes; solo son herramientas y procesos corriendo en una computadora
      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

    • De hecho trabajo con personas que generan soluciones sin revisar de verdad el resultado. Hacen clic en la app o corren unas pocas pruebas, ven que el resultado se ve bien y lo despliegan
      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
    • Muchos adultos de mi entorno también están empezando a tomar Google AI overview como si fuera una fuente absoluta
    • Un post reciente relacionado en HN: https://news.ycombinator.com/item?id=47913650
  • 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

    • También anecdóticamente, veo que empresas de EE. UU. están contratando en masa en India y otros mercados en desarrollo
      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
    • En el terreno, sinceramente no siento que la IA esté afectando la demanda de contratación. No es que la IA esté escribiendo todo lo que el liderazgo imaginó y los ingenieros estén sentados sin hacer nada
      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
    • Creo que las empresas sobrecontrataron durante la pandemia, y por esa experiencia y por un mercado incierto no quieren repetir el mismo error
  • 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

    • La lógica es “siempre pasó así en el pasado”
      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”
    • Igual que no hubo esa reconversión para los trabajadores industriales calificados cuyos empleos se tercerizaron hacia China, tampoco la va a haber ahora
      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
    • Esos trabajos no existen, y aunque existieran, el costo lo pagarías tú mismo. La empresa jamás lo pagará, salvo en casos rarísimos donde se vea forzada por competencia
    • Lo mismo aplica a las industrias que el software destruyó
    • No hay ninguna garantía de que aparezcan otros grandes trabajos. Eso parece algo que la gente simplemente asume
      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

    • También vale la pena señalar que, dentro de límites razonables, levantar cosas pesadas vuelve más fuerte a una persona, mientras que la hipótesis sobre el uso actual de IA suele ser más bien la contraria
    • Un desarrollador de software se parece más a un arquitecto que a un simple programador. No pones al arquitecto a cargar cosas pesadas; le haces diseñar cómo se van a usar esas cosas pesadas
  • 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

    • La gente siempre dice eso, pero me parece un argumento errado. Los LLM no son deterministas, pero eso no importa en absoluto
      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?
    • Acepto que un LLM no encaja con algunas definiciones de abstracción. Pero eso no significa que quienes llaman a los LLM otra capa de abstracción estén entendiendo mal todo. Están usando esa palabra en un sentido más abstracto
      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
    • ¿Las otras capas de verdad son deterministas? ¿Sabes con certeza si un objeto fue recolectado por el garbage collector? ¿Sabes con certeza cuántos ciclos toma esta instrucción?
    • Los LLM no necesitan alcanzar confiabilidad perfecta para reemplazar muchas tareas. Solo tienen que llegar al equilibrio entre confiabilidad y costo adecuado para una tarea específica. Eso depende de la tarea
    • Entiendo lo que quieres decir, pero tampoco creo que la palabra determinismo sea exacta. Los LLM son fundamentalmente deterministas. Producen texto como función pura del texto de entrada y de los parámetros de la red
      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

    • Estamos viviendo algo parecido a lo que les pasó a los ingenieros civiles al pasar de la regla de cálculo a la calculadora, o a los ingenieros eléctricos al pasar de rutear circuitos a mano a usar herramientas CAD
      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 2020 hay dos empresas compitiendo y cada una tiene 100 programadores. Todos sabemos cómo funcionan esas dos organizaciones. Siempre van rezagadas, y cada vez que se agrega una funcionalidad aparecen más posibles funcionalidades futuras; todos hemos vivido dentro de eso, y en general sigue siendo así
      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
    • La preocupación es si ese trabajo de crear ese software va a estar lo suficientemente bien pagado como para seguirle el paso al costo de vida, que se dispara
      Históricamente, los empleos creados por la automatización suelen tener salarios más bajos y menos autonomía
    • Aunque hagamos más software, si la mayor parte es solo duplicación funcional de otro software, no resolvemos nada
      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
    • Si cambias software engineer por secretary y creating software por typing correspondence, la frase sigue funcionando
      En 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

    • ¿Por qué está mal la analogía LLM-compilador? ¿Es solo porque la salida de un LLM no es determinista?