GitHub Copilot: Prueba piloto y resultados iniciales
Copilot es una de las grandes apuestas de Microsoft en el campo de las herramientas empresariales de IA generativa.
Para poner a prueba sus resultados reales en empresas, en Plain Concepts hemos decidido realizar una prueba piloto en un grupo reducido de empleados, pero que empieza a presentar unas primeras conclusiones interesantes que pasaremos a corroborar en las siguientes fases del análisis . ¡Aquí los primeros pasos!
Introducción a Copilot
GitHub Copilot actúa como un asistente inteligente diseñado para ayudar a los desarrolladores a crear código. Funciona mediante el autocompletado, es decir, cuando un usuario comienza a escribir código, GitHub Copilot realiza sugerencias sobre cómo se vería ese código completo.
Funciona mediante el lenguaje LLM desarrollado por OpenAI, combinando las principales funciones de ChatGPT y opciones relacionadas con buscar información en la red. Esto también le permite ir evolucionando y actualizando las respuestas.
Una de las grandes promesas de este asistente es proporcionar asistencia inteligente en tiempo real, lo que permite a los usuarios mejorar su creatividad, productividad y capacidades. ¡Veamos cómo está funcionando!
Poniendo a prueba GitHub Copilot
En la prueba realizada sobre el impacto de GitHub Copilot en el grupo experimental de Plain Concepts, hemos creado 4 grupos diferenciados:
- Tecnología no habitual: Proyectos donde trabajamos con tecnologías que no son las habituales en Plain Concepts y que suponen un reto para nosotros por falta de experiencia en las mismas.
- Proyecto de largo plazo con un equipo estable y tecnologías conocidas: La clave en estos proyectos es que tenemos métricas objetivas ya existentes con las que comparar el antes y el después de la utilización de GitHub Copilot. Más adelante detallaremos qué tipo de métricas.
- Personas con poca experiencia: Personas con poca experiencia laboral que precisan de acompañamiento habitual por parte de perfiles más experimentados. Los perfiles han estado supervisados por compañeros más experimentados durante el experimento para ayudarnos a validar el resultado.
- Personas en cuyo criterio confiamos: Personas que llevan mucho tiempo con nosotros y han demostrado tener un buen juicio en sucesivas ocasiones en diversos escenarios.
Poniendo en marcha el experimento
Para esta primera fase del experimento se han repartido 12 personas en los cuatro grupos mencionados. Para ello, se ha buscado que haya representación de múltiples unidades de la empresa, así como de las áreas de trabajo principales (Web and Mobile Enterprise Application Development, Data & Analytics y Artificial Intelligence).
Las métricas medidas han sido las siguientes:
- De carácter más objetivo:
- Velocity
- Lead Time
- Cycle Time
- Code Coverage
- Error Rates
- Versatility
- Time required from more experienced profiles.
- Defect Density
- De carácter más subjetivo:
- Ser capaces de ejecutar con éxito un proyecto que nos habría supuesto un reto por trabajar con tecnologías donde no tenemos experiencia
- Tiempo requerido de perfiles con más experiencia
- Tiempo requerido para arrancar proyectos con los mínimos de calidad técnica en las tecnologías habituales
- Calidad técnica en las áreas más novedosas, como la AI
Los participantes de la primera fase del experimento de GitHub Copilot han recibido una formación, con el objetivo de que entiendan los casos de uso, cómo utilizarlo, etcétera. Por ello, al terminar esta sesión, GitHub Copilot no debía ser algo nuevo para las personas participantes, y debían ser capaces de sacarle todo el partido posible.
la idea es ir extendiendo el experimento para sacar nuevas métricas y casos de uso, si los hubiera, para conseguir una implementación gradual y constante.
Primeras conclusiones generales
Después de analizar los resultados de esta primera prueba piloto, las conclusiones que hemos podido sacar es que las áreas donde se ha demostrado que GitHub Copilot tiene un impacto positivo:
- Proyectos con tecnologías desconocidas (distintas a nuestro stack tecnológico habitual)
- Niveles de experiencia más mid, incluyendo proyectos con nuestro stack habitual (C#, TypeScript)
- Mejora en versatilidad, autonomía y calidad
- Áreas de Inteligencia Artificial y Datos y Analítica.
- En general, mejora en la métricas de «Error Rates» y «Defect Density»
Principales beneficios destacados en el uso de GitHub Copilot
Teniendo como referencia un artículo de Arxiv, la conclusión principal del mismo es que el 55,8% de los programadores participantes en el estudio completaron las tareas más rápido que el grupo de control. Por ello, los efectos heterogéneos observados son prometedores para que los developers que usen herramientas de IA ayuden a las personas a hacer la transición a las carreras de desarrollo de software.
En cuanto a nuestra prueba, hemos detectado los siguientes beneficios:
- Mayor velocidad de desarrollo: se reconoce que GitHub Copilot ayuda, en varios casos, a acelerar el proceso de desarrollo de software.
- Reducción de errores: Varios participantes mencionan que GitHub Copilot ayuda a reducir errores y defectos en el código generado.
- Incremento de la autonomía del desarrollador: Se destaca que GitHub Copilot permite a los desarrolladores trabajar de manera más independiente y con menor necesidad de ayuda externa.
- Mejora en la calidad del código: La herramienta facilita la escritura de código más limpio y legible, lo que contribuye a una mayor calidad del software.
- Optimización de la documentación y los comentarios: Algunos resaltan que GitHub Copilot ayuda en la generación de documentación y comentarios en el código, agilizando este proceso.
- Aumento en la versatilidad y autonomía del desarrollador: Se menciona que GitHub Copilot permite a los desarrolladores abordar una variedad más amplia de tareas y trabajar en diferentes áreas sin problemas.
Lenguajes de programación para los que ha sido útil
- Python
- FastAPI
- Android
- Jetpack Compose
- Integraciones personalizadas (contexto React Native)
- iOS
- Objetive-C (contexto React Native)
- Swift (contexto React Native)
- PowerShell
- JavaScript
- TypeScript
- React Native
- React
- HTML
- CSS
- SQL
- Bash
- C#
- Go
- Scala
Áreas y proyectos en los que hemos podido mejorar la calidad de la entrega gracias a GitHub Copilot
- Inteligencia artificial (AI):
- La calidad del código ha sido mejorada. Podemos comparar la calidad del código antes y después del uso de Copilot, y podemos ver que los datos mejoran. El nombramiento de las variables, funciones, clases, etc., ha sido mejorado. Se incrementaron las pruebas automatizadas y se mejoró la cobertura. La documentación ha sido ampliada con ejemplos y comentarios que se ajustan al contexto.
- El experimento sigue las mejores prácticas y estándares propuestos por Plain Concepts , y que usando GitHub Copilot ha sido de gran ayuda para seguir las mejores prácticas y estándares propuestos.
- Data & Analytics:
- Optimización de los procesos que leen y escriben datos.
- Creación de pruebas unitarias en Data y Analytics, un campo en el que ahora se ha visto mejorada la calidad.
Próximos pasos
Durante los próximos meses nos gustaría ampliar el experimento a un grupo mayor de empleados para sacar conclusiones más claras de dónde GitHub Copilot es más útil y en qué áreas puede mejorar de forma significativa los resultados.
Además, si necesitas contar con un partner para descubrir todo el potencial de GitHub Copilot desde Plain Concepts te lo ponemos fácil.
- Somos el primer partner en España acreditado por GitHub.
- Llevamos más de 17 años trabajando en la cultura Agile referente en la comunidad DevOps.
- Contamos con un equipo especializado compuesto por más de 350 ingenieros senior en App Innovation y DevOps.
- Acreditados como AMMP.
- DevSecOps con MVPs.
Además, no nos quedamos en las certificaciones y te ofrecemos un exclusivo GitHub Adoption Framework para que encuentres el servicio que mejor se ajuste a tus necesidades, de la mano de los mejores expertos. ¡Contáctanos para saber más!