¿ChatGPT reemplazará a los desarrolladores de software? ¿O hará que sus trabajos sean más agradables al hacer el trabajo pesado cuando se trata de escribir código repetitivo, depurar y probar? David Adams habla con los desarrolladores que ya usan ChatGPT
En medio de toda la cobertura de las extrañas ya veces alarmantes capacidades de ChatGPT, se ha prestado menos atención a sus usos potenciales en el desarrollo de software. Sin embargo, esta puede convertirse en una de sus aplicaciones más significativas desde el punto de vista social y comercial, si los desarrolladores comprenden y mitigan los riesgos que podría crear.
Muchos desarrolladores ya están utilizando ChatGPT como una especie de asistente de investigación, una fuente de fragmentos de código útiles; y/o una herramienta de depuración o prueba. Muchos también usan la herramienta de codificación Copilot de GitHub para fines similares, pero la capacidad de ChatGPT para responder a las solicitudes de conversación aumenta su valor para los desarrolladores.
Peter Zentai, CTO de la empresa de desarrollo de software OneBeyond , dice que está «impresionado por OpenAI y GPT». “Puede sugerir un mejor método y eso te ayuda a aprender”, explica. «También es bueno para documentar la funcionalidad [del código]». Y dondequiera que se use en el desarrollo, “le da un impulso a la productividad”.
Pero los desarrolladores también reconocen la necesidad de mantener la supervisión humana. John Smith, CTO, EMEA en la empresa de seguridad de aplicaciones Veracode , describe el uso de ChatGPT para ayudar a escribir una herramienta para respaldar una demostración de cliente.
“Volvió con un código que pude tomar y modificar”, recuerda. «Sin él, es casi seguro que habría encontrado a alguien en Stack Overflow con una respuesta, pero creo que ChatGPT brindó contenido más útil: no solo me dio el código, sino que describió cómo funcionaba el código».
Una segunda consulta también generó una respuesta útil, pero una tercera pregunta, sobre la automatización de la actividad dentro de una plataforma DevOps, reveló las limitaciones del modelo. “Tenía una buena respuesta, pero no me dijo que una vez que le ha pedido a la plataforma DevOps que cree un objeto, debe preguntar regularmente si ha creado el objeto. Sabía por experiencia que si no lo haces, sigue adelante y trata de usarlo a veces, obtendrás un error impredecible.
“Para mí, eso destaca lo bueno y lo malo de ChatGPT”, continúa. “Si puede ver que la respuesta no funciona del todo, entonces puede [corregirla]. El desafío surge cuando esos errores son más sutiles”. Por esta razón, dice, los desarrolladores nunca deben “confiar ciegamente” en el modelo.
Podría decirse que esto es aún más importante si ChatGPT se usa para depurar o probar software, dice Dave Colwell, vicepresidente de inteligencia artificial y aprendizaje automático de la empresa de pruebas de software automatizadas Tricentis .
“La IA generativa se puede usar para escribir casos de prueba de software básicos o identificar brechas en los requisitos de prueba”, dice. “Pero nuestra experiencia con el uso de ChatGPT hasta ahora es que se puede comparar con una persona muy confiada, pero a veces equivocada, en un concurso de pub. Siempre debe verificarse dos veces con el conocimiento existente. Recientemente, le encomendamos la reescritura de un algoritmo simple en C#, utilizando la numeración vectorial, un método para acelerar el algoritmo mediante la paralelización de datos en la CPU. El algoritmo se veía bien y era muy rápido. Pero supuso que los vectores tenían una longitud fija, mientras que eso solo era cierto en algunas circunstancias. Esto causó un montón de errores insidiosos y difíciles de encontrar”.
Riesgos de seguridad de ChatGPT
También existe cierto debate sobre la medida en que el uso de ChatGPT puede crear riesgos de seguridad. En marzo de 2023, OpenAI desconectó ChatGPT temporalmente, luego de la detección de una violación de datos causada por un error en una biblioteca de código abierto. En una publicación de blog publicada unos días después, OpenAI admitió que el incidente pudo haber causado «visibilidad involuntaria de la información relacionada con el pago» de una pequeña cantidad de usuarios; y que era «posible que el primer mensaje de una conversación recién creada fuera visible en el historial de chat de otra persona si ambos usuarios estaban activos al mismo tiempo».
El potencial de este último tipo de vulnerabilidad preocupa a Smith. “Eso podría haber sido una filtración de propiedad intelectual”, dice. El problema que se enfrenta al tratar de asegurar ChatGPT, sugiere, es que un atacante no “necesita atacar la IA; [ellos] necesitan atacar cómo se accede”.
Pero ChatGPT también podría ayudar a los desarrolladores a mejorar la seguridad del software, argumenta Jason Kent, hacker residente en Cequence Security. Ha escrito una publicación de blog, ChatGPT y API Security | Seguridad con Open AI, destacando la forma en que ChatGPT podría usarse para depurar o encontrar fallas de seguridad en las API, por ejemplo.
Riesgos legales de ChatGPT
Los desarrolladores también deben monitorear los riesgos legales. Actualmente, GitHub Copilot es objeto de una demanda colectiva en los EE. UU., relacionada con la concesión de licencias y la autoría original del código fuente abierto en el que se basa. «Dependiendo del resultado… los desarrolladores de software en el Reino Unido y en otros lugares podrían encontrarse en el extremo receptor de acciones legales similares presentadas por los desarrolladores del código fuente abierto original utilizado para entrenar a Copilot o ChatGPT», advierte Karl Barnfather, socio y patente. abogado en el bufete de abogados Withers & Rogers .
Pero el temor perenne sobre la nueva IA aún no parece aplicarse: ChatGPT no reemplazará a los desarrolladores de software. En cambio, podría hacer que sus trabajos fueran más agradables, absorbiendo o acelerando partes aburridas del rol, como escribir código repetitivo, depurar o probar.
Vadym Novakovskyi, ingeniero sénior de software Java en Sony Europa y tutor en la plataforma de educación en línea CodeGYM , teme que ChatGPT pueda eliminar partes de los trabajos de algunos desarrolladores junior, al tiempo que aumenta las responsabilidades de los desarrolladores senior. “Ya tenemos el problema de que no hay suficientes desarrolladores en el mundo; creo que este problema empeorará”, dice.
Nick Durkin, CTO de la empresa de plataformas de entrega de software Harness , es más optimista. “Cuando se usa correctamente, la IA generativa tiene el poder de hacer grandes a los buenos desarrolladores”, afirma. “Para los desarrolladores con menos experiencia, la colaboración con IA aumenta lo que pueden lograr”.
Pero ya sea que ChatGPT se convierta en un pilar del panorama tecnológico o en una nota a pie de página en la historia de la tecnología, lo que es seguro es que la IA generativa seguirá mejorando, dice Colwell. “En un futuro cercano, veremos que la IA generativa podrá expresar su nivel de confianza o hacer preguntas de seguimiento, lo que aumentará la probabilidad de mejorar su resultado”, predice. A medida que evolucionan estas capacidades, sugiere que «su capacidad de ser ‘humano’, sin la supervisión de un experto, es inevitable».
Hasta entonces, estas tecnologías pueden ser de gran ayuda para el desarrollo de software. Y para cuando lleguemos a ese punto, ¿quién sabe qué más podrá hacer la IA generativa? Su impacto en los procesos de desarrollo de software puede ser entonces la menor de nuestras preocupaciones…