IA: incompetencia acelerada
(slater.dev)- En ingeniería de software, una dependencia excesiva de los LLM acelera rápidamente la incompetencia
- Los LLM tienen límites que les impiden sustituir el pensamiento crítico y la capacidad de resolver problemas
- El uso de LLM conlleva varios riesgos, como salidas incorrectas, errores de entrada, deterioro de la calidad del código, disminución de la capacidad de los desarrolladores y pérdida del disfrute de crear
- Los LLM no pueden aportar capacidades esenciales de desarrollo como la teoría del programa y la entropía del programa
- A largo plazo, la capacidad técnica y la profundidad de pensamiento son más importantes que nunca
Introducción
Desde la aparición de la IA y los LLM, que captaron la atención del público a finales de 2022, ha habido muchos debates
Como ingeniero de software con experiencia, expone dos problemas principales que ha observado en los LLM
La perspectiva de “LLM es mi amigo”
Los ingenieros que consideran al LLM como la mejor herramienta terminan poniendo la velocidad como valor supremo
Con un LLM se puede generar mucho código rápidamente, pero eso implica riesgos a largo plazo
Riesgos de usar LLM
- Riesgo de salidas incorrectas: el LLM genera código claramente incorrecto (que no compila) y código con errores sutiles (como bugs lógicos)
- Cuando personal sin capacidad de evaluación pide código fuente, es muy probable que reciba respuestas inadecuadas
- Riesgo de entradas incorrectas: el LLM no cuestiona supuestos erróneos ni prompts con poco contexto
- No distingue una pregunta correcta y tampoco puede empatizar con el problema XY (fracaso al identificar la causa raíz)
- Disminución de la velocidad futura de desarrollo: la adopción de LLM aumenta rápidamente la deuda técnica y transforma internamente el código en una base de código confusa y difícil de mantener
- Riesgo de infantilización del usuario: al desaparecer las oportunidades de resolver problemas y desarrollar el pensamiento, se acelera la atrofia de las capacidades del talento de desarrollo
- Los desarrolladores senior no obtienen experiencias más profundas de resolución de problemas, y los junior ni siquiera llegan a formar sus habilidades
- Pérdida de la alegría de crear: escribir código con LLM arrebata el estado de flow y el disfrute de crear, y leer y modificar código hecho por IA suele ser una experiencia muy dolorosa
La preocupación de “¿Perderé mi trabajo por la IA?”
Es muy poco probable
Existen dos capacidades de desarrollo que los LLM no pueden reemplazar: teoría del programa y entropía del programa
Teoría del programa
- Como sostuvo Peter Naur, “programar es la actividad de construir una teoría del diseño”
- El código fuente no es el resultado real; la comprensión colectiva (la teoría) es más importante
- Si se les da el mismo problema a dos equipos con la misma capacidad y solo se entrega el código, el equipo que lo construyó directamente puede añadir funcionalidades con mucha más eficacia
- En una base de código desconocida la productividad es baja, pero aumenta gradualmente a medida que se comprende la teoría interna del diseño
LLM y teoría del programa
- Los LLM solo tienen memoria en contexto, por lo que no pueden interiorizar una teoría real del programa ni un diseño profundo
- En la práctica, la verdadera esencia de programar (diseño y construcción de teoría) solo la adquieren los seres humanos
Entropía del programa
- Fred Brooks llamó a la complejidad (entropía) la dificultad fundamental de la programación
- El mantenimiento del software aumenta la complejidad, e incluso la mejor ejecución empuja al sistema hacia un envejecimiento irreversible
LLM y entropía del programa
- Los LLM solo realizan predicción de tokens a nivel de texto y no pueden llevar a cabo pensamiento semántico al nivel de ideas, planos de diseño o requisitos
- Cuanto más largas son las conversaciones o mayores los bloques de código, más repiten cambios innecesarios o extraños, aumentando todavía más la complejidad
- Reducir la complejidad o resistirse a ella es una tarea que solo los humanos pueden realizar
Conclusión
A partir de las ideas de dos pioneros, se reafirma la naturaleza del diseño de software y de la complejidad
Si se espera que la IA mejore una carrera en desarrollo, hay que tener cuidado: podría en realidad acelerar la incompetencia
Como desarrollador con amplia experiencia y habilidades sólidas, hay que reconocer que los LLM no pueden reemplazar a los ingenieros humanos
El atractivo empresarial de adoptar IA está en reducir costos, pero en la práctica introduce nuevos riesgos y, si se usa en exceso, acumula costos adicionales y riesgos organizacionales a largo plazo
La importancia de la capacidad técnica y del pensamiento profundo no cambiará a largo plazo, y la IA debe usarse como herramienta mientras se sigue invirtiendo en las capacidades esenciales que ya eran importantes en 2019
Próximo artículo
En una publicación posterior se abordarán soluciones concretas para cada uno de estos riesgos
Referencias
- Leading Question: https://en.wikipedia.org/wiki/Leading_question
- The XY Problem: https://en.wikipedia.org/wiki/XY_problem
- ThoughtWorks Technology Radar Volume 32: https://thoughtworks.com/content/dam/…
- Coding as Craft: Going Back to the Old Gym: https://cekrem.github.io/posts/…
- Thoughts on Thinking: https://dcurt.is/thinking
- The Hidden Cost of AI Coding: https://terriblesoftware.org/2025/04/23/the-hidden-cost-of-ai-coding/
- "I wonder if I'll become redundant": https://reddit.com/r/ExperiencedDevs/…
- Programming as Theory Building: https://pablo.rauzy.name/dev/naur1985programming.pdf
- Grug on Complexity: https://grugbrain.dev/#grug-on-complexity
- Gartner Hype Cycle: https://en.wikipedia.org/wiki/Gartner_hype_cycle
1 comentarios
Opinión de Hacker News
De los ingenieros de software siempre se espera que construyan software predecible y que pase las pruebas, y además el tooling está mucho más desarrollado
En cambio, para un ingeniero de machine learning es parte normal del día a día trabajar con modelos probabilísticos, y las pruebas suelen estar más centradas en métricas que en salidas específicas
Por eso están más acostumbrados a que la IA no siempre sea confiable
También abordan los asistentes de código con la idea de que, aunque solo den la respuesta correcta el 80% del tiempo, el 20% restante lo pueden detectar ellos mismos
Cuando trabajaba en Amazon, las soluciones basadas en ML eran muy útiles para problemas donde no existía un enfoque clásico
Pero en una startup, sin entender filtrado o mapeo básicos, insistían solo en un enfoque basado en aprendizaje y seguían obteniendo resultados absurdos al estimar la actitud de una aeronave inmóvil
Esta brecha entre ML y la ingeniería de software es clara, y ojalá hubiera una mejor forma de hacerla visible en el proceso de contratación
En empresas que venden productos donde la precisión y la corrección son clave, he visto equipos de ML decir que 80~90% es suficiente, para frustración de los arquitectos
Como en las discusiones de la pandemia sobre una tasa de mortalidad del 1%, vale la pena recordar que incluso porcentajes pequeños pueden tener un gran impacto
Este texto se centra en una preocupación meta sobre la IA y la ingeniería de software: la gestión de la entropía (Entropy) del programa
Gestionar la entropía es una parte enorme de construir productos de software, y aunque algún día la IA podría hacer esta parte fácilmente, por ahora muchas veces la empeora aún más
Veo a MLE desde una perspectiva más amplia de SWE, y hace falta entender todo: construir pipelines robustos, integrar modelos, despliegue, etc.
Pero a la mayoría de los especialistas puros en MLE les falta la perspectiva de SWE, y muchas veces entienden ML sin tener intuición computacional
Para ser realmente full-stack, es indispensable entender sistemas de bajo nivel, arquitectura, despliegue y también MLE
Pero el mercado laboral casi siempre busca SWE o doctores en MLE; ojalá alguien me ofreciera una compensación por saber todo esto
Por ejemplo, al rediseñar race conditions, predecir el p99 de llamadas a BD, o hacer pruebas A/B
Como desarrollador senior con 30 años de experiencia, tener que leer código generado por IA significa que el desarrollo está pasando a un flujo centrado en code review
Eso también ayuda al desarrollador individual a aprender la responsabilidad a nivel de equipo y a ganar experiencia leyendo código
Además, para usar bien un LLM es indispensable entender la estructura jerárquica del problema
Diseñar en detalle por secciones y luego implementar ayuda naturalmente a definir interfaces y límites
El LLM es un catalizador que acelera el crecimiento de un junior hacia senior y le permite experimentar el aprendizaje de desarrolladores con experiencia
La IA no va a reemplazar a los desarrolladores; al final se va a integrar como una herramienta
El código generado por LLM puede ser monótono, pero aun así es una oportunidad de aprendizaje
He aprendido muchos modismos nuevos y llamadas de librerías a partir de código generado por LLM
Mientras más senior eres, mejores prompts puedes dar, así que el LLM actúa como un catalizador aún más fuerte
Los recortes siguen tanto en big tech como en mid-tech y small-tech
La postura es que la IA está más cerca de un cambio realista como ese que de la singularidad
Se comparte la realidad de que formas de dar clases, tareas y cursos que antes parecían obvias están cambiando rápidamente en todo el mundo con la llegada de los LLM
Sin SpaceX, muchas cosas realmente no habrían sido posibles
Al final, el resultado fue que los bancos salieron a vender productos financieros basados en Bitcoin
La impresión 3D no se considera un reemplazo de la manufactura existente y se ha quedado en usos de prototipo/mockup/PoC
El código que aceptas sin entenderlo termina cobrando un precio alto después, cuando toca mantenerlo: deuda técnica
Es como la ilusión de velocidad gratis; en realidad, la deuda técnica se acumula como si tuviera una tasa anual de alrededor del 40%
La IA puede automatizar el tecleo, pero el pensamiento debe seguir siendo humano
tdd, microservicios, etc.)Algunos sostienen que
tddy los microservicios, que no eran necesarios en el desarrollo tradicional, ganan más valor en la era de los LLMUna pequeña ambigüedad en el prompt puede desviar por completo el resultado, y cuando uno se da cuenta ya es difícil corregirlo a tiempo
Fue por la ambigüedad del lenguaje humano que eventualmente surgieron los lenguajes formales
Personalmente, al usar tooling de IA siento que mis habilidades están cayendo rápidamente, y de hecho he tenido casos donde gasté más tiempo y energía
La IA es útil, pero parece haber un grupo que ve cómo pequeños errores se acumulan en problemas complejos y otro de managers/no técnicos que solo ven el resultado y dicen que ya hubo "reemplazo de funciones"
[Experiencia detallada: comentario anterior]
Así como las calculadoras redujeron la capacidad de cálculo mental, la IA también puede degradar la escritura, la comunicación y la resolución de problemas
Por eso se usa el LLM solo para tareas pequeñas y claras, o para problemas que uno buscaría en StackOverflow
Las respuestas no se toman como verdad absoluta, sino como guía
La capacidad humana de entender el plano general completo es clave para resistir la entropía
Así se puede pulir mejor el tema y el contexto
Ojalá este tip también le sirva a otras personas
Ejemplo: la vieja guerra entre Coke y Pepsi
Si le preguntas al LLM por la intención del diseño, por ejemplo pidiéndole "dame una versión simplificada del código", también puede darte una segunda opinión bastante buena
Si no preguntas, entonces no hay respuesta; y como la configuración por defecto también es una elección nuestra, se considera que esa afirmación no toca la esencia de la tecnología subyacente
En la realidad nadie puede entender un programa gigantesco completo en su cabeza, así que herramientas y lenguajes también evolucionaron con base en comprensión parcial
Los LLM comparten ese mismo límite, así que dentro de ese marco humanos y LLM tienen limitaciones parecidas
Es una lástima que al LLM le cueste tener la capacidad de preguntar "¿por qué lo estás haciendo así?" respecto a esa dirección
Hay parte de verdad, pero se piensa que la mayoría de la gente nunca fue buena para orientarse y que, más bien, la tecnología de mapas elevó en promedio la capacidad de ir de A→B
Incluso para la minoría más hábil, la tecnología cumple un papel de apoyo más que de reemplazo de sus capacidades
La IA probablemente traerá un cambio parecido a mayor escala: habrá puntos donde la capacidad se reduzca y se pierda, pero también habrá mucho que ganar
Los mapas casi siempre entregan el valor esperado, pero con el mismo prompt un LLM puede cambiar el resultado y se siente difícil confiar en él
Así como hay gente que termina en un lago por confiar ciegamente en el mapa, confiar ciegamente en un LLM puede causar problemas mayores
Permite perderse libremente y retomar la ruta cuando hace falta, así que en realidad amplifica la experiencia
En cambio, la IA a veces ni siquiera supera a una persona común con apenas unos días en ese campo
Los LLM recientes claramente sí pueden trabajar a nivel conceptual (por ejemplo, traducción/aplicación de conceptos)
Se afirma que entienden incluso conceptos que un humano no ha experimentado personalmente
Ejemplo: alrededor de "dog" se agrupan palabras relacionadas
Pero no logran modelar composición, intención o razonamiento contrafactual
Muestran fortaleza en preguntas parecidas a los datos de entrenamiento
En áreas donde la conceptualización está bien definida, como la ingeniería de software, son útiles
Al final, quien no trabaja con ganas no cambia por usar IA, y solo quienes realmente aprenden crecen junto con ella
Si la IA hace mejor el trabajo, eso solo crea una justificación para reemplazar al responsable
Incluso FSD (conducción autónoma) es mucho mejor que un conductor promedio no experto
Se está pensando en formatos como foro, mailing list o multiblog
Lista de correo temporal
Ya hay casos exitosos en ciertas comunidades