La IA generativa puede mejorar la productividad de los desarrolladores, pero sólo cuando calibran correctamente las expectativas. Aquí hay seis maneras de empezar con el pie izquierdo.
por Growth Acceleration Partners
- Concepto erróneo: solo necesitas pedir lo que quieres.
- Concepto erróneo: GenAI puede crear la aplicación completa por usted.
- Concepto erróneo: la calidad del código de GenAI es aceptable sin ajustes.
- Concepto erróneo: se puede confiar implícitamente en la cosecha actual de herramientas.
- Concepto erróneo: la productividad de los desarrolladores se disparará instantáneamente.
- Concepto erróneo: GenAI será tan bueno que no serán necesarios desarrolladores.
- Espere mejoras en la productividad, no magia.
Intentar pasar un día de trabajo sin leer ni oír hablar de la IA es como intentar enviar un mensaje de texto con una paloma mensajera: algo muy improbable. Los ingenieros de software en particular están inundados de artículos que los exhortan a utilizar IA generativa (genAI) para escribir sus aplicaciones. La mayoría de esos ensayos hacen grandes promesas, afirmando que la adopción de GenAI garantiza una mejor productividad de los desarrolladores. Y a menudo advierten a los desarrolladores que será mejor que se sumen al proyecto antes de que sus carreras sigan el camino del dodo.
Sin duda, mucha gente está experimentando o adoptando GenAI. Gartner predice que ocho de cada 10 empresas utilizarán API y modelos GenAI o implementarán aplicaciones habilitadas para GenAI en entornos de producción para 2026, frente a menos del 5% a principios de 2023.
También están experimentando una mejor productividad en la programación, hasta cierto punto. Nueve de cada 10 desarrolladores encuestados en el Informe de la Encuesta de Desarrollo Global Evans Data 2023 dicen que obtuvieron algún beneficio al usar GenAI.
Pero “¡Sí, subamos a bordo!” no significa que todos los desarrolladores deban sumergirse de lleno. La IA generativa no es ideal en todas las situaciones, especialmente cuando los programadores hacen suposiciones erróneas sobre su uso.
Antes de adoptar GenAI, tómese el tiempo para desacreditar estas creencias comúnmente mal entendidas, seleccionadas a partir de las experiencias de docenas de ingenieros de software. Luego puede utilizar estas herramientas para obtener el máximo beneficio.
Concepto erróneo: solo necesitas pedir lo que quieres.
Durante décadas, la gente ha buscado formas infalibles de instruir a las computadoras. Inicialmente, COBOL se presentó como una forma para que empresarios no técnicos crearan software. Hoy en día se ofrece la misma quimera: todo lo que necesitas hacer es decirle al sistema lo que quieres y lo creará. Puf… ¡aquí está tu solución!
Sin embargo, como sabe cualquier ingeniero de software, los usuarios no siempre saben lo que quieren y mucho menos cómo pedirlo. Los programadores experimentados son expertos en el diseño de sistemas, pero los lenguajes humanos no expresan las cosas con tanta precisión como los lenguajes informáticos. Además, no es realista esperar que los desarrolladores junior expresen requisitos no triviales de forma clara e inequívoca en lenguaje natural más rápido de lo que los desarrolladores senior pueden expresar esos requisitos en código.
¿En el mundo real? Sí, GenAI puede crear código basado en lo que usted le dice que quiere. Pero se obtiene la mayor productividad al utilizar GenAI para las tareas en las que las computadoras sobresalen: realizar tareas repetitivas y estrechamente definidas, liberando así el esfuerzo humano para cosas que requieren reflexión.
Además, el uso de GenAI no permite abandonar los lenguajes de programación ni el diseño de sistemas. Significa que necesitas agregar una nueva habilidad: ingeniería rápida . Necesita saber cuándo y cómo pedirle a un LLM que reescriba el código para hacerlo más rápido o más seguro. Debe iterar solicitudes para analizar problemas complejos. Se trata de todo un conjunto de conocimientos que aún no se han desarrollado por completo.
Así que no espere que GenAI escriba una aplicación compleja desde un solo mensaje y que funcione perfectamente en el primer intento. Si bien los LLM son útiles y poderosos, es necesario que aprendas cómo usarlos bien. Se necesita práctica.
Concepto erróneo: GenAI puede crear la aplicación completa por usted.
Ciertamente, puede utilizar GenAI para escribir el código de una aplicación estándar y mundana. Es bueno para generar código basado en patrones y ejemplos: el tipo de software que eliminas regularmente, solo que con valores diferentes.
Para muchos desarrolladores, GenAI es un asistente de investigación rápido y útil que sugiere soluciones potenciales o un autocompletado que tiene en cuenta el contexto en el que se está trabajando. Eso ciertamente respalda la promesa de una productividad mejorada, lo cual es admirable. A por ello.
Sin embargo, si bien puede usar GenAI para generar un montón de nuevos componentes de React o generar archivos de configuración estándar de Apache, no es ahí donde los desarrolladores pasan la mayor parte de su tiempo. Las piezas importantes están entre la maleza, lo que (al menos hoy en día) requiere el conocimiento de un sistema completo. No espere que ningún sistema GenAI comprenda el contexto y la intención detrás del código.
Además, si bien la GenAI puede encontrar soluciones potenciales más rápido que los humanos, no puede juzgar la idoneidad o la calidad de esas soluciones. Espere que las aplicaciones GenAI no sean adecuadas para problemas novedosos o no convencionales que requieren creatividad.
Un ser humano podría preguntarle a otro: mientras estás ocupado escribiendo más y más código, ¿te estás tomando el tiempo suficiente para preguntarte si estás creando lo correcto? Una GenAI no lo hará. Los programadores humanos aportan intuición, perspicacia e imaginación, que la IA no puede (¿todavía?) replicar.
Concepto erróneo: la calidad del código de GenAI es aceptable sin ajustes.
La mayoría de estas herramientas se centran en escribir código. Pero la generación de código es sólo el primer paso.
Con diferencia, la mayor preocupación de los desarrolladores con GenAI es la calidad del código que emite. La supervisión e intervención humana son cruciales para garantizar su calidad, seguridad y confiabilidad. ¿Es correcto el código generado? ¿Fue correcto el código de entrada de entrenamiento? ¿La IA entendió lo que preguntabas? ¿Especificaste el problema correctamente, con todas las condiciones de contorno?
Ese código debe mantenerse. ¿Pero por quién? ¿Quién lo entiende?
Los desarrolladores senior ya miran el código bastante cercano generado por alguien (ya sea de un libro de Patrones de diseño , un proyecto anterior o Stack Overflow), lo corrigen según lo que necesitan y ganan productividad con ello. Apenas se dan cuenta de que lo están haciendo. Un desarrollador junior carece de la experiencia o la confianza para saber qué es lo que hay que corregir y… eso no termina bien.
GenAI puede crear un código que funcione sorprendentemente bien, pero ese código es similar al estilo de código de ejemplo que utilizan los redactores de tecnología. El código generado no aprovecha la modularización, tiene pocas (si es que tiene alguna) funciones, se basa en un control imperativo en lugar de funciones de nivel superior, no utiliza características organizativas o de nomenclatura, etc. Los desarrolladores, especialmente los desarrolladores junior, piensan que “funciona” (o, peor aún, “funciona en mi máquina” o “funciona si se llama correctamente”) es el final del trabajo. La calidad del código es iterativa.
El código generado puede contener vulnerabilidades, errores o ineficiencias que requieren revisión y pruebas humanas. Depender únicamente de la IA para la generación de código sin pruebas rigurosas y procesos de control de calidad puede generar software poco confiable.
Peor aún, puede generar una falsa confianza en el código generado. Por ejemplo, algunos estudios académicos sugieren que los desarrolladores que utilizan asistentes de IA escriben código menos seguro .
Antes de que GenAI pueda ser tratado como confiable (y una verdadera mejora de la productividad), necesita generar planes de prueba y crear pruebas para demostrar la exactitud de sus soluciones (en cualquier medida que las pruebas lo logren). Pero hoy, un desarrollador debe decidir si las soluciones que presenta son viables.
Concepto erróneo: se puede confiar implícitamente en la cosecha actual de herramientas.
Todos los aduladores: “¡Adopte GenAI ahora!” Las historias dan por sentado que las herramientas son “suficientemente buenas”. Esa percepción hace que todos se sientan decepcionados.
Recuerde: esto es nuevo. Cuando usas GenAI hoy estás usando Mosaic en 1994 . Espere que el campo mejore rápidamente. Pero no espere que las herramientas lo hagan todo o lo hagan bien.
Más allá de las cuestiones técnicas, quedan muchas incertidumbres por abordar.
Una preocupación son los datos de entrenamiento. Los modelos de IA generativa requieren grandes cantidades de datos de entrenamiento de alta calidad para funcionar de manera efectiva, y esos datos deben actualizarse periódicamente. La industria tampoco ha resuelto aún si los sesgos y las limitaciones en los datos de entrenamiento pueden manifestarse en el código generado.
Otra cuestión son las implicaciones éticas y legales de la IA y la supervisión gubernamental que puede derivarse. De actualidad es la Ley de IA de la UE , la primera regulación integral sobre IA propuesta por un importante regulador. . La productividad de los desarrolladores puede verse obstaculizada por la necesidad de trabajar con abogados para abordar la privacidad de los datos, los derechos de propiedad intelectual y sus posibles consecuencias no deseadas.
Concepto erróneo: la productividad de los desarrolladores se disparará instantáneamente.
Todos esos artículos apasionantes que promocionan GenAI para el desarrollo de aplicaciones sugieren que la integración mágica del código generado dará como resultado aumentos de productividad a largo plazo.
Eso hace una diferencia. Pero establezca sus expectativas sobre “cuánto” en un escenario del mundo real. Según la encuesta de Evans Data, el 87% de los desarrolladores que han utilizado GenAI ven un impacto positivo en el cronograma de desarrollo de su proyecto. El veintidós por ciento dice que GenAI redujo el tiempo que dedicaban en más de un 20%. Seguramente se trata de una mejora saludable.
Sin embargo, con demasiados ensayos, la premisa es que la productividad de alguien se mide por la velocidad de generación de código. Como si escribir fuera el cuello de botella y lo único que necesita un desarrollador es una forma de escribir más rápido. Más código no sugiere más valor.
Concepto erróneo: GenAI será tan bueno que no serán necesarios desarrolladores.
Cada innovación tecnológica va acompañada de advertencias de que reemplazará a los desarrolladores o al personal de TI. GenAI es el último en hacer esa promesa.
Algunas personas se toman en serio las advertencias. Según la encuesta de Evans Data, el 28% de los desarrolladores están extremadamente preocupados de que la IA y el aprendizaje automático puedan eventualmente dejarlos sin trabajo, y el 46% está muy preocupado.
Eso significa que una cuarta parte de los desarrolladores no están especialmente preocupados por el efecto de GenAI en sus carreras. Sus razones principales hacen eco de los sentimientos discutidos aquí: sus trabajos requieren una creatividad que la IA nunca tendrá (34%), la IA sólo puede hacer aquello para lo que está entrenada y se le dice que haga (25%), y el desarrollador espera jubilarse antes de que la IA se convierta en una factor (13%).
La industria informática advierte periódicamente a los desarrolladores que una nueva tecnología eliminará sus puestos de trabajo. Por lo general, cambia su papel hacia un tipo diferente de productividad. “GenAI simplemente permitirá a los desarrolladores producir más”, explicó un desarrollador. “ Nunca he visto a una empresa de software quedarse sin trabajo para los desarrolladores; siempre hay ‘deuda técnica’”.
Espere mejoras en la productividad, no magia.
Comprender estos conceptos erróneos es esencial para adoptar herramientas de IA generativa de manera efectiva y responsable en los flujos de trabajo de programación. La tasa de mejora en los modelos es vertiginosa, las herramientas GenAI están escalando linealmente y no hay razón para pensar que las arquitecturas están cerca de los límites de rendimiento teóricos o estructurales.
GenAI tiene el potencial de mejorar la productividad y la innovación en el desarrollo de software, pero es crucial reconocer sus limitaciones y abordar los desafíos asociados de manera proactiva.