- Según el análisis de 470 PR de código abierto, el código escrito por IA contiene en promedio 1.7 veces más problemas que el escrito por humanos
- En el código generado por IA fueron notablemente más frecuentes defectos clave como errores lógicos, menor legibilidad y vulnerabilidades de seguridad; en particular, los problemas de legibilidad aumentaron más de 3 veces
- En el código de IA son frecuentes la omisión del manejo de errores, errores de concurrencia e inconsistencias de nombres, lo que amplía la carga de revisión y el riesgo operativo
- Las causas se atribuyen a la falta de comprensión de la lógica de negocio, la búsqueda de una exactitud superficial y la preferencia por patrones poco eficientes
- El informe enfatiza la necesidad de fortalecer los sistemas de control de calidad del código generado por IA e incorporar procesos de revisión de código, seguridad y pruebas orientados a IA
Resumen del informe AI vs Human Code Generation Report
- CodeRabbit realizó un estudio para analizar empíricamente las diferencias de calidad entre el código escrito por IA y por humanos
- Se examinaron 470 PR de código abierto en GitHub; de ellos, 320 fueron coescritos con IA y 150 fueron escritos solo por humanos
- Todos los resultados se normalizaron como cantidad de issues por cada 100 PR, y se midió la frecuencia por tipo de problema mediante comparaciones estadísticas de proporciones
- En conclusión, la IA aumenta la productividad, pero también incrementa la tasa de errores
- En promedio, los PR escritos con IA tuvieron 10.83 problemas, frente a 6.45 en los PR escritos por humanos
- En particular, en el código de IA se detectaron con mayor frecuencia errores de alta severidad
Limitaciones del estudio
- Como no se podía verificar directamente si un PR fue escrito con IA, se clasificaron como tales los PR con la señal AI co-authored (co-authored-by)
- Los PR sin esa señal se consideraron escritos por humanos, aunque una separación perfecta no es posible
- A pesar de esta limitación, las diferencias estadísticas en los patrones de problemas entre ambos grupos fueron significativas
- La metodología completa se publica al final del informe
Diez hallazgos principales
- No todos los tipos de error existen solo en la IA, pero en la mayoría de las categorías el código generado por IA presenta una mayor tasa de fallas
- Humanos e IA cometen errores del mismo tipo, pero la IA los produce con más frecuencia y a mayor escala
-
1. El total de issues aumenta 1.7 veces
- Promedio de 10.83 por PR escrito con IA, frente a 6.45 en PR escritos por humanos
- Hay muchos más PR con concentración atípica de issues (outliers) en código de IA, lo que aumenta la carga de revisión
-
2. Aumentan los errores de alta severidad
- Los problemas graves y críticos son entre 1.4 y 1.7 veces más frecuentes
-
3. Los problemas de lógica y exactitud aumentan 75%
- Incluyen errores de lógica de negocio, dependencias incorrectas, fallas de flujo de control y errores de configuración
- Su costo de corrección es alto y pueden derivar en incidentes operativos
-
4. Los problemas de legibilidad aumentan más de 3 veces
- La convención de nombres, la estructura del código y la consistencia de expresión son notablemente peores
- Aunque el código parezca ordenado por fuera, son frecuentes las violaciones de patrones locales
-
5. La omisión de manejo de errores y rutas de excepción se duplica
- A menudo faltan validaciones de null, condiciones guard y lógica de manejo de excepciones
- Es un tipo de problema directamente ligado a caídas reales del servicio
-
6. Los problemas de seguridad aumentan hasta 2.74 veces
- Ejemplos representativos son el manejo inadecuado de contraseñas y vulnerabilidades de referencia a objetos
- No son vulnerabilidades exclusivas, pero la mayoría de los defectos de seguridad se amplifican
-
7. Los problemas de rendimiento son menos, pero se concentran en la IA
- Las llamadas I/O excesivas son cerca de 8 veces más frecuentes
- La IA prefiere código orientado a la claridad, sacrificando eficiencia
-
8. Los errores de concurrencia y dependencias aumentan cerca del doble
- Son frecuentes errores de orden, flujos de dependencia incorrectos y mal uso del control de concurrencia
-
9. Los problemas de formato aumentan 2.66 veces
- Hay muchos errores formales como indentación, espacios y estilos inconsistentes
- Incluso usando formateadores automáticos y linters, el ruido aumenta en el código de IA
-
10. Las inconsistencias de nombres se duplican
- Hay más nombres ambiguos, términos inconsistentes y uso de identificadores genéricos, lo que eleva la carga cognitiva del revisor
Causas de los problemas
- La IA carece de comprensión suficiente de la lógica de negocio
- Genera código con base en patrones estadísticos y omite reglas del sistema
- Generación centrada en una exactitud superficial
- El código parece correcto a simple vista, pero contiene errores en la protección del flujo de control o en el orden de dependencias
- Incumplimiento de convenciones específicas del repositorio
- Las reglas de nombres, estructura y formato se degradan hacia formas generalizadas
- Debilitamiento de patrones de seguridad
- Sin instrucciones explícitas, reproduce patrones de código obsoletos o vulnerables
- Preferencia por la simplicidad antes que por la eficiencia
- Tiende a usar I/O repetitivo y estructuras no optimizadas
Medidas para equipos de ingeniería
- Adoptar IA no solo exige más velocidad, sino también rediseñar el sistema de aseguramiento de calidad
-
1. Darle suficiente contexto a la IA
- Es necesario especificar reglas de negocio, patrones de configuración y restricciones de arquitectura para reducir errores
- Incluir en el prompt guías y esquemas específicos del repositorio
-
2. Aplicar estilo de código basado en políticas
- Prevenir problemas de legibilidad con formateadores en CI, linters y guías de estilo
-
3. Agregar salvaguardas de exactitud
- Pruebas obligatorias, validaciones de null/type, estandarización del manejo de excepciones y condiciones guard explícitas
-
4. Reforzar los valores predeterminados de seguridad
- Centralizar credenciales, bloquear el uso directo de contraseñas y ejecutar SAST y linters de seguridad automáticos
-
5. Guiar hacia patrones eficientes
- Procesamiento por lotes de I/O, selección adecuada de estructuras de datos y pistas de rendimiento
-
6. Incorporar una checklist de PR orientada a IA
- Al revisar, verificar los siguientes puntos:
- Cobertura de rutas de error
- Exactitud del control de concurrencia
- Validación de valores de configuración
- Método de manejo de contraseñas
-
7. Incorporar automatización para revisar código de IA
- Para evitar que se escapen bugs por el aumento de la fatiga de revisión, se propone usar la herramienta de revisión de código con IA (CodeRabbit)
- Estandariza la calidad de la revisión y reduce el tiempo de revisión y la carga cognitiva
Conclusión
- Las herramientas de codificación con IA son un acelerador potente, pero acelerar sin salvaguardas es riesgoso
- El código generado por IA muestra mayores niveles de variabilidad, tasa de errores y severidad
- Es imprescindible usar la IA como herramienta complementaria, no como reemplazo, y fortalecer los sistemas de calidad, seguridad y pruebas
- Para asegurar velocidad y calidad al mismo tiempo, se necesita una gestión de ingeniería intencional
- Aprovechar herramientas de revisión de código para IA puede ayudar de forma práctica a mantener la calidad
5 comentarios
1.7 veces es menos de lo que esperaba...?
Yo también he sentido algo parecido al programar con IA. Viendo las causas resumidas, me parece que se debe a que no se le proporciona suficiente contexto sobre patrones, convenciones de nombres, manejo de casos límite, condiciones de guardia, etc., que las personas ya damos por sentado como conocimiento básico al programar.
Por eso yo hice un archivo de reglas reuniendo justo ese tipo de cosas, y cuando programo le doy la instrucción de que lea ese archivo sí o sí y lo cumpla. Entonces, con solo ir mejorando el archivo de reglas, la calidad del resultado mejora bastante.
Me da miedo que haya quienes opinen: "hicimos un montón; si es solo 1.7 veces más, ¿no sale regalado?..."
Pero fue rápido, ¿no? Me hizo pensar en ese meme jajaja
Opiniones de Hacker News
Creo que el “vibe coding” ya existía antes de la IA
null checkspor todos lados sin pensar por qué un objeto esnullnull checks, los errores quedaban enterrados en silencionull checkmetido sin pensar después provoca errores de datos sutiles y hace muy difícil rastrear la causaLas críticas al vibe coding son válidas, pero la verdad es que la calidad del código ya era pésima antes de la IA
Decir que “el código de IA genera 1.7 veces más problemas” solo habla del número de bugs detectados
Hace poco Copilot me sugirió una implementación de IComparable en .NET y me ahorró unos minutos
xyy, y terminé debugueando una horaAntes ya habíamos visto algo parecido
Me pareció interesante que una empresa basada en LLM dijera que “la IA es menos mala de lo que parece”
Yo uso CodeRabbit con frecuencia, pero todavía tiene muchos false positives
“1.7 veces más” y “aumentó 1.7 veces” no significan lo mismo
El agentic AI coding no es más que una herramienta, y si se usa mal, obviamente dará malos resultados
La frase del titular, “el código de IA genera 1.7 veces más problemas”, es imprecisa