HeadlinesBriefing favicon HeadlinesBriefing.com

Conquistar la Entropía: Confianza en Código IA

Hacker News •
×

Parte de “Conquistar la Entropía”

La mayoría de los problemas que tengo con el código generado por IA están relacionados con la confianza. ¿Confío en la persona que escribió este ticket? ¿Confío en que el ingeniero que abrió este PR entendió el ticket y guio al agente de codificación para implementarlo correctamente? ¿Confío en la implementación del agente de codificación? ¿Confío en nuestra suite de pruebas para detectar regresiones antes de que lleguen a producción? ¿Confío en nuestro CI/CD para construir, probar y desplegar correctamente nuestros cambios? ¿Confío en nuestra configuración de observabilidad para alertarnos cuando el código generado por IA rompa producción? ¿Confío en el SRE de IA (Ingeniero de Confiabilidad del Sitio) para diagnosticar adecuadamente el problema y ayudarnos a mitigarlo? ¿Confío en Git Hub para no tener un incidente cuando más lo necesitemos? La confianza es difícil de ganar y fácil de perder. Así que creo que es crucial fomentar una cultura de confianza dentro del equipo de ingeniería. Debes confiar en que los ingenieros harán lo correcto.

Fomentar la Responsabilidad

Me resulta útil comunicar claramente algo como esto: “Eres responsable de lo que envías. Si esto rompe producción y tú escribiste el PR, deberías estar ahí para arreglarlo.”

Si se hace a los ingenieros responsables del código que envían, se les debe dar la agencia para producirlo con sus métodos preferidos. Incluso si no eres un entusiasta de la IA, tienes que admitir que los agentes de IA generan mucho código muy rápido. El código aún necesita generarse, y la expectativa es que ahora es barato generar mucho de él. Para lidiar con esto, los ingenieros deben tener permiso para poner en marcha algunas medidas para asegurar que la calidad de la base de código no se degrade. En una organización saludable, los ingenieros deben confiar unos en otros para solo enviar código de calidad razonable. Digo razonable porque no es pragmático obsesionarse con la calidad e intentar enviar siempre código 100% perfecto. Incluso antes de los agentes de codificación, ¡la mayoría del código ya era un desastre lleno de errores! Así que es comprensible cuando se entrega una solución “lo suficientemente buena”. A menudo, intercambiamos velocidad de entrega por calidad e incurrimos en algo de deuda técnica.

Aquí hay algunas prácticas que he encontrado útiles para facilitar la responsabilidad de ingeniería en esta nueva era de codificación:

Directrices de Codificación

Tener una estrategia tecnológica clara: tómate un tiempo para decidir qué importa para tu base de código e invierte en directrices claras. Tanto para humanos como para los agentes de codificación. Incluso si los humanos no leen las directrices, sus agentes de codificación lo harán, y las seguirán (mayormente).

Herramientas Deterministas

Hacer un uso intensivo de herramientas deterministas para asegurar la calidad del código. Lenguajes tipados, linters, detección de código muerto, escaneos de seguridad, CI/CD, y así sucesivamente. Todas estas herramientas existían antes de los agentes de codificación y nos ayudan en la lucha contra el código basura. (¡Mantente atento para un post de seguimiento con recomendaciones específicas!)

Imponer PRs Pequeños

Empoderar a los ingenieros para rechazar PRs no revisables. Si es posible, codificar este criterio para que cualquier PR no revisable sea rechazado inmediatamente. Por supuesto, asegúrate de dejar espacio para excepciones.

Poseer las Pruebas

Escribir casos de prueba a mano. Esto es similar al trabajo de un analista de negocio. Piensa profundamente en la característica y define escenarios de prueba adecuados. Discute esto dentro del equipo. Los agentes de codificación pueden implementar las pruebas, pero deben ser definidas por humanos.

Gusto en el Producto

Trabajar en tándem con producto para tener una visión de producto coherente. Es muy fácil volverse loco con la IA e implementar cualquier característica que venga a la mente. ¡Asegúrate de implementar solo características útiles que realmente aporten valor a los usuarios!

Prototipo

Código desechable. Dado que el código es muy fácil de generar ahora, es una buena oportunidad para probar diferentes enfoques. No solo dejes que el agente de codificación genere una solución. Por ejemplo, prueba tres enfoques radicalmente diferentes y elige el que mejor se adapte al problema y al sistema existente.

Enfocarse en el Resultado

Ser pragmático sobre el resultado. A veces el código no es el resultado. El resultado es un informe, o una herramienta que te ayuda a lograr otra cosa. Para casos como este, la calidad del código no es tan relevante siempre y cuando el resultado sea útil.