GitHub Copilot: Millora la velocitat de desenvolupament

En aquest article, explorarem com GitHub Copilot, una potent eina d’intel·ligència artificial, està transformant el desenvolupament d’aplicacions. El desenvolupament d’aplicacions sempre ha tingut una faceta artística o creativa, especialment en funcionalitats complexes. No obstant això, també inclou seccions repetitives i funcionalitats bàsiques que requereixen menys esforç, però han de completar-se com la resta del projecte. Gràcies a l’aparició d’intel·ligències artificials més potents i capaces de realitzar anàlisis més profunds, GitHub Copilot permet combinar el desenvolupament amb la IA per millorar els temps i facilitar la feina.
Què és GitHub Copilot?
GitHub és un dels portals més importants del món per compartir codi obert i va ser adquirit per Microsoft el 2018. Com a part del seu impuls cap a noves solucions d’intel·ligència artificial, Microsoft ha desenvolupat GitHub Copilot.
GitHub Copilot es basa en Codex, un nou sistema d’IA creat per OpenAI, la mateixa organització darrere de GPT-3, la base de ChatGPT. No obstant això, en aquest cas, Codex està entrenat exclusivament en codi per a desenvolupaments. Es basa en el codi disponible a GitHub.
GitHub Copilot és una IA dissenyada per a programadors. Proposa codi basat en el projecte actual i el text introduït en iniciar el desenvolupament, com ara comentaris o noms de classes o funcions. Aquest servei és de pagament, amb una tarifa de 10 €/mes per a usuaris particulars. I 19 €/mes per usuari per a empreses. No obstant això, ofereix un període de prova gratuït de 2 mesos.

Com funciona GitHub Copilot?
Un cop contractat, Copilot funciona mitjançant un connector o extensió que s’afegeix a l’IDE utilitzat per al desenvolupament, amb suport per a la majoria dels principals IDE actuals. Per exemple, en Visual Studio, caldria afegir l’extensió de GitHub Copilot.

Un cop afegida l’extensió, s’ha d’iniciar sessió amb un compte de GitHub que tingui activada la subscripció de Copilot. Després de l’inici de sessió, Copilot analitza el codi del projecte actual i, posteriorment, el connector pot generar codi de proposta completament nou, sense copiar-lo d’altres llocs. En funció de cada cas, pot proposar diverses alternatives addicionals per triar.
El programador ha de revisar aquest codi proposat per verificar si s’ajusta al que realment vol aconseguir. Llavors, pot acceptar o rebutjar el codi. En cas de rebuig, Copilot pot oferir noves solucions. A mesura que avança el projecte, Copilot aprèn i millora les propostes presentades.

Les extensions solen permetre habilitar o deshabilitar Copilot. Si es desactiva, preguntarà si es vol desactivar les suggeriments de forma global o només per al llenguatge de l’arxiu que s’està editant actualment.

Amb quins llenguatges puc utilitzar Copilot?
Tot i que Copilot ha estat entrenat en molts tipus de llenguatges, funciona especialment bé per a Python, JavaScript, TypeScript, Ruby, Go, C# i C++. Donada la naturalesa de la IA, a mesura que realitza més prediccions i es accepta o rebutja el codi, Copilot aprèn més conceptes i pot proporcionar solucions més precises.

Actualment, Copilot també inclou mòduls específics per detectar patrons de codi insegur i evitar la introducció de vulnerabilitats.
Copilot és una tecnologia relativament nova. Tot i que el progrés és ràpid, encara necessita aprendre més. Per proposar cada vegada millor codi i que les seves propostes siguin més encertades. En tasques simples com noves classes i controladors, resulta molt encertat. Pot accelerar el desenvolupament. No obstant això, en tasques més complexes o en arreglar errors, potser encara no acabi de trobar solucions correctes.
En qualsevol cas, els desenvolupadors que l’han provat coincideixen que els permet centrar-se en tasques més motivadores i complexes. També els ajuda a ser més productius i estalviar temps en tasques repetitives i senzilles.
Prova pilot de Copilot a Itequia
A ITEQUIA, hem realitzat una prova pilot de Copilot amb un petit grup de 6 desenvolupadors. Aquest equip està format per persones que treballen en diferents projectes amb diferents tasques i llenguatges. Tot i que la majoria utilitzen .NET, React o Angular.
Durant la prova, es van anotar les tasques realitzades pel grup, juntament amb l’estimació inicial del temps que haurien d’haver pres i el temps real que es va trigar a completar-les. Els resultats mostren un percentatge d’estalvi de temps significatiu:
Mes | Percentatge d’estalvi de temps | Hores guanyades |
|---|---|---|
Març | 5% | 48 hores |
Abril | 2% | 19,2 hores |
Maig | 3,5% | 33,6 hores |
Juny | 8,7% | 83,52 hores |
Per entendre què representa aquest percentatge: Partint del fet que en un mes tenim aproximadament 160 hores per planificar per a cada desenvolupador. El percentatge d’estalvi de temps representa quantes d’aquestes 160 hores hem pogut estalviar en realitzar les tasques planejades utilitzant Copilot.
Comportaments en funció del tipus de desenvolupament
En general, hem pogut detectar dos tipus de comportaments en funció del tipus de desenvolupament:
- Projectes o funcionalitats totalment noves: En aquests casos, Copilot aconsegueix generar una gran quantitat de codi que facilita la feina. L’estructura general de la nova funcionalitat és generada automàticament i sense esforç. El desenvolupador només ha de polir-la i centrar-se en els casos més específics del negoci del client. Copilot també permet generar documentació de manera fàcil i ràpida i estalvia molt de temps.
- Projectes o funcionalitats ja existents que requereixen correccions o canvis: En aquests casos, Copilot resulta més limitat. Ajuda en el desenvolupament, però de manera similar a les opcions IntelliSense de VisualStudio. Es guanya temps, però és més difícil quantificar-ne el total. A vegades, proposa opcions que no són correctes i no resolen el problema.
Dins del grup de prova, a l’abril es van realitzar sobretot correccions i al juny hi ha hagut més desenvolupaments nous. També hem detectat que no tots els desenvolupadors han aconseguit donar-li ús. Això depèn del projecte en què treballen i de la informació donada a Copilot perquè generi codi. L’ús de Copilot, igual que qualsevol altra eina tecnològica, no sempre és trivial. Requereix un període d’adaptació i aprenentatge.
Exemple de les tasques realitzades i resultat:
Aquest és un petit exemple de les tasques realitzades i el resultat de les mateixes:
Llenguatge | Hores Estimades | Hores Reals |
|---|---|---|
C# | 12 Hores | 5 Hores |
C# | 2 Hores | 2 Hores |
YAML | 24 Hores | 12 Hores |
C# | 24 Hores | 4 Hores |
javascript | 3 Hores | 2,5 Hores |
javascript | 16 Hores | 12 Hores |
React TypeScript | 2 Hores | 2 Hores |
Reflexions sobre GitHub Copilot: Una eina potent amb espai per evolucionar
Copilot és una eina molt potent. Permet centrar-se en desenvolupaments complexos i ajudar en el desenvolupament més genèric i avorrit, aconseguint millors temps. Aquesta eina encara està en fases inicials. Necessita més temps per aprendre, millorar i proposar solucions correctes en tot cas.
Els desenvolupadors necessitaran un cert temps d’ajust per aprofitar-la bé. De moment, no sempre dóna resultats positius en qualsevol tasca. No obstant això, és clar que les avantatges en desenvolupaments nous són molt grans. Pot agilitzar molt les tasques inicials i els projectes.
Per utilitzar-la en correccions i solucions pot ser necessari més temps. També és important que segueixi evolucionant. No obstant això, les possibilitats que ofereix són molt bones i esperem guanyar temps mitjançant un ús adequat.
Estàs llest per portar el teu desenvolupament al següent nivell amb GitHub Copilot? Contacta’ns avui mateix per descobrir com aquesta potent IA pot beneficiar el teu equip i projectes! No perdis l’oportunitat de provar GitHub Copilot i experimentar la diferència en el teu flux de treball. Estem aquí per ajudar-te a aprofitar al màxim aquesta innovadora eina!