Un exingeniero de Meta informa que, si bien las herramientas de IA pueden generar la gran mayoría de una base de código, a menudo producen código 'frágil' que no tiene en cuenta la escalabilidad a largo plazo y la alta disponibilidad. Este cambio hacia el desarrollo impulsado por IA se está convirtiendo cada vez más en una expectativa corporativa; sin embargo, puede estar creando un ciclo de 'enshittification' donde el software se optimiza para la lógica de las máquinas en lugar de para los usuarios humanos o la mantenibilidad.

Mecanismos de fragilidad de la base de código

Los modelos de IA tienden a resolver problemas que encajan dentro de su ventana de contexto inmediata, ignorando a menudo las implicaciones arquitectónicas a largo plazo. Esto da como resultado cuatro tipos principales de fragilidad: pruebas superficiales, sobrecomplejidad, disminución de la comprensión humana y una alta velocidad de código que supera las capacidades de revisión humana.

Por ejemplo, los agentes de IA pueden escribir numerosas pruebas para métodos simples de get/set mientras no logran cubrir escenarios complejos de extremo a extremo. Esto crea una falsa sensación de seguridad porque las métricas de cobertura a nivel de línea se mantienen altas, a pesar de que las rutas críticas del usuario permanecen sin probar.

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

— AI usage generates a fragile codebase

Impacto en el mantenimiento y la respuesta a incidentes

Una base de código que depende en gran medida de la IA puede experimentar un aumento en los incidentes de producción con el tiempo. Debido a que los desarrolladores humanos del equipo pueden tener una comprensión más superficial de los algoritmos y estructuras de datos subyacentes, identificar la causa raíz de un fallo se vuelve más difícil.

Cuando ocurre un problema de producción, los desarrolladores deben navegar por un territorio complejo y mal probado. Esta falta de familiaridad extiende el tiempo requerido para mitigar los incidentes, lo que potencialmente conduce a mayores pérdidas financieras y operativas para los proveedores de SaaS.

El toque humano frente a la lógica de la máquina

El autor sostiene que el software hecho por IA para IA carece del 'toque humano' necesario para productos de alta calidad. Si bien la IA puede producir código funcional, puede fallar al adaptar la experiencia a cómo los usuarios humanos interactúan realmente con un producto o a cómo los desarrolladores humanos necesitan mantenerlo.

La compensación implica una elección entre la velocidad de generación de la IA y la resiliencia de la arquitectura diseñada por humanos. Para un software de alta calidad, el autor sugiere que una perspectiva humana sigue siendo esencial para garantizar que el producto sea encantador, agradable y estructuralmente sólido.

Qué dicen los lectores de Hacker News

  • Experiencia: Un comentarista que gestionó una base de código de una aplicación móvil de 500,000 líneas durante siete meses argumentó que la fragilidad del código generado por IA fue insignificante en la práctica y que el mantenimiento en realidad se volvió más fácil con los avances de los modelos. comentario ↗
  • Experiencia: Otro usuario compartió que su experiencia fue lo opuesto a las afirmaciones del artículo, señalando que la verbosidad y rigidez del código generado por LLM actuaron como un factor de fuerza para la especificidad que redujo los errores de producción. comentario ↗
  • Escéptico: Varios comentaristas sugirieron que las preocupaciones sobre la fragilidad generada por IA podrían estar exageradas, señalando que las bases de código grandes escritas por humanos también decaen inevitablemente en 'código espagueti' independientemente de las herramientas utilizadas. comentario ↗
  • Alternativa: Un comentarista sugirió que el uso de lenguajes con tipado estático y programación funcional puede garantizar la solidez del código limitando las pruebas solo a aquellas cosas que el sistema de tipos no puede verificar ya. comentario ↗

Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗