paint-brush
IA en el desarrollo de software: exploración de GitHub Copilot con información del equipo de I+D de ELEKSpor@elekssoftware
551 lecturas
551 lecturas

IA en el desarrollo de software: exploración de GitHub Copilot con información del equipo de I+D de ELEKS

por ELEKS6m2024/02/06
Read on Terminal Reader

Demasiado Largo; Para Leer

Descubra el papel de la IA en el desarrollo de software mientras ELEKS explora las capacidades innovadoras de GitHub Copilot.
featured image - IA en el desarrollo de software: exploración de GitHub Copilot con información del equipo de I+D de ELEKS
ELEKS HackerNoon profile picture
0-item
1-item

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.

¿Qué es el copiloto de GitHub?

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:

  • Código de estudio visual
  • Estudio visual
  • Neovim
  • todos los IDE de JetBrains

Descripción general de la investigación del GitHub Copilot de ELEKS

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.
Para evaluar la calidad de la solución back-end, un experto de Symfony participó en una revisión del código. El experto también desarrolló una estructura de proyecto básica que iba más allá de lo típico y se utilizó en un gran proyecto comercial.

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.



Hallazgos clave de la investigación GitHub Copilot de ELEKS

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.

El GitHub Copilot tiene dos modos de funcionamiento:

  1. Modo de autocompletar código: casi siempre afecta positivamente el rendimiento.
  2. Modo de generación de código basado en un comentario con un mensaje: funciona bien sólo para estructuras de código típicas. Puede resultar contraproducente a la hora de generar lógica de negocio o soluciones atípicas porque analizar las variantes de código propuestas lleva mucho tiempo.

La calidad de las sugerencias de código de GitHub Copilot depende de lo siguiente:

  • Popularidad de la pila tecnológica seleccionada en los repositorios públicos. Cuanto más popular sea la tecnología o el lenguaje, mayor será la calidad de las sugerencias de GitHub Copilot.
  • Estructura del código y arquitectura de la aplicación. Cuanto más típica sea su solución, más sugerencias efectivas proporcionará GitHub Copilot. Esto se nota especialmente al inicio del desarrollo del proyecto.

Otras ventajas de GitHub Copilot:

  • Con el tiempo, la calidad de las sugerencias de código aumenta. GitHub Copilot aprende y se adapta a la estructura del proyecto, el estilo del código y los enfoques típicos de las soluciones técnicas del proyecto.
  • Influye positivamente en la satisfacción laboral de los desarrolladores. GitHub Copilot asume una parte de las tareas rutinarias, típicas y aburridas. La proporción entre el desarrollo de tareas interesantes y rutinarias cambia, lo que aumenta la comodidad de los desarrolladores.

Hallazgos generales del equipo:

  • La herramienta no mostró ningún impacto en la calidad del código, ni positivo ni negativo. Creemos que, por ahora, no puede reemplazar el proceso de revisión de código, las pruebas de código manuales realizadas por el desarrollador, la ejecución de pruebas automáticas, las pruebas de seguridad, etc.
  • La eficacia depende de la competencia del desarrollador en la pila tecnológica determinada. Cuanto mejores sean las habilidades del desarrollador, más eficaz resultará ser esta herramienta.
  • El valor de GitHub Copilot para aprender nuevas tecnologías es muy dudoso.
  • El equipo tuvo la impresión de que las sugerencias de código mejoran si todos los archivos relacionados con el código están abiertos en el IDE.
  • Como cualquier otra herramienta, GitHub Copilot requiere ciertas habilidades. Cuanto más practicaba el equipo, más comentarios positivos recibía.
  • Los comentarios sobre el aumento del rendimiento varían según la pila tecnológica, el nivel de competencia del especialista y razones subjetivas.


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.

Conclusiones

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í .