Home Articoli L’Intelligenza Artificiale è uno strumento temporaneo o utensile permanente per uno sviluppatore...

L’Intelligenza Artificiale è uno strumento temporaneo o utensile permanente per uno sviluppatore senior?

23

Lo chiarisce uno sviluppatore senior in contesto AI.

Nel panorama in continua evoluzione dell’AI, la condivisione di esperienze e visioni è più che mai fondamentale. È con questo spirito che, come noto, ANSSAIF ha avviato un nuovo approccio collaborativo tra i suoi soci (il primo articolo è stato pubblicato sul sito alla pagina: ( Project Management nell’era dell’Intelligenza Artificiale | ANSSAIF).

In questo articolo si raccolgono le risposte ed i commenti di Ugo Fiasconaro, un brillante sviluppatore, socio di ANSSAIF da moltissimi anni.

 

D1: Quale parte del tuo lavoro non è riproducibile con l’AI?
Essendo il mio lavoro principalmente focalizzato sullo sviluppo software, gran parte di esso in teoria potrebbe essere replicato dall’AI, ma solo se si prescinde dalla complessità dell’integrazione tra i vari componenti di un progetto.

In pratica, io considero gli LLM [1]come semplici strumenti da utilizzare in base agli obiettivi specifici. In un progetto che prevede circa 1000 task mirati, anche grazie al prompt engineering riesco a trasformare un concetto generico in dettagli strutturati — ad esempio, un file Markdown[2] che mi aiuta a organizzare i sotto-prompt da sottoporre nuovamente al modello. Tuttavia, ciò che ottengo non è sempre direttamente utilizzabile nello sviluppo reale.

Un esempio classico è il lavoro di Quality Assurance (QA) testing: quando vengo incaricato di effettuare test di qualità su funzionalità specifiche del frontend, backend o API, devo fornire report precisi e contestualizzati. La logica complessa e lo sviluppo avanzato non possono essere demandati al cosiddetto “vibe coding”.[3]

Analogamente, se uso l’AI per ottenere suggerimenti sulla struttura architetturale di un software o di un database, spesso queste proposte non sono in linea con le richieste precise del cliente. Pur valutando con attenzione i risultati prodotti dagli LLM, devo comunque intervenire frequentemente per modificare la struttura, le funzioni complesse e l’integrazione tra i vari moduli, basandomi sui task ricevuti inizialmente.

Ricapitolando, oggi non è possibile automatizzare al 100% alcune fasi critiche dello sviluppo, in particolare:

  • L’integrazione completa di tutti i task.
  • La definizione di architetture software complesse.
  • I test di qualità su applicazioni in produzione, dove è indispensabile la supervisione umana.

 

A volte, anzi, è addirittura più rapido sviluppare autonomamente certe componenti piuttosto che passare attraverso strumenti di Intelligence AI.

Gli sviluppatori esperti usano gli LLM conoscendo bene il linguaggio di programmazione coinvolto, perché solo così possono riconoscere eventuali errori logici o funzionali nel codice prodotto. Chi invece non ha una solida preparazione tecnica si trova a dipendere totalmente dall’AI, sperando sia in grado di risolvere problemi complessi e, soprattutto, che lui stesso riesca a descrivere il problema in modo sufficientemente chiaro e dettagliato nel prompt.

D2: Hai mai avuto l’impressione che l’AI avesse una personalità propria, come un essere umano? Perché sì o no?
No, non ne ho mai avuta l’impressione. Per me l’AI generativa[4] rimane uno strumento, e so che il suo output si basa su calcoli statistici e pattern appresi durante il training. Non c’è intenzione né consapevolezza dietro alle risposte che genera.

Può capitare che la catena di ragionamento sembri quasi umana, trascinando l’utente verso un senso di fiducia totale nello strumento. Ma chi conosce realmente il funzionamento degli LLM sa che si tratta solo di un’apparenza.

Faccio un esempio non correlato: durante uno spettacolo di magia si rimane affascinati dall’apparente mistero delle illusioni. Ma chi conosce il trucco sa che si tratta solo di tecniche ben studiate, messe in atto per creare un effetto sorpresa. Lo stesso vale per l’AI: non c’è personalità, ma solo una sofisticata illusione probabilistica.

D3: Quali nuove tecnologie ti fanno sentire come un bambino davanti al proprio regalo preferito?
Non è tanto la tecnologia in sé a farmi sentire così, quanto la sua applicazione pratica in ambiti che mi ispirano. Mi spiego meglio: la vera soddisfazione arriva quando riesco a integrare e completare un progetto, vedendo che tutto funziona come previsto. È in quel momento che provo quella sensazione di gioia genuina, simile a quella di un bambino che apre un regalo.

Ad esempio:

  • Testare una tecnologia complessa su dispositivi mobili, come le AI Generative, che richiedono un uso elevato di risorse.
  • Realizzare processi integrati che semplificano il lavoro di clienti o operatori.

Al contrario, ci sono tecnologie che non mi entusiasmano, come Bitcoin o la blockchain. Dopo anni di osservazione, non ho mai visto un’utilità pratica tangibile né per l’uso della tecnologia stessa né tantomeno per il concetto di “moneta decentralizzata”. Il loro impiego rimane prevalentemente speculativo, con un rapporto costo/beneficio decisamente poco efficiente.

Se mancano esempi pratici e applicazioni concrete, nemmeno l’AI generativa riuscirebbe a entusiasmarmi (come un bambino). Io lavoro quotidianamente in ambienti AI-driven[5], e per me gli LLM sono sia strumenti che utensili:

  • Se devo scrivere codice, li uso come supporto temporaneo per accelerare lo sviluppo. Una volta concluso, lo strumento non serve più (in quel contesto pratico).
  • Se invece sto realizzando un sistema di parsing[6] automatico di dati particolari su documenti Word per convertirli in Excel, posso integrare un modello leggero (7 o 14 Miliardi di Parametri) all’interno dell’architettura software come componente stabile. In questo caso diventa un “utensile” permanente nel flusso del software.

È un po’ come dire che una lama (di un coltello) può essere usata occasionalmente per tagliare qualcosa di specifico oppure inserita stabilmente in un sistema automatico come pelapatate elettrico o un robot da cucina. Dipende dal contesto e dall’esigenza.

 

Commento

Le risposte di Ugo offrono una prospettiva interessante e ben argomentata sul ruolo dell’AI nello sviluppo software e sulla sua percezione.

Giustamente afferma che l’AI non sostituisce lo sviluppatore, ma ne evolve il ruolo.

Non si tratta più solo di scrivere codice, ma di saper orchestrare, integrare e validare soluzioni complesse, usando l’AI come un acceleratore intelligente. La sua enfasi sull’importanza di una solida preparazione tecnica per “correggere il tiro” dell’AI è un monito importante per il futuro della professione.

Da non trascurare, infine, l’affermazione che secondo Ugo la vera gratificazione non sia la tecnologia in sé, ma il suo impatto pratico e la risoluzione di problemi reali. Questo suggerisce che, anche nell’era dell’AI, la creatività, il problem-solving e la capacità di visione d’insieme rimarranno le competenze più preziose.  E ciò, da vecchio sviluppatore, ve lo posso confermare.

[1] Large Language Model:

Un modello linguistico di grandi dimensioni.

Sono modelli di AI (come ChatGPT) addestrati su enormi quantità di testo per capire e generare linguaggio naturale.

Sono la base della maggior parte delle AI generative di testo.

Esempio: GPT-4, LLaMA, Claude.

[2] Markdown:

Un linguaggio di markup leggero.

Serve per formattare il testo in modo semplice (grassetto, titoli, elenchi, link) senza bisogno di codice HTML.

Spesso usato nei prompt per AI, nella documentazione tecnica e nei README dei progetti.

Esempio: scrivere **ciao** in Markdown genera ciao.

[3] Vibe Coding

Non è un termine standard ma slang moderno usato in certi ambienti di sviluppo e community AI.
Significa “scrivere codice con il giusto vibe“, cioè in un ambiente fluido, creativo, spesso usando AI come copiloti.

Esempio pratico: usare ChatGPT o GitHub Copilot per generare/snippet di codice al volo mentre si sviluppa, mantenendo un ritmo creativo e produttivo.

 

[4] AI Generativa
È l’AI che crea nuovi contenuti: testi, immagini, musica, video, codice…
Non si limita ad analizzare dati ma produce nuovi risultati.

Esempio: ChatGPT (testi), Midjourney (immagini), Sora di OpenAI (video), Copilot (codice).

 

[5] AI-driven, letteralmente “guidato dall’AI”
Descrive un sistema o processo che usa l’AI come componente chiave per prendere decisioni, eseguire compiti o generare output.

Esempio: un sistema di raccomandazione AI-driven che consiglia prodotti su un sito web; un software AI-driven che analizza rischi cyber.

[6] Parsing Analisi sintattica o “scomposizione” di un testo/dati.
In AI e sviluppo significa estrarre informazioni strutturate da dati non strutturati.
Serve per capire, manipolare e convertire testi in qualcosa che una macchina può elaborare.

Esempio: parsing di un documento PDF per estrarre date, nomi, numeri; parsing di una frase per identificare soggetto, verbo, oggetto.