Commento del 2025 su un blog. Lo ripubblico perché
la distinzione tra "AI come collaboratore" e
"AI come copia-incolla" è ancora la più importante da fare.
Tempo fa avevo scritto una libreria che estende un progetto
open source, si tratta di un prodotto di nicchia che ha pochi
download, è abbastanza semplice ma mi serviva e non esisteva,
e svilupparlo è stato molto interessante. La qualità del codice
che avevo scritto era discreta, ed il prodotto funzionava
abbastanza bene anche se con diverse limitazioni di cui ero ben conscio.
Di recente ho provato con AI a vedere dove poter intervenire:
ho chiesto di analizzare la qualità del codice, se ci fossero incoerenze,
codice duplicato etc. ed ho avuto diversi suggerimenti,
alcuni molto utili, altri che invece non ho ritenuto interessanti.
Mi è stato segnalato un bug che, in realtà, non esisteva. Ma effettivamente
un caso particolare era gestito, a livello di codice, in maniera non ottimale.
Ho sistemato il sistema di inizializzazione, l'ho reso configurabile,
ho scritto la documentazione, ho scritto una suite di test per verificare
il corretto funzionamento della procedura e per essere certo che, quando correggo il codice o aggiungo funzionalità, il prodotto continua a funzionare.
Tutte cose
che avrei saputo fare anche da solo, ma che portavano via
tempo e concentrazione.
Sostanzialmente ho usato l'AI come motivatore, o più che altro come
collaboratore, non ho fatto nessun copia ed incolla a caso.
Da un lato credo che uno sviluppatore discreto, utilizzando
opportunamente l'AI, possa arrivare a risultati eccellenti.
D'altra parte anche uno sviluppatore scarso, utilizzando impropriamente
l'AI, può ottenere risultati che sembrano buoni - ma non
necessariamente lo sono. Diventa quindi più difficile discriminare
chi è bravo da chi non lo è.
Joel Spolsky sosteneva che per assumere uno sviluppatore devi
vedere come scrive codice, non come parla. È una delle 12 domande
del suo Joel Test: "I nuovi candidati scrivono codice
durante il colloquio?".
I "take home test" sono un'evoluzione di questo principio.
Per dire, non so in Italia ma all'estero le ditte che dovevano
assumere sviluppatori facevano una selezione fin da subito
tramite "take home test", dei piccoli progetti da sviluppare
in qualche mezza giornata ma che davano una idea della qualità
del codice che si sapeva produrre. Oggi come si fa? Con un po'
di AI, ed evitando nel contempo di fare troppi copia+incolla
indiscriminati, è molto facile far sembrare di essere molto bravi.
Probabilmente l'AI spazzerà via diverse professioni, sono cose
che sono sempre successe con le varie innovazioni tecnologiche
ma forse siamo di fronte ad eventi più estremi.
Grafici? Traduttori? Interpreti? Speaker? E non sono tranquillo
nemmeno per il futuro degli sviluppatori, sì, la qualità dell'AI
non è sempre ottimale, ci sono molti errori, aspetti da migliorare,
e molte attività per le quali l'intervento umano è sempre
indispensabile, ma sarà sempre così? D'altra parte anche
molti sviluppatori pagati come tali non è che siano sempre
all'altezza del loro ruolo! Forse ne serviranno sempre meno?
Pochi ma di livello alto? Staremo a vedere!