Artificial Intelligence

Buildo Event: AI-Assisted Software Development

Con i contributi di esperti e leader del settore come Pamela Gotti, Marco Denti, Alessandro Panebianco, Enrico Bertino e Davide Cifarelli, abbiamo esplorato il potere dell'AI sia nella creazione sia nella gestione del codice.

Arianna Mandaradoni Arianna Mandaradoni
28 luglio 2023 — 9 min

In buildo crediamo fortemente nella forza degli eventi come occasione per condividere conoscenza e incontrare persone capaci di arricchire il nostro bagaglio di esperienze.

Negli anni abbiamo organizzato o ospitato nei nostri uffici diversi meetup e corsi, inclusi eventi di Milano Scala Group, Milano TS, Italia JS, Data Science Milan, Ministry of Testing, Avanscoperta e molti altri.

Il 14 giugno gli uffici di buildo hanno ospitato un meetup immersivo sul tema dell’intelligenza artificiale. Abbiamo approfondito il mondo dell’AI applicata allo sviluppo software , accompagnati da Luca Cioria, Co-founder e partner di buildo, insieme ai nostri stimati ospiti.

  • Pamela Gotti, Chief Technology Officer @ Credimi
  • Marco Denti, Head of Software Factory & Innovation ICT @ Gruppo Ospedaliero San Donato
  • Alessandro Panebianco , Head of Customer and Business Analytics @ Enel X
  • Enrico Bertino, Chief AI Officer & Co-founder @ Indigo.ai
  • Davide Cifarelli, Co-founder @ Safurai

I nostri ospiti durante l’evento “AI-Assisted Software development”

Questo tema è particolarmente affascinante e rilevante per noi di buildo, perché siamo convinti che l’AI stia rivoluzionando il modo in cui costruiamo prodotti software e gestiamo il codice. Nel mondo del software sono in corso trasformazioni importanti, ed è fondamentale partecipare attivamente invece di restare passivi. Abbiamo avviato diversi progetti di innovazione e ricerca per restare aggiornati su ciò che sta accadendo nel campo dell’AI e del software. Abbiamo anche iniziato a collaborare con clienti interessati a percorsi di AI transformation e ad attività di sperimentazione, e parte di questo lavoro è stata discussa durante l’evento. Nel dialogo con i nostri ospiti abbiamo esplorato l’impatto dell’AI sullo sviluppo software, il ruolo degli sviluppatori, i cambiamenti nell’architettura software e le implicazioni per creatività e qualità.

In questo contesto affrontiamo domande come: l’AI è un’evoluzione o una rivoluzione nello sviluppo software? Come influisce sul ruolo degli sviluppatori? Quali sono i rischi potenziali e le strategie di prevenzione? E in che modo l’AI influenza la qualità e la creatività del software?

Unisciti a noi in questo viaggio entusiasmante alla scoperta dell’AI e delle sue profonde implicazioni per l’industria del software!

L’AI sta cambiando il mondo del software in modi che nessuno può ignorare. È una semplice evoluzione o una vera rivoluzione?

Secondo Pamela Gotti l’AI è sia un’evoluzione sia una rivoluzione. Da un lato è la naturale evoluzione delle tecnologie precedenti; dall’altro sta rivoluzionando il modo in cui scriviamo e gestiamo il codice, permettendo a più persone di avvicinarsi alla programmazione e accelerando le attività operative.

Enrico Bertino osserva che oggi si cerca di massimizzare lo sforzo su compiti specifici, al punto da non voler più avere a che fare con linguaggi e programmazione. Senza dubbio il salto tecnologico è stato incredibile. All’inizio sembrava impossibile che GPT-2 potesse eseguire un’istruzione:

“Non avrei mai detto che 3-4 anni dopo avremmo già testato GPT chiedendo equazioni differenziali del secondo ordine. Ora il divario tra aspettative e strumento è molto più ridotto.”

Qual è l’impatto dell’AI su persone e professioni?

L’AI non sta cambiando solo il modo in cui sviluppiamo software: influenza anche il modo in cui lavoriamo e le competenze che dobbiamo acquisire. Per chi sviluppa software l’AI può essere uno strumento potente per migliorare produttività e qualità del lavoro.

Marco Denti ci ha offerto una metafora interessante per capire meglio questo concetto:

“Quando nell’Ottocento fu introdotto il termometro a mercurio, i medici si ribellarono perché temevano di essere sostituiti. L’inventore disse che il termometro non avrebbe sostituito tutti i medici, ma che i medici che lo avrebbero usato avrebbero sostituito quelli che non lo avrebbero fatto. ”

Marco Denti durante il nostro evento negli uffici di buildo

L’AI può però avere un impatto significativo anche su altre professioni, come il giornalismo e l’analisi dei dati. In generale, l’AI può aiutare le persone a lavorare meglio, velocizzare i processi e farsi carico delle attività che gli sviluppatori trovano noiose.

L’impatto dell’AI sull’architettura software: cambiamenti graduali e ruolo della Data Science

L’AI può incidere in modo significativo anche sull’architettura software, per esempio modificando la comunicazione dei dati e la gestione dei flussi. Questi cambiamenti saranno però probabilmente graduali e richiederanno tempo per realizzarsi pienamente. Secondo Alessandro Panebianco:

“Il ruolo che avrà il team di data science è quasi quello di una guida al cambiamento.”

Alessandro Panebianco durante il nostro evento negli uffici di buildo

Tra le altre cose, Panebianco sottolinea che il cambiamento culturale deve essere compreso prima di tutto ai vertici dell’organizzazione, e questo non è affatto scontato.

Come ha evidenziato il nostro Luca Cioria , il fatto che in passato le decisioni si basassero più sull’intuizione e sull’esperienza manageriale, mentre oggi siano diventate più data-driven , è un esempio della trasformazione del ruolo esecutivo in azienda.

L’intelligenza artificiale ridefinirà il ruolo degli sviluppatori e il futuro dello sviluppo software?

L’intelligenza artificiale sta diventando sempre più abile nell’assistere lo sviluppo software. C’è chi teme che il suo uso diffuso possa marginalizzare o eliminare il ruolo dello sviluppatore, o appiattire le differenze tra sviluppatori più e meno esperti.

Secondo Davide Cifarelli l’intelligenza artificiale avrà un impatto su tutti i livelli di seniority dello sviluppo software. Per i developer junior l’AI può essere uno strumento utile per imparare , che permette di acquisire competenze rapidamente. C’è però il rischio che possa scoraggiare l’apprendimento delle competenze fondamentali. Per gli sviluppatori più esperti l’AI può arricchire l’esperienza di sviluppo , non solo a livello di codice ma anche di cloud architecture e system design. Strumenti come ChatGPT aiutano a completare il codice e possono essere integrati in tutte le fasi del ciclo di sviluppo, dal DevOps alla sicurezza. Se l’AI può aiutare i meno esperti a migliorare, i più esperti riusciranno a sfruttarne al massimo la potenza, compiendo un notevole salto qualitativo.

Enrico Bertino durante il suo intervento all’evento di buildo

Anche noi di buildo abbiamo riflettuto sul nostro posizionamento in questo senso. Riprendendo la metafora del termometro, abbiamo deciso di collocarci tra chi vuole imparare a usarlo il prima possibile.

Secondo Enrico Bertino il cambiamento nel campo dei sistemi software dovuto all’intelligenza artificiale sarà probabilmente graduale. Oggi molti problemi dell’informatica riguardano comunicazione e gestione dei dati. Introdurre elementi generativi potrebbe complicare ulteriormente le cose, ma passerà molto tempo prima che accada. Inizialmente vedremo piccoli microservizi nello sviluppo software, dove l’intervento umano può ancora controllare l’output. Poiché i modelli di AI sono probabilistici , non potremo mai essere sicuri al 100% della loro correttezza, ma possiamo arrivare a fidarci abbastanza della loro robustezza, come già facciamo con le persone, che non sempre sono corrette al 100%.

La guida autonoma può causare incidenti, ma è essenziale considerare quanti guidatori umani ne avrebbero avuti di simili.

AI e qualità del codice

Pamela Gotti ritiene che l’intelligenza artificiale possa incidere molto sulla qualità del codice , sia in termini di performance sia di sicurezza. L’AI può fare da programming partner , offrendo suggerimenti e aiutando a coprire tutti gli aspetti del codice, accelerando così il processo di scrittura. Può inoltre correggere automaticamente gli errori nel codice attraverso un processo noto come self-healing. Esistono però diverse sfide. Per esempio, una persona alle prime armi potrebbe trovarsi a revisionare migliaia di righe di codice generato dall’AI, un compito scoraggiante. Inoltre, usare l’AI può portare a un nuovo tipo di debito tecnico , perché il codice generato automaticamente non è sempre ottimale. Nonostante queste sfide, Pamela vede un potenziale enorme nell’AI per migliorare la qualità del codice e prevede sviluppi entusiasmanti nei prossimi anni.

Pamela Gotti durante il nostro evento in buildo

Secondo Davide l’AI può incidere molto sulla produttività nello sviluppo software. Può supportare l’analisi del codice, rendendo più semplice per una persona appena arrivata comprendere una codebase ampia. Strumenti come Copilot possono però anche generare bug che richiedono tempo per essere risolti, perché il codice prodotto dall’AI non è immediatamente preciso. Le statistiche mostrano comunque che l’AI può aumentare la quantità di codice scritto e migliorare il benessere degli sviluppatori automatizzando le attività ripetitive e noiose. Inoltre può creare un ambiente di lavoro più piacevole, permettendo ai team di concentrarsi sugli aspetti di soft skill e di migliorare la comunicazione interna. In sintesi, l’AI può aumentare la produttività , ma è essenziale bilanciare i benefici con le possibili sfide.

Davide suggerisce che, con l’integrazione dell’intelligenza artificiale nello sviluppo software, il ruolo dello sviluppatore potrebbe trasformarsi in quello di un ‘validator ’. Le caratteristiche di questo ruolo includono:

  • Validare l’output dei modelli di AI: i validator saranno responsabili di esaminare e approvare il lavoro generato dai modelli di AI, come GPT-4.
  • Sfruttare le proprie competenze: i validator dovranno usare le proprie capacità per interpretare e sintetizzare l’output dei modelli di AI.
  • Validare i training set: sul fronte dei dati, i validator avranno il compito di verificare i training set usati per creare i modelli di machine learning.
  • Riutilizzare gli strumenti di AI: una delle sfide per i validator sarà riusare strumenti come ChatGPT in contesti aziendali, garantendo privacy e riservatezza dei dati.
  • Accogliere il cambiamento: i validator dovranno essere disposti ad accettare il cambiamento e ad adattarsi a nuovi processi.
  • Rinnovare le proprie competenze: i validator dovranno aggiornare le proprie skill per adattarsi a questi nuovi ruoli e responsabilità.

Davide Cifarelli durante il suo intervento all’evento di buildo

L’impatto dell’AI sui pattern di coding e sulla creatività nello sviluppo software

Secondo Marco non c’è il rischio di una standardizzazione dello stile di codice con l’AI, perché l’obiettivo primario del codice è essere funzionale e performante. Se la standardizzazione è orientata al miglior funzionamento possibile, può essere accettabile.

Sull’impatto dell’AI sulla creatività, Luca ed Enrico discutono se la creatività sia necessaria allo sviluppo software e come l’AI possa influenzarla. Enrico sostiene che i modelli linguistici di AI siano intrinsecamente creativi , perché producono output basati su interpolazioni probabilistiche. L’uso dell’AI potrebbe però limitare la creatività personale degli sviluppatori.

Enrico cita anche il ruolo dei designer nel processo di sviluppo software, ipotizzando che l’AI possa influenzare anche questo ambito. L’AI potrebbe generare user experience diverse per un’app o una web application, con un impatto sulla creatività del designer.

Infine Luca osserva che alcune professioni, come quella del giornalista, potrebbero sentirsi minacciate dall’AI proprio sul terreno della creatività.

Velocità di sviluppo e qualità del software nell’era dell’AI: rischi e strategie di prevenzione

Secondo i relatori, usare l’AI può accelerare lo sviluppo software , ma non necessariamente a scapito della qualità. Marco sostiene che, se un’organizzazione ha un solido processo di validazione del codice, la velocità con cui il codice viene prodotto (da una persona o dall’AI) non dovrebbe influire sulla qualità finale.

Luca aggiunge che i processi di controllo qualità, come le code review e l’analisi statica , possono essere potenziati dall’AI. Cita anche il concetto di “self-healing ,” in cui l’AI monitora le performance di un servizio e corregge automaticamente eventuali problemi.

Davide porta l’esempio di Copilot X , uno strumento che genera automaticamente una serie di unit test ogni volta che l’AI produce nuovo codice. Se i test vengono superati, il codice viene consegnato all’utente.

Pamela solleva però la questione della validità dei test generati automaticamente e del self-healing, sottolineando l’importanza di avere un solido processo di controllo qualità.

In conclusione, i relatori concordano sul fatto che l’AI possa aumentare la velocità dello sviluppo software, ma sottolineano l’importanza di processi di controllo qualità robusti per garantire che la qualità non venga compromessa.

Conclusione

L’intelligenza artificiale sta rivoluzionando il mondo dello sviluppo software in modi che non possiamo ignorare. Da strumento che migliora la produttività e la qualità del codice a possibile fattore di cambiamento per le professioni e le competenze richieste dal settore, l’AI sta trasformando il modo in cui lavoriamo e pensiamo lo sviluppo software. È però fondamentale affrontare anche le sfide dell’AI, come la necessità di processi di controllo qualità robusti e la possibile minaccia alla creatività personale. Entrando in questa nuova era dell’AI dobbiamo essere pronti ad adattarci e a imparare, con l’obiettivo costante di creare software di alta qualità che risponda ai bisogni delle persone.

Durante l’evento tutta la discussione è stata trascritta usando Deepgram con Whisper: un’ulteriore, piacevole dimostrazione di come l’AI stia permeando le nostre attività quotidiane, rendendo ciò che sembrava complesso incredibilmente semplice!

Arianna Mandaradoni
Arianna Mandaradoni Marketing & Business Development

Arianna joined Buildo to give support in the marketing & sales field. She loves organizing events and is responsible for creating new market opportunities and outlining the strategic marketing initiatives of buildo.

NEWSLETTER

Ehi, c'è anche una Newslettero!
Sì, proprio con la o.

Ogni mese scegliamo articoli utili ma anche idee fresche e stimolanti. Proprio quello che vorremmo trovare noi in una newsletter!