La encuesta de este año de Stack Overflow, de la que ya te hemos ofrecido un resumen hace poco, ha intentado hacer un especial hincapié en averiguar el impacto que la Inteligencia Artificial y los nuevos modelos grandes de lenguaje están teniendo en la profesión de programador. La pregunta del millón es: ¿Es la IA un "hype", una "vendida de moto", o es algo real y tangible que la gente utiliza y que le ofrece ventajas? Vamos a averiguarlo con los datos de la encuesta de Stack Overflow...
Los desarrolladores profesionales, ¿confían en la Inteligencia Artificial?
La realidad es que los desarrolladores ya están utilizando IA. El 44% de los desarrolladores usa herramientas de IA en su trabajo en la actualidad y el 26% planea hacerlo pronto. Incluso, si nos fijamos en los que están aprendiendo a programar, el 55 % están utilizando actualmente herramientas de IA. Esto es muy interesante ya que los noveles confían y utilizan más la IA que los profesionales, y estos primeros son los que no la abandonarán una vez que se conviertan en desarrolladores profesionales.
De la encuesta se deduce que los desarrolladores profesionales no confían mucho en la precisión de las herramientas de IA. De aquellos que usan o planean usar herramientas de IA, solo el 3% confía mucho en la precisión que brindan, y el doble (6%) desconfía mucho de ellas. Si bien la mayoría (39 %) confía un poco en las herramientas de IA, esta respuesta nos dice que las herramientas de IA aún deben demostrar su utilidad:
Lo que está claro es que, al ser modelos generativos los que están detrás de estas herramientas, su precisión puede ser puesta en duda, ya que generan soluciones nuevas cada vez que les preguntas y puede ocurrir de todo con los resultados. Pero, en la mayor parte de los casos, serán soluciones viables. Lo cierto es que, el concepto de este tipo de herramientas es que son asistentes, no oráculos (o mal lo tendría la profesión), por lo que la máxima al trabajar con ellas debería ser "confía, pero verifica". Es decir, puedes confiar en que, en su mayoría, la ayuda será beneficiosa, pero debes basarte en tu experiencia para determinar si es la mejor solución, si se ha dejado casos sin plantear, si es suficientemente segura, etc... Aunque herramientas como GitHub Copilot Chat, paradójicamente te pueden ayudar a verificar este tipo de cuestiones sobre el propio código generado.
Los desarrolladores profesionales pueden necesitar tiempo para ajustar los flujos de trabajo existentes a estas herramientas o puede que, en muchos casos, las vean como una amenaza o simplemente se nieguen a aceptar los cambios (inevitables) que estas traen. Pero lo más probable es que al final se vean motivados por sus colegas más jóvenes que usan herramientas de inteligencia artificial mientras aprenden a programar si no quieren perder este tren.
Si bien un número creciente de desarrolladores está utilizando herramientas de IA, no están utilizando una amplia variedad. De los 21 productos que se nombraban en la encuesta como herramientas IA para desarrolladores, la vasta mayoría solo utiliza los dos productos populares: ChatGPT (83 %) y GitHub Copilot (56 %).
Dado que estamos al principio del ciclo de adopción de estas nuevas tecnologías de IA, seguramente hace falta esperar un poco más antes de que veamos a los desarrolladores usar más herramientas de IA de manera más amplia.
Un dato curioso es que los países donde trabajan las personas que respondieron a la encueta también tienen un impacto reseñable en si está utilizando o no herramientas de IA. Hay una cierta correlación, que quizá no causalidad, aunque las cuestiones culturales seguro que influyen. Así, es más probable que los desarrolladores profesionales de India, Brasil y Polonia usen o planeen usar herramientas de IA como parte de su flujo de trabajo de desarrollo, con más de un 70% diciendo que las utilizan. Por el contrario, más de un 36% de los desarrolladores del Reino Unido, Francia, EE. UU. y Alemania dicen que no usan ni planean usar herramientas de inteligencia artificial 🤔 Puede que influyan mucho las nuevas normativas que pretenden regular la IA en Europa (así como las normativas estrictas de protección de datos), así como muchas empresas estadounidenses diciendo en público que no permiten a sus trabajadores usarlas 🤷🏻♂️
¿Por qué utilizar herramientas de IA para programar? ¿Realmente valen para algo?
Independientemente del uso que haya en la actualidad y de las intenciones de uso futuras, los desarrolladores en general se muestran positivos sobre de las posibilidades de la IA en su trabajo. La mayoría (77 %) se siente favorable al uso de herramientas de IA como parte de su flujo de trabajo de desarrollo, pero vemos algunas diferencias entre los grupos. Es más probable que los desarrolladores de Machine Learning y científicos de datos, los desarrolladores front-end o los full-stack utilicen herramientas de inteligencia artificial ya ahora mismo. Sin embargo, es menos probable que los desarrolladores de aplicaciones integradas, los desarrolladores empresariales/de escritorio y los ingenieros de hardware usen estas herramientas y estén menos inclinados a usarlas en el futuro. En el caso de los desarrolladores empresariales es toda una paradoja, pues, seguramente, son los que más podrían beneficiarse de la automatización que les brindan estas herramientas en el código "de fontanería", algo muy habitual en este tipo de aplicaciones.
Las herramientas generativas basadas en modelos grandes de lenguaje, que es de lo que hablamos, se enfrentan también a su propio precipicio de complejidad. Y es que en proyectos grandes, después de cierto umbral crítico, la capacidad de la IA para manejar todos los matices e interdependencias de una solución disminuye. O sea, sus beneficios no son lineales. Y es ahí cuando los humanos, con su adaptabilidad para aplicar el sentido común y tener un pensamiento original, marca la diferencia.
En cuanto a los beneficios que la gente obtiene de utilizar este tipo de herramientas en su trabajo, la mayoría (casi un 33%) destaca la mejora de productividad, pero también son ampliamente utilizadas para aprender (25%, muchas veces sobre la marcha, mientras se trabaja), o la mejora de la eficiencia:
La gran mayoría de los desarrolladores utiliza estas herramientas de IA para escribir código (83 %) o depurar código (49 %) y no tanto para otras tareas de desarrollo (testing, documentación, planificación de proyectos, revisión de código, despliegue...), por lo que todavía quedan muchos nichos donde obtener ventajas importantes por el uso de estas herramientas.
Sobre cómo pensaban que estas herramientas evolucionarían de cara a mejorar su flujo de trabajo durante el próximo año, el 77 % cree que el próximo año cambiará algo o mucho a la hora de escribir código con IA, y el 75 % piensa lo mismo acerca de la depuración. La actualización de las herramientas y la evolución de la curva de aprendizaje probablemente beneficiarán a quienes actualmente usan herramientas de IA o planean hacerlo pronto, dándoles una ventaja competitiva y de productividad sobre los que no lo hacen:
La era del desarrollo apoyado por IA aún está en sus albores, pero los desarrolladores lo están adoptando masivamente, si bien en muchos casos todavía hay muchas reticencias, falta de confianza y preocupaciones regulatorias. Sin embargo, los que las utilizan manifiestan grandes mejoras en su rendimiento profesional, menos errores y facilidad para producir. Por otro lado, estas herramientas no harán más que mejorar en los próximos meses, por lo que cada vez tendrán mayor importancia. La encuesta de Stack Overflow nos proporciona una idea de por dónde van los tiros en este ámbito. Puedes ver los datos completos de la parte relativa a la IA en este excelente recurso del blog de Stack Overflow: Developer sentiment around AI/ML.