GITHUB COPILOT

GITHUB COPILOT. La maggior parte delle aziende IT sta valutando l’adozione di strumenti di programmazione assistita dall’intelligenza artificiale, con discussioni sul tavolo da parte degli sviluppatori che già da tempo si occupano dell’argomento (con alcuni che potenzialmente utilizzano una licenza personale per il loro lavoro). Tuttavia, ci sono alcune preoccupazioni riguardo alle perdite di proprietà intellettuale, soprattutto se le organizzazioni non utilizzano licenze aziendali o di impresa con gli strumenti di AI.

GitHub Copilot è uno strumento per “pair programming” assistito dall’intelligenza artificiale e addestrato su miliardi di righe di codice, per lo più provenienti da progetti open-source. Copilot trasforma le richieste in linguaggio naturale in suggerimenti di codifica in decine di lingue, suggerisce il completamento automatico del codice e fornisce altre funzionalità, come un chatbot (simile a ChatGPT).

Come per qualsiasi tecnologia, i team leader e gli scrum master esitano a introdurre possibili distrazioni a metà dello sviluppo o del rilascio. Raramente c’è un momento perfetto per aggiungere nuovi strumenti al processo di sviluppo, il che spesso richiede un approfondimento dei seguenti argomenti:

  • Quali cambiamenti apporta GITHUB COPILOT alla vita quotidiana dei professionisti del software?
  • Quali sono i rischi dell’utilizzo di Copilot e come possono essere mitigati?
  • Quali sono i vantaggi a breve e a lungo termine di questa nuova tecnologia?
  • In che modo Copilot cambia la vita quotidiana dei professionisti del software?


Copilot non è solo per gli sviluppatori di applicazioni. Chiunque lavori con il “codice” può utilizzarlo, ad esempio i data engineer o gli amministratori delle infrastrutture. I casi d’uso sono numerosi e le comunità di professionisti del software stanno solo iniziando a scoprire le opportunità offerte da Copilot. Queso strumento può anche aiutarci a comprendere il codice legacy o qualsiasi linguaggio con cui non abbiamo familiarità. La traduzione tra linguaggi di programmazione è un’area in cui è particolarmente potente.

Sulla base delle chiacchierate con colleghi del settore, diciamo che utilizzare strumenti assistiti dall’intelligenza artificiale per migliorare le modalità di lavoro esistenti. Copilot non è in grado di fornire soluzioni complete o di decodificare la logica aziendale da basi di codice esistenti. Tuttavia, il chatbot integrato nell’interfaccia utente di Copilot aggiunge capacità di progettazione della soluzione e di comprensione dell’impatto sull’utente finale. Gli sviluppatori di software non diventano architetti con questi nuovi strumenti, anche se la sensazione iniziale di forza è forte quando si utilizzano per la prima volta strumenti assistiti dall’intelligenza artificiale. Tutti i ruoli tradizionali dello sviluppo software sono necessari ora e in futuro.

Copilot eccelle nella creazione di “codice boilerplate” e nel ricordare sintassi complesse. Solo questo permetterà di dedicare diverse ore alla settimana a un lavoro più creativo. Non solo, ma la possibilità di creare uno scheletro per i test è assolutamente fondamentale per superare i momenti di sconforto della scrittura dei test per il codice. Nel caso ideale, si inizierà a dare forma agli scenari di test, implementando l’elusivo e potente sviluppo guidato dai test (TDD).

Su scala più ampia, il miglioramento della qualità è ancora più interessante dell’aumento della velocità, che è il focus principale quando si considerano gli strumenti assistiti dall’intelligenza artificiale. L’elaborazione di test a cui lo sviluppatore non avrebbe pensato migliora direttamente la qualità del prodotto. Inoltre, fornisce agli sviluppatori nuovi punti di vista sul prodotto in fase di sviluppo, nonché le loro nozioni sul significato di qualità e su come assicurarla.

Mitigare i possibili rischi derivanti dall’uso di strumenti assistiti dall’IA
Dal momento che si è improvvisamente in grado di completare le funzioni del codice in tempi record (e persino di scriverne i test contemporaneamente), la sensazione di onnipotenza potrebbe essere pericolosa. Questo è particolarmente vero quando, nella sicurezza del proprio angolo di repository, tutto sembra funzionare perfettamente e i test continuano a passare.

Un rischio reale è quello di non comprendere ciò che si sta facendo. Si possono accettare suggerimenti di codifica e test che implementano cose diverse da quelle di cui la soluzione ha bisogno. Non è utile creare qualcosa di veloce con una copertura di test sufficiente se il codice fa qualcosa di diverso da quello che ci si aspetta. A volte, Copilot fornisce soluzioni che sono semplicemente sbagliate. È facile rimanere bloccati in un loop nel tentativo di far funzionare un suggerimento quando l’approccio è sbagliato.

Le soluzioni assistite dall’intelligenza artificiale devono essere utilizzate in modo controllato. Linee guida ed esempi pertinenti all’azienda o all’organizzazione sono molto efficaci. Un recente studio di GitHub ha riportato che l’81% degli sviluppatori pensa che gli strumenti di IA li aiuteranno a collaborare meglio.

Quando gli sviluppatori meno esperti eseguono il commit del codice, è logico che un team leader controlli se abbiamo implementato la cosa giusta, confermi che i test siano sufficienti e si assicuri che lo sviluppatore sia pronto a spiegare il codice che ha creato agli altri quando necessario. Ognuno è responsabile del codice che scrive, anche se la maggior parte è prodotta da un assistente AI.

Alcune idee per evitare rischi:

  • Incollare la funzione di codice creata nel modulo di chat di Copilot e chiedergli di spiegarla in termini semplici.
  • Chiedere al chatbot di spiegare il codice “passo passo”. Spesso riassume le attività in modo molto efficace.
  • Chiedere al chatbot di suggerire test per il codice, compresi casi limite, test negativi o mocking.
  • Chiedere suggerimenti per migliorare lo stile del codice. Lo strumento molto probabilmente scriverà il codice migliorato in pratica, che potremo utilizzare e da cui potremo imparare.
  • Prendere un momento per pensare a nomi davvero buoni per i parametri delle proprie funzioni, in quanto Copilot in tal può capire meglio le nostre intenzioni.
  • Contattare una persona in carne e ossa per illustrare qualsiasi parte importante del nostro lavoro e il modo in cui abbiamo utilizzato gli strumenti assistiti dall’intelligenza artificiale per crearlo prima di utilizzarlo.


In generale, la nostra esperienza ci dice che gli ingegneri e tecnici senior possono utilizzare Copilot senza bisogno di presentazioni o di un supporto esterno. Il tempo speso per utilizzarlo viene recuperato di solito entro la stessa settimana.

Per le persone che hanno appena iniziato la loro carriera tecnica, l’abbinamento con un mentore farà sì che l’uso di Copilot non diventi una gara contro se stessi, ma piuttosto un modo per imparare rapidamente ed essere più sicuri di commettere errori.

In breve, chiunque può utilizzare GitHub Copilot, purché sia consapevole delle responsabilità che lo attendono quando spinge a valle le funzionalità prodotte. Siate pronti a illustrare la soluzione quando vi viene richiesta e assicuratevi di poter spiegare ogni passaggio e perché avete scelto di implementarlo in quel modo.

Quali sono i vantaggi a breve e a lungo termine degli strumenti assistiti dall’intelligenza artificiale?
La maggior parte delle persone con cui parliamo mira ad aumentare la produttività e l’efficienza, in pratica a produrre valore più velocemente grazie all’utilizzo di strumenti assistiti dall’IA. Le ricerche sull’analisi della catena del valore ci dicono che solo una frazione del tempo impiegato per consegnare il software agli utenti finali è dedicata allo scrivere codice. Se consideriamo anche solo il 20% del tempo dedicato alla codice durante un rilascio, la riduzione del 50% non è troppo significativa nel quadro generale.

Un’area molto più interessante della produttività è la Developer Experience (DX). Il puro piacere del lavoro e la possibilità di imparare rimanendo nel contesto del programma che si sta sviluppando aumentano sicuramente la fidelizzazione.

È più probabile che gli sviluppatori della nostra organizzazione rimangano con noi più a lungo se forniamo loro strumenti che consentano di concentrarsi sul lato creativo delle cose e di evitare il lavoro noioso. La maggior parte degli sviluppatori ama progettare soluzioni a problemi nuovi e Copilot aiuta a lasciare il tempo per farlo.

Dobbiamo dare uno sguardo olistico al ciclo di vita del software per cogliere davvero i vantaggi a breve e a lungo termine dell’uso di GitHub Copilot, al di là dei miglioramenti alla vita quotidiana degli sviluppatori. In particolare, dovremmo portare avanti la nostra lista di miglioramenti DevOps. Come possiamo fornire più rapidamente gli ambienti di test? Possiamo prevenire i problemi derivanti da configurazioni diverse tra gli ambienti? Quali sono i colli di bottiglia per la velocità e la qualità del rilascio? Come possiamo garantire che i risultati che produciamo siano di valore per i nostri clienti?

Per quanto riguarda la collaborazione con i team di prodotto, possiamo assicurarci di aver compreso correttamente un requisito e di averlo trasformato in una specifica tecnica corrispondente? Combinare l’uso di strumenti di chatbot assistiti dall’intelligenza artificiale con assistenti di programmazione ci dà modo di guardare alle sfide che stiamo risolvendo in modi diversi. Scrivere specifiche tecniche o riformulare i requisiti con strumenti assistiti dall’intelligenza artificiale è molto utile. Vedere i requisiti da diverse angolazioni può aiutarci a collaborare meglio e a discuterne il significato con i nostri utenti finali.

A breve termine, GitHub Copilot può aiutarci a imparare rimanendo concentrati durante il nostro lavoro nell’ambiente di sviluppo integrato (IDE). La capacità di rimanere nel flusso creativo e di evitare compiti frustranti migliorerà le giornate dei nostri team di sviluppo. A lungo termine, l’uso di una combinazione di strumenti assistiti dall’intelligenza artificiale può aiutare in quasi tutte le fasi del processo di progettazione, specifica, sviluppo e rilascio.

In questo articolo non abbiamo nemmeno iniziato a parlare del funzionamento del software negli ambienti di produzione, un’area che alla fine vedrà i maggiori cambiamenti. I dati di telemetria che riceviamo dai cluster di produzione, difficilmente leggibili e analizzabili dall’uomo, possono essere trasformati in cambiamenti di configurazione perspicaci nel nostro ambiente di runtime, con l’uomo che utilizza questi strumenti in modi nuovi e potenti.

(fonte)

Innovaformazione, scuola informatica specialistica promuove la cultura IT e dell’intelligenza artificiale.

Nell’offerta formativa per le aziende IT trovate i corsi sull’AI generativa al seguente LINK.

INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)

Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:

    Ti potrebbe interessare

    Articoli correlati