Riflessioni su un’estate di sviluppo software #4

Come da tradizione, in questo periodo dell’anno, scrivo un articolo della serie Riflessioni su un’estate di sviluppo software (consiglio di recuperare gli altri episodi qualora non li aveste letti 2023, 2024, 2025)

Fine agosto, coda lunga di una delle estati più calde di sempre. Qualche temporale estivo ha reso le temperature più gentili, seppure siamo sempre oltre i 30 °C durante il giorno. La fine dell’estate è sancita più che altro dalle persone che rientrano dalle ferie e dalle aziende che lentamente (e senza troppo entusiasmo) riprendono le loro attività.

Ci sono anche i vacanzieri tardivi, che non vedono l’ora di partire dopo un’intera estate a soffrire chiusi in casa con il climatizzatore acceso. Si sono allenati per mesi, studiando le migliori inquadrature per selfie e storie su Instagram e fremono nell’attesa che arrivi il loro turno per pigiare il tasto condividi di fronte ad un tramonto mozzafiato ripreso da un ristorante vista mare.

In tutte queste dinamiche ci sono io, CTO di Crono, che ho passato un’altra estate di sviluppo software insieme al mio team di draghi, ed ora mi ritrovo qua a tirare le somme di questi ultimi mesi.

Innanzitutto, voglio subito tranquillizzare il lettore con le cose più importanti:
Sono stato in vacanza anche io. Una bellissima vacanza al mare con la mia compagna Giulia ed il nostro bimbo di un anno, Massimo. Siamo andati a metà giugno (da bravi genitori novelli), periodo in cui le spiagge della Sicilia occidentale sono un po’ meno calde e decisamente meno affollate.

Negli ultimi mesi Massimo ha iniziato a interagire attivamente con il mondo circostante e, da quando ha preso lo slancio gattonando e alzandosi in piedi, portarlo in vacanza è diventato un po’ più impegnativo. Fortunatamente, come me, adora stare in spiaggia e fare il bagno in mare, quindi anche noi abbiamo trovato il modo di rilassarci.

È ben noto che il problema principale di una vacanza è il rientro. Per questo motivo non ci vado spesso. Ritornare alla vita quotidiana, dopo aver vissuto per giorni di mare, cibo e relax, è una tortura che non ci meritiamo.

Fortunatamente mi piace il mio lavoro, sviluppare software, e quindi il resto dell’estate è trascorso velocemente: la maggior parte dei clienti riduce le attività e tanti colleghi vanno in ferie, si ha molto più tempo per concentrarsi e portare a termine lavori importanti che richiedono più tempo e calma e vengono quindi relegati a questo periodo.

A onor del vero, saranno diversi mesi che non scrivo più una riga di codice.

Forse tre o sei, non mi ricordo neanche quando sia stata l’ultima volta che ho dovuto scrivere codice da solo, come ho sempre fatto negli ultimi 20 anni. Questo potrebbe suonare strano a chi non è del settore. Giulia potrebbe strabuzzare gli occhi e pensare che io stia ormai davanti al computer tutto il giorno a fare niente.

Eppure è così. Oggi, per sviluppare software, puoi dare indicazioni più o meno precise all’intelligenza artificiale e lei può occuparsi di una parte rilevante del lavoro che fino a poco tempo fa avresti dovuto svolgere tu. La rivoluzione dell’IA generativa è iniziata qualche anno fa, ma i progressi compiuti nel mio settore nell’ultimo anno sono stati incredibili.

Oltre ai modelli che diventano sempre più intelligenti, sono migliorati i tool e le loro integrazioni. Claude Code (ed equivalenti) ha accesso a tutta la codebase della tua piattaforma. Può analizzare qualsiasi riga di codice e valutare l’impatto di una modifica in breve tempo, o suggerire la soluzione migliore per risolvere un bug o ancora implementare da zero una nuova funzionalità.

La sua capacità non si limita al codice; può interagire con i tuoi strumenti di lavoro per ottenere più contesto: leggere le specifiche e consultare la documentazione, cercare sul web come integrarsi con una piattaforma esterna e stabilire un piano di lavoro per farlo. Infine, mandare un messaggio ai colleghi per condividere il lavoro che tu hai svolto. O insomma, che lei ha svolto.

L’evoluzione è stata così veloce e dirompente che quasi faccio fatica a ricordare come si lavorava prima, seppure l’abbia fatto per almeno dieci anni per professione.

Ricordo però lo stress e la fatica nel risolvere bug complessi: andare alla ricerca dei log, recuperare gli eventi tracciati, che spesso e volentieri mancavano. Incrociare il codice e provare a ricostruire quello che era successo. Talvolta non era semplicemente un singolo comando dell’utente, ma più comandi concorrenti provenienti da fonti diverse a causare il problema. La mente umana non è strutturata per incrociare più eventi in parallelo ed intravedere i potenziali conflitti. Ci si può arrivare, ma con una conoscenza approfondita del sistema, esperienza, ingegno e tempo a disposizione.

L’IA, invece, può accedere a tutti i log, all’infrastruttura e al codice ed è in grado di incrociare gli eventi in pochi secondi o minuti. Ha già visto tutti questi casi prima di te. Non ha bisogno di studiare il tuo sistema in modo approfondito. Riesce a riconoscere i pattern ed applicarli.

Oppure ricordo la complessità di dover sviluppare una feature grossa che impatta su vari punti della piattaforma. L’ho fatto tante volte, ci volevano diversi giorni o addirittura qualche settimana. Ma più che la complessità di portare a termine un lavoro del genere, è dedicare tutto quel tempo a un solo task senza dover fare context switch tra altre richieste.

Quest’estate, insieme al mio team, abbiamo sviluppato varie nuove funzionalità importanti, portandole avanti in parallelo ad altri lavori più piccoli. Dopo avere fornito all’AI documentazione, specifiche e contesto, potevamo continuare su altro e tornare dopo per verificare il lavoro svolto.

Ho quindi passato buona parte dell’estate a gestire più cose in parallelo, cliccando su continua, conferma e consenti fino a quando il lavoro non era finito.

Massimino vuole aiutare papà nel lavoro

Nel frattempo, il mio ufficio in casa si sta trasformando sempre di più nella stanza di Massimo e inizio ad intuire una velata minaccia: la mia scrivania qua ha i giorni contati. I suoi giochi hanno ormai invaso tutta la stanza e presto bisognerà fare spazio al lettino ora che dovrà iniziare a dormire in camera da solo.

A volte, quando sono rapito dal lavoro, senza accorgermi, me lo ritrovo in piedi accanto a me che mi guarda con il suo splendido sorriso. Prova ad aprire i cassetti della scrivania per attirare la mia attenzione mentre mi osserva in silenzio. Mi fa capire che vuole venire in braccio toccandomi insistentemente il gomito e non riesco a non accontentarlo.

Una volta in braccio non gli basta. Mi ha osservato per tanto tempo (il tempo è relativo, soprattutto per un bambino di un anno :)) ed ora sa cosa fare. Inizia a toccare la tastiera e il mouse. Con qualche shortcut riesco ad aprire rapidamente un blocco note pulito dove può scrivere anche lui le sue prime righe di codice, senza fare danni.

È felicissimo mentre vede comparire sullo schermo i numeri e le lettere che sta digitando. La barra spaziatrice e l’invio fanno muovere il cursore a destra e in basso e lui lo segue con lo sguardo, consapevole che il computer reagisce ai suoi comandi. Ogni volta che riesce a cambiare finestra con il mouse, esclama un urlo di stupore e mi guarda come per dire: “Papà, hai visto cosa posso fare!”

I circuiti biologici del mio cuore hanno un sussulto. Non ho mai pensato di imporre a mio figlio le mie passioni anche se sono convinto che qualsiasi padre non veda l’ora di condividerle. Mi fa piacere immaginare che, in qualche modo, esse possano essere trasmesse dai bit che compongono il codice genetico.

È sicuramente troppo presto per trarre queste conclusioni, ma non riesco a fare a meno di domandarmi come sarà il lavoro dello sviluppatore software tra vent’anni, quando (e se) sarà il suo turno.

Stiamo vivendo una rivoluzione che ha un impatto simile a quello della rivoluzione industriale nel 1800. Una delle differenze lampanti sta nella rapidità con cui questo cambiamento sta avvenendo.

Ad esempio, le macchine tessili automatizzate hanno stravolto, nel giro di qualche decennio, il modo in cui venivano tessuti i vestiti, che esistevano da millenni.

Lo sviluppatore software, come professione, esiste da circa mezzo secolo e nel corso degli ultimi anni abbiamo iniziato a chiederci quanto profondamente potrà essere trasformato, o sostituito, dalla macchina e tutto questo grazie all’ingegno di altri sviluppatori che stanno dando forma e potere a questa tecnologia.

Io e tanti altri come me stiamo vivendo questa rivoluzione attivamente. Ne siamo parte, siamo i primi a beneficiarne e a subirla.

Per svolgere il lavoro che ho fatto finora, ho studiato informatica per 8 anni, tra scuole superiori ed università. Dopo qualche anno di esperienza lavorativa, mi sono sentito all’altezza di partire da zero per sviluppare un software con l’obiettivo di venderlo.

Oggi le mie competenze ed esperienza mi aiutano a svolgere il mio lavoro in modo efficace e con cognizione di causa. So riconoscere i problemi, prendere decisioni architetturali, organizzare il lavoro di varie persone su progetti di grandi dimensioni e ho sufficiente esperienza per chiedere all’AI di sviluppare il software adeguato.

L’intelligenza artificiale ha un modo subdolo per infiltrarsi nel nostro lavoro. Prima ti mostra di cosa è capace, creando l’effetto WOW. È una scelta scontata capire che per sviluppare una nuova API basta darle i giusti input e trovarsi il codice pronto, piuttosto che scriverselo a mano. Poi ti fa intuire che può fare qualcosa in più, può accedere ai log per risolvere i bug, può preparare il codice per la review dei colleghi, la documentazione da condividere col resto del team e può mandare in automatico un messaggio per comunicare il lavoro svolto.

Basta solo che tu gli dia conferma e il permesso di farlo di nuovo la prossima volta, senza dovertelo richiedere.

È chiaro che ogni scelta qua sia scontata. Meno lavoro manuale, possibilità di gestire più cose in parallelo, perché non dovrei darle il consenso? In fondo quello che è importante per me è il risultato finale, non il modo in cui lo raggiungo. Insomma, meno stress e maggiore produttività.

Un po’ come Massimino che si mette accanto a me e senza fare troppo rumore mi osserva e impara, l’AI fa la stessa cosa ma lo fa con una capacità ed una potenza di scala al di fuori delle possibilità umane.

Ormai, per realizzare un software non è più strettamente necessario avere studiato da sviluppatore. Basta dare comandi all’AI e un’applicazione può prendere vita. Certo, avere comprensione e conoscenza di ciò che si sta facendo aiuta ancora, specialmente se si vuole realizzare un’applicazione destinata a utenti esterni.

Ma fino a quando queste competenze saranno necessarie? Quale sarà l’impatto sulla nostra società una volta che realizzare un software sarà alla portata di chiunque e non serviranno più anni di studio e di esperienza?

Ancora non possiamo saperlo. Ho provato ad analizzare alcune di queste domande durante il mio ultimo Talk a Brescia Startup (Fare startup ai tempi dell’AI). Sono già passati quattro mesi e può essere che alcune tematiche risultino già vecchie considerando la rapida evoluzione della tecnologia. Ma se vi interessa approfondire l’argomento, ho toccato vari spunti di riflessione che reputo interessanti.

Ultimamente si sente spesso citare la metafora della rana bollita. La rana sta in una pentola dove l’acqua si sta scaldando lentamente. All’inizio ci nuota con piacere, poi lentamente e senza che lei se ne accorga l’acqua arriva ad una temperatura per lei letale.

Seppure consapevoli delle incognite relative all’impatto di questa tecnologia sul nostro futuro, chi siamo noi oggi per decidere di non prenderne parte? I vantaggi sono troppo evidenti per restare a guardare, e le domande che pone riguardano tutti noi.

In Crono, oltre al supporto nello sviluppo del software, stiamo introducendo agenti AI per automatizzare il lavoro di altri processi aziendali. L’obiettivo è chiaro: risparmiare alle persone operazioni manuali e ripetitive, facilitare lo svolgimento di quelle più complesse, fornire dati aggiornati e contesto al momento necessario per liberare tempo da dedicare ad attività più strategiche, dove l’AI (ancora) non può arrivare.

Vedo l’AI avanzare nel suo percorso, andando sempre più a coprire, nel nostro lavoro e nelle nostre vite, attività che fino a poco tempo fa consideravamo espressione esclusiva della creatività e dell’ingegno umano.

Non riesco ancora a capire se tutto questo ci renderà più liberi, più produttivi o semplicemente più dipendenti da strumenti che non possiamo comprendere fino in fondo.

Un’altra estate sta finendo mentre scrivo queste ultime righe. Stamattina un altro temporale ha rinfrescato l’aria. Massimo piange perché sua mamma lo ha appena sgridato mentre provava a scendere dal lettone di testa per l’ennesima volta.

Io torno davanti al computer a sviluppare software, o a spiegare all’AI come svilupparlo per me. Nel frattempo, Massimo continua a osservarmi lì accanto, ancora con le lacrime agli occhi dopo la strigliata, e a stupirsi di come un computer possa rispondere ai suoi comandi.

Chissà se, tra vent’anni, si ricorderà ancora che tutto è iniziato così.

Toplus

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *