El código generado por IA crea bases de código frágiles que acaban pasando factura

AI usage generates a fragile codebase

El código generado por IA crea bases de código frágiles que acaban pasando factura

Un ingeniero despedido de Meta sospecha que su resistencia a adoptar LLMs como herramienta de programación influyó en la decisión. Ahora, en otra gran tecnológica, genera el 100% de su código con IA por exigencia del entorno, pero advierte que ese código es quebradizo: pruebas superficiales, complejidad innecesaria, desarrolladores que no entienden lo que mantienen y un ritmo de PRs imposible de revisar. El resultado: más incidentes, recuperaciones más lentas y errores que solo ven los usuarios.

La IA tiende a resolver muy bien los problemas que caben dentro de su ventana de contexto, pero es totalmente ajena a los problemas a largo plazo que no pueden entenderse en ese marco relativamente pequeño.
  1. basilgohar

    Creo que mirar el uso de la IA para el código y el desarrollo desde una perspectiva de ingeniería va a ser un ejercicio de frustración. Soy ingeniero de software desde hace más de 20 años y me he pasado a usar la IA para mi código al 100%. Me parece invaluable, prácticamente la única forma de mantenerme relevante y llevar un negocio hoy en día. Me alegra que cualquiera pueda estar en desacuerdo conmigo, porque no quiero tener razón por primera vez en mi vida.

    Dicho esto, mi experiencia me dice que el código empresarial y de negocio rara vez ha tenido que ver con bases de código estables o robustas. Los ingenieros y una fracción de gerentes de ingeniería competentes y un número cada vez menor de directores luchamos contra los intereses del negocio para asegurar que la calidad fuera prioridad en lo que respecta al código, pero siempre fue una batalla cuesta arriba y a menudo se nos disciplinaba por dedicar demasiado tiempo a la calidad y el diseño.

    Una cadencia de lanzamiento cronometrada es anatema para el código de calidad porque no se puede encasillar en el tiempo.

    Así que la IA es solo la extensión de eso. ¿Intento asegurarme de que mis agentes diseñen código que yo consideraría bueno? ¡Sí, absolutamente! Pero lo he externalizado por completo y encuentro que también es totalmente capaz de corregir sus propios errores. He ido mucho más allá de lo que yo individualmente o incluso con un equipo era capaz con la asistencia de la IA, así que creo que simplemente tengo que aplicar mi experiencia y habilidades a la gestión y la arquitectura en lugar de a las líneas de código reales.

    Solo el tiempo dirá cómo resulta esto.

    Wallaahu aʿlam.

  2. solatic

    Creo que vamos a ver más esfuerzos en análisis estático / linters.

    > Por ejemplo, vi a uno de los mejores programadores de mi equipo intentar fusionar código que usaba eventos de javascript para efectos CSS de mouseover en lugar de usar el selector :hover, que es una forma totalmente no escalable de escribir mouseovers.

    Vale, ¿puede el análisis estático encontrar los eventos JS de mouseover y hacer fallar un linter como resultado? Quizás en el pasado esto habría sido excesivo o se habría activado muy raramente, si acaso, pero en una base de código escrita por IA, esto ayuda a detectarlo y a indicar al arnés del agente que lo reescriba.

  3. monjerry

    La calidad del código no es un problema.....hasta que lo es. Todo el mundo estará contento si las cosas parecen funcionar y avanzar rápido, solo cuando empiezas a ver síntomas como no poder cambiar cosas sin romper funcionalidades existentes o incluso ver un aumento en los tokens quemados para leer bases de código complejas empezarás a preocuparte por la calidad del código (que ahora imagino que la gente simplemente dejará que la IA intente arreglar su propio desastre).

  4. peterbell_nyc

    No estoy seguro de que los artículos de "la IA genera..." vayan a envejecer bien.

    Mi pregunta inmediata sería qué tipo de revisiones adversariales y puertas deterministas escribió el autor para capturar las dimensiones de mantenibilidad (falta de DRY, complejidad ciclomática, nombres poco claros, flujos mal arquitecturados, etc.) que les importaban.

    No me malinterpretes. Cuando iba a toda velocidad con 200 PRs al día (proyectos personales - no se los habría infligido a otros) rápidamente improvisé un gran bola de barro, pero mientras estoy regenerando mi patrimonio (a) los modelos son un poco mejores pero (b) estoy añadiendo mucho más rigor en torno a la verificación (corrección, rendimiento, seguridad, costes operativos y mantenibilidad). No es un problema fácil de resolver, pero a mí me parece un esfuerzo de ingeniería, no ciencia espacial especulativa.

    Entiendo perfectamente que muchas bases de código generadas por IA efectivamente sufren más incidentes y menos mantenibilidad, pero creo que es importante distinguir entre lo que es común y lo que es posible, ya que la solución para uno es mejorar el rigor de tu verificación, mientras que la solución para el otro sería aceptar código malo o renunciar a los LLM.

  5. jdpigeon

    Estas reglas son tan ciertas que suenan obvias. Es hora de empezar a presionar a los líderes para que las conozcan.

  6. happy_dog1

    Aquí pura especulación, pero este es un pensamiento que se me ocurre. A menudo he visto los muebles como analogía de la rapidez con que un proceso automatizado puede desplazar a los artesanos, pero creo que en realidad podría ser en cierto sentido una analogía de cómo la artesanía puede seguir sobreviviendo y prosperando incluso después de la automatización. Claro, Ikea vende MUCHOS más muebles que Ethan Allen; pero los muebles hechos a mano de Ethan Allen son de mucha mayor calidad y se venden a un precio premium.

    Los consumidores se benefician en todos los sentidos. Quienes pueden permitírselo pueden comprar el producto artesanal de alta calidad; la mayoría que no puede obtiene acceso barato a muebles de calidad aceptable.

    Esto es pura especulación, pero me pregunto si el software evolucionará gradualmente de esta manera con la disponibilidad de la IA. Para muchas tareas básicas, los consumidores podrán básicamente escribir su propio software usando alguna herramienta de IA; puede que no sea de alta calidad pero al menos será barato y rápido de producir y reducirá enormemente la barrera de acceso para el usuario medio de ordenador para hacer lo que quiera en su máquina. Mientras tanto, un mercado nicho mucho más pequeño para herramientas de alta calidad que han sido al menos parcialmente hechas a mano por expertos para satisfacer alguna necesidad especial donde el rendimiento o una experiencia de calidad son cruciales seguirá prosperando. En cualquier caso, en este escenario, imaginaría que la importancia y prominencia del SaaS disminuirá lentamente.

  7. yodsanklai

    No creo que esto importe ya. El software se está convirtiendo en una caja negra y los agentes lo hacen funcionar, siempre que puedas proporcionar una especificación razonable de lo que quieres hacer, y un poco de supervisión y dirección.

    Ahora mismo, no son geniales siguiendo buenos principios de ingeniería de software. Hacen el trabajo, con código verboso, mucha duplicación, fugas de abstracción, pruebas unitarias inútiles y demás.

    ¿Es un problema? Podrías pensar que a largo plazo lo será, que la IA no podrá manejar la complejidad que introdujo, pero no estoy realmente preocupado. La mayoría del software no es tan grande, y los agentes mejoran cada día. Y si realmente te importa el diseño, no es demasiado difícil instruir a tu agente para que siga tus estándares.

    Ojalá no fuera así y pudiera justificar mi experiencia y pericia por unos años más, pero los hechos están ahí.

  8. jasode

    No estoy en desacuerdo con el artículo, pero puede dar a algunos lectores la impresión de que el código escrito a mano antes de la IA no era frágil.

    Aquí está el famoso comentario sobre la base de código de Oracle RDBMS de 25 millones de líneas: https://news.ycombinator.com/item?id=18442941

    Toda base de código grande de una empresa con millones de líneas degenera en un estado similar. La base de código pequeña comienza con una integridad conceptual limpia. Luego inevitablemente decae en código espagueti incomprensible a medida que se le añade más gente. Varias razones para ello, incluyendo que los desarrolladores posteriores se preocupan menos por el código que el equipo inicial de desarrolladores, los plazos, evitar la refactorización por miedo a romper cosas, etc.

    Si no quieres que la IA cree código frágil, tienes que aplicar las mismas puertas de calidad que se habrían aplicado al código escrito a mano antes de la IA para mantener todo limpio. La mayoría de las empresas no hacen eso.

  9. a34729t

    Una de las cosas que la IA reduce es que los ingenieros curiosos trastean en la base de código, lo cual es una gran manera de encontrar código muerto, estructuras subóptimas, etc. Con la IA todo eso desaparece.

  10. hackersnooze1

    La calidad del código ya no es una preocupación para casi nadie desde hace unos 6 meses. El software es una caja negra ahora, acostúmbrate.

Más de este día

2026-11-10