Audité el código de IA de mi equipo. Esto es lo que encontramos.
Mi equipo utilizó IA para desarrollar código a una velocidad récord. Lanzamos funcionalidades en un tercio del tiempo habitual. Nuestra velocidad parecía excelente. Nuestra cobertura de pruebas alcanzó el 91%.
Entonces, nos topamos con un muro.
Nos enfrentamos a errores en producción que eran difíciles de solucionar. Una refactorización simple tomó cuatro semanas en lugar de cuatro días. Un nuevo empleado me dijo que el código era limpio pero imposible de entender.
Pasamos tres semanas auditando la base de código. Encontramos una deuda técnica que ningún escáner pudo detectar. La deuda era arquitectónica. Era de comportamiento.
Las herramientas de IA resuelven el problema inmediato de tu prompt. Optimizan para la tarea local. No comprenden el sistema completo. No saben qué servicios planeas eliminar pronto. No conocen tus modelos de datos a largo plazo.
El resultado es un código que es localmente correcto pero globalmente frágil.
Encontramos cuatro patrones específicos:
- Casos de borde ocultos (Hidden Edge Cases) La IA escribe código que pasa las pruebas que le das. No es buena escribiendo pruebas para sus propios errores.
- La solución: Un ingeniero debe explicar el código a un colega sin mirarlo. Si no puede explicarlo, no puede integrarlo.
- Teatro de cobertura de pruebas (Test Coverage Theater) La IA genera pruebas que cubren el código existente. No escribe pruebas sobre cómo debería comportarse el sistema en realidad.
- La solución: Cada suite de pruebas de IA debe pasar una revisión adversarial. Un segundo ingeniero debe intentar romper el código.
- Acoplamiento invisible (Invisible Coupling) La IA añade dependencias para resolver un prompt rápidamente. Podría entrelazar la lógica de notificaciones en tus módulos de facturación o de usuario. Esto hace que sea imposible separar los servicios más adelante.
- La solución: Un ingeniero senior debe aprobar cualquier nueva dependencia introducida por la IA.
- Manejo de errores superficial (Shallow Error Handling) La IA suele escribir bloques de error que parecen completos pero no logran manejar fallos reales del sistema.
- La solución: Usamos una prueba de cambio (change test). Medimos cuántos archivos se rompen cuando realizamos un pequeño cambio. Un alto impacto significa un alto acoplamiento.
La IA no es el enemigo. Debes tratar a la IA como a un ingeniero junior. Debes proporcionar orientación, establecer expectativas y usar tu criterio para invalidar el resultado.
Las herramientas son excelentes en las tareas. No son excelentes en el trabajo.
Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi