Cómo usan la IA los equipos de ingeniería de software
(refactoring.fm)- Las herramientas de programación basadas en IA están creciendo rápidamente, y aunque algunos desarrolladores individuales logran resultados sorprendentes con IA, en los equipos de ingeniería reales muchas veces el impacto es mínimo
- Hay 2 razones para la diferencia en resultados: "greenfield vs base de código grande", "single-player vs multiplayer"
- Por eso, se plantean nuevos flujos de trabajo de programación para la IA y se anticipan las siguientes tendencias:
- Muchas empresas están contratando más ingenieros — especialmente las buenas empresas
- El mayor desafío son las bases de código a gran escala — ahí es donde realmente se crea valor
- Robot vs Iron Man — la diferencia filosófica entre herramientas de IA
- Optimización de la felicidad del desarrollador — ¿qué tareas tediosas puede asumir la IA?
- Rastrear código de IA es un antipatrón — no caer en la tentación de rastrearlo
Causas de la diferencia en resultados
- Greenfield vs base de código grande
- La mayoría de las herramientas de IA están optimizadas para proyectos nuevos (greenfield)
- En bases de código antiguas, su utilidad disminuye
- Single-player vs multiplayer
- Los flujos de trabajo actuales con IA están centrados en un solo jugador
- Al colaborar en equipo surgen problemas (conflictos de merge, manejo de contexto complejo, etc.)
"Los flujos de trabajo con IA funcionan bien cuando trabajas solo, pero al usarlos en equipo hay conflictos frecuentes y resultan ineficientes."
Las empresas destacadas están contratando más ingenieros
- La predicción de que el avance de la IA reduciría la demanda de ingenieros es incorrecta
- Si la IA aumenta la productividad, como resultado aparece la paradoja de Jevons, en la que aumenta la contratación de ingenieros
-
Reacción de las organizaciones ante la adopción de IA
- Equipos de alto nivel: aumenta la productividad con IA → contratan más ingenieros
- Equipos promedio: no hay cambios en contratación por la burocracia y los costos de coordinación
- Equipos rezagados: la tecnología es solo una herramienta más → reducen el equipo para recortar costos
El mayor problema son las bases de código a gran escala
- La IA sobresale resolviendo problemas algorítmicos, pero su desempeño en trabajo freelance real es bajo
- La principal causa es la falta de contexto
- Formas de proporcionar contexto en una base de código:
- Fine-tuning → es impredecible y costoso
- Ampliar la ventana de contexto → es difícil garantizar la precisión
- RAG (Retrieval-Augmented Generation) → por ahora es lo más prometedor
Un buen RAG es la clave para escalar las herramientas de programación con IA
Robot vs Iron Man: diferencia filosófica entre herramientas de IA
- Herramientas autónomas → funcionan como agentes independientes
- Reciben órdenes en Slack y envían PR automáticamente
- Ej.: Devin, Lindy
- Herramientas de aumento → los humanos lideran el trabajo y la herramienta cumple un rol de apoyo
- Se usan como herramienta de apoyo en el IDE, y el PR final lo envía una persona
- Ej.: Augment, Cursor
-
¿Qué estrategia conviene más?
- Ciclo de retroalimentación → las herramientas de aumento pueden corregir errores más rápido
- Escalabilidad → las herramientas autónomas corren el riesgo de aumentar la complejidad organizacional
- Enfoque centrado en las personas → las herramientas de aumento evolucionan en una dirección que fortalece a los humanos
"La IA no debe crear una guerra de clones, sino a los Avengers"
Optimización para la felicidad del desarrollador
- Los equipos exitosos no se enfocan en la productividad, sino en la felicidad del desarrollador
- Se enfocan en usar IA para reducir el trabajo repetitivo y tedioso
- Toil que la IA puede resolver
- 1) Automatización de pruebas
- La IA escribe código de pruebas → reduce la carga del código boilerplate
- Aumenta la recompensa por escribir especificaciones por adelantado → facilita aplicar TDD
- 2) Automatización de documentación
- La IA escribe comentarios de código y especificaciones técnicas → reduce la carga de mantener documentación
- La IA puede explicar la estructura y el funcionamiento del código → pero la intención al escribirlo todavía debe explicarla una persona
- 3) Mejora de la calidad del código
- Puede revisar el estilo del código y vulnerabilidades de seguridad
- Ejemplos de herramientas de IA: Augment, Packmind, Codacy
- 1) Automatización de pruebas
Rastrear código de IA es un antipatrón
- Si la IA trabaja de forma autónoma, hace falta rastrear resultados
- Pero si la IA potencia a las personas, distinguir entre código de IA y código humano no tiene sentido
- Es más efectivo enfocarse en la productividad y satisfacción del desarrollador
Puntos clave
- La adopción de IA aumenta la contratación de ingenieros → si aumenta la productividad, la contratación también se expande por la paradoja de Jevons
- Hace falta una adopción multiplayer de la IA → es necesario fortalecer la colaboración en equipo
- Hace falta resolver el problema de las bases de código a gran escala → proporcionar contexto es la clave
- Las herramientas de aumento son más ventajosas que las autónomas → el humano lidera y la IA apoya
- Optimizar la felicidad del desarrollador → priorizar la felicidad por encima de la productividad
- El regreso de TDD → la IA reduce la carga de escribir pruebas
- Menor carga de documentación → la IA escribe automáticamente comentarios y especificaciones técnicas
- Mejora de la calidad del código → la IA revisa estilo de código y problemas de seguridad
- Rastrear código de IA no tiene sentido → el rendimiento debe evaluarse por la productividad y satisfacción generales
1 comentarios
Me cuesta estar de acuerdo con el punto 1.
Yo lo siento mucho así. Porque en una empresa pequeña estamos intentando contratar buenos ingenieros, pero de verdad no es nada fácil.