La IA está revolucionando el desarrollo de software, haciéndolo más eficiente, productivo e innovador. En este artículo, exploramos el impacto de la IA en el desarrollo de software, profundizando en los conocimientos adquiridos a partir de nuestra investigación de GitHub Copilot realizada por el equipo de I+D de ELEKS.
A medida que el mundo del desarrollo de software continúa evolucionando, el papel de la IA se ha vuelto cada vez más importante. Con beneficios como la capacidad de reducir el tiempo y el esfuerzo necesarios para la codificación y más, no es de extrañar que la IA en el desarrollo de software sea un tema candente hoy en día.
El 92% de los desarrolladores con sede en EE. UU. ya utilizan herramientas de codificación de IA tanto en el trabajo como fuera de él. -GitHub
El 70% de los desarrolladores cree que las herramientas de codificación de IA les brindarán una ventaja distintiva en sus esfuerzos profesionales, incluida una mejor calidad del código, un tiempo de finalización reducido y capacidades mejoradas de resolución de incidentes. -GitHub
4 de cada 5 desarrolladores esperan que las herramientas de codificación de IA hagan que su equipo sea más colaborativo. -GitHub
Aunque la IA no ha alcanzado una etapa en la que pueda crear, probar y lanzar productos de software de forma independiente sin intervención humana, en comparación con el pasado, ha acelerado enormemente el tiempo de respuesta general.
Hay muchas herramientas basadas en IA disponibles que pueden ayudar a desarrollar aplicaciones personalizadas generando y autocompletando código, así como detectando y corrigiendo errores. El equipo de Investigación y Desarrollo de ELEKS evaluó minuciosamente una de esas herramientas, GitHub Copilot, para evaluar su influencia en las tareas de los desarrolladores, la duración de su finalización y los estándares de calidad de las recomendaciones proporcionadas. Miremos más de cerca.
GitHub Copilot es una herramienta para la generación y autocompletado de código. Está construido sobre la base de OpenAI Codex y entrenado en repositorios públicos de GitHub. Como resultado, sugiere código para cualquier lenguaje de programación. Sin embargo, la calidad de las propuestas depende de la cantidad de repositorios públicos que se basan en un lenguaje y marco de programación específicos.
GitHub Copilot trabaja con código de programa utilizando complementos del Entorno de desarrollo integrado (IDE). Actualmente solo se admiten los siguientes IDE:
Esta investigación tuvo como objetivo explorar el impacto del uso de Copilot tanto en la velocidad como en la calidad del desarrollo.
Para realizar este estudio, se inició un pequeño proyecto favorito como campo de prueba para varias suposiciones. Con un equipo compuesto por cuatro desarrolladores intermedios capacitados y con experiencia en React, Redux, TypeScript, Jest, Vite, PHP, Symfony y Codeception, comenzamos la investigación y definimos nuestros objetivos y enfoques de la siguiente manera.
Meta | Acercarse |
---|---|
Evaluar la dependencia entre la competencia y el rendimiento del desarrollador al utilizar Copilot | Seleccionamos el marco Symfony para el desarrollo back-end. El equipo de back-end no tenía experiencia sustancial con este marco. |
Investigar el impacto en las tareas típicas de los desarrolladores | Antes de que comenzara el proyecto, creamos una WBS que cubría el trabajo típico de un desarrollador en un proyecto comercial. Además, realizamos una sesión de estimación de tareas. |
Investigar el impacto en los lenguajes y marcos de programación por popularidad. | Desarrollamos una aplicación web con cobertura de prueba. |
Evaluar el impacto en el tiempo de finalización de la tarea. | Hicimos una estimación preliminar de las tareas individuales del proyecto. |
Mejorar la eficacia de la investigación. | Realizamos sesiones de intercambio de conocimientos dentro del equipo durante las sincronizaciones diarias. |
Explora la calidad de las sugerencias. | Probamos cómo Copilot maneja una estructura de proyecto no clásica y más compleja. |
La investigación de ELEKS sobre GitHub Copilot arrojó varios hallazgos clave que arrojan luz sobre las capacidades y beneficios de la herramienta. Aquí hay una descripción más detallada:
Tenga en cuenta que los resultados de la investigación se basan en los comentarios subjetivos del equipo, las observaciones de su trabajo y las revisiones de código de sus soluciones.
Entre un 5% y un 10% del aumento promedio en la productividad de los miembros del equipo. - Equipo de I+D de ELEKS
Como nota al margen, durante el proyecto, el equipo encontró varios errores en GitHub Copilot. Por ejemplo, Copilot propuso sugerencias de código basadas en el código de otro proyecto abierto en otra ventana del IDE. Ofrecía código sintácticamente incorrecto. Copilot entra en conflicto con las características de algunos complementos (integrados o agregados por un tercero) que también tienen una función de autocompletado de código.
GitHub Copilot es una herramienta poderosa que impacta positivamente la velocidad de desarrollo y la satisfacción laboral de los desarrolladores. Como cualquier otra herramienta de desarrollo, se necesita tiempo para dominarla.
En este punto, una licencia mensual individual cuesta sólo $10, mientras que el plan de negocios tiene un precio de $19 por mes. Sin duda, GitHub Copilot será financieramente beneficioso para su uso en los proyectos, especialmente para los especialistas de nivel de competencia medio y superior.
El equipo predice que con el aumento de la experiencia en el uso de GitHub Copilot, la velocidad de desarrollo puede aumentar entre un 5% y un 25%, dependiendo de la popularidad de la tecnología y el nivel de competencia del desarrollador. Se garantiza que GitHub Copilot no ralentizará el desarrollo porque los desarrolladores obtendrán gradualmente la experiencia y la comprensión de cuándo es beneficioso utilizar la herramienta y cuándo no.
En conclusión, el impacto de la IA en el desarrollo de software, ejemplificado por herramientas como GitHub Copilot, es innegable. En general, herramientas como GitHub Copilot no pueden reemplazar a un desarrollador, pero sirven como herramientas valiosas para mejorar la comodidad y la productividad de los desarrolladores, contribuyendo a la evolución del desarrollo de software en un mundo cada vez más impulsado por la IA.
Abra el camino hacia un proceso de desarrollo de software eficiente y resultados exitosos, comuníquese con los expertos de ELEKS .
También publicado aquí .