Scritto da Francesco Maria De Collibus
8 minuti di lettura
«Il software ha divorato il mondo, dice Marc Andreessen. Ma oggi è l’intelligenza artificiale a divorare il software. In pochi mesi siamo passati da un’epoca in cui programmare richiedeva anni di studio a una nuova realtà in cui basta descrivere quello che vogliamo nella nostra lingua di tutti i giorni per vedere il codice scriversi da solo».
In La macchina che si autoprogramma. In quali mani finirà l’innovazione? – edito da Egea con prefazione di Alessandro Aresu – Francesco Maria De Collibus ci accompagna in questo passaggio epocale con la competenza di chi conosce intimamente sia i fondamenti teorici dell’informatica sia le dinamiche concrete dello sviluppo software. Dalla Silicon Valley all’Europa, dai colossi alle startup emergenti, il libro racconta come si stia ridefinendo non solo il mestiere del programmatore, ma che cosa significhi oggi creare tecnologia.
De Collibus è laureato in Filosofia e in Informatica e ha conseguito un dottorato in Economia, lavora da vent’anni nell’IT. Attualmente è Enterprise Architect in AXA, nel Canton Zurigo. Ha al suo attivo libri, brevetti e pubblicazioni scientifiche e scrive di tecnologia per numerose testate. Pubblichiamo di seguito, per gentile concessione dell’editore Egea, un estratto del libro tratto dal capitolo Come il software cambia le imprese.
L’idea che il software possa presto diventare una risorsa quasi illimitata preannuncia una trasformazione travolgente, perché fino ad ora il software era il predatore, non la preda. «Why Software is eating the world», «Perché il software sta divorando il mondo», scrisse nel 2011 Marc Andreessen, cofondatore del noto fondo Andreessen Horowitz, nel blog aziendale[1]. Andreessen è lo sviluppatore del primo browser web della storia ed è famoso per avere investito in Facebook, Skype, Twitter, Instagram, GitHub, Stripe. Scrive ancora Andreessen: «La mia teoria è che ci troviamo nel mezzo di un profondo cambiamento tecnologico ed economico, nel corso del quale le aziende del software sono pronte a conquistare vaste porzioni dell’economia». Secondo Andreessen fattori come la diffusione capillare di internet e l’accessibilità della potenza di calcolo del cloud[2] stavano consentendo alle imprese tecnologiche di “mangiare” interi mercati, trasformando ogni economia in un’economia basata sul software. La teoria era visionaria nel 2011, oggi è realtà di tutti i giorni: gli esempi di ciò che il mondo economico media attraverso il software sono sconfinati. Film, musica, pagamenti, risparmi, condivisione di ricordi, tutto passa attraverso il software – o, per meglio dire, le grandi aziende tecnologiche americane che lo producono, gestiscono e mantengono[3].
Non solo: mentre le società tecnologiche diventano sempre più grandi e importanti, espandendo a dismisura il proprio raggio d’azione, anche le imprese tradizionali ragionano sempre più come aziende tecnologiche. Come ci ricorda Cosimo Accoto[4], oggi banche, assicurazioni e persino aziende come Boeing o Airbus ragionano sempre più in termini di cicli di rilascio software con nuove funzionalità. Banche, assicurazioni e società di investimento hanno reparti informatici con organici ormai paragonabili a quelli dei grandi attori della tecnologia. E anche i settori più tradizionali, non direttamente coinvolti, riconoscono il ruolo cruciale che il software gioca nelle loro organizzazioni. Il massiccio investimento in software diventa così sempre più difficile da tracciare, poiché i processi di trasformazione digitale stanno sbiadendo ulteriormente i confini tra IT e business.
Ma sta arrivando qualcosa di nuovo. Sullo stesso blog di Andreessen un partner del suo fondo, Anish Acharya, scrive in tempi più recenti[5]: «L’AI introdurrà una nuova epoca di abbondanza […] Gli utenti riscopriranno la propria creatività nascosta. La mancanza di competenze artistiche o tecniche non sarà più un ostacolo alla creazione; l’AI colmerà il divario tra gusto e arte, e nuovi flussi creativi emergeranno grazie alla tecnologia. Gli utenti finali avranno l’opportunità di realizzare il lavoro più impattante ed efficiente della loro vita, con una produttività moltiplicata e un carico amministrativo ridotto a zero».
L’AI è diventata il fattore creativo e trasformativo più importante. Il software è stato un fattore di successo fondamentale: dall’automazione dei processi aziendali al servizio dei clienti digitali 24 ore su 24, il software è al centro dei processi trasformativi nelle organizzazioni complesse. Ogni piccolo cambiamento nella logica di business dipende in larga misura da modifiche ai sistemi software, inclusi i sistemi centrali con le loro interfacce. Tuttavia, nonostante la sua importanza, il software è costoso e molto difficile da modificare. E le organizzazioni hanno fondamentalmente due modalità per soddisfare il proprio bisogno di software. Possono comprare una licenza e installare il software sui server aziendali; o scegliere la modalità Software-as-a Service (SaaS), utilizzando il software come servizio: il software viene in questo caso reso disponibile come servizio preconfigurato, senza necessità di installare nulla, e viene gestito dal fornitore del servizio stesso. Sebbene normalmente sia il SaaS sia il software on-premise risultino abbastanza flessibili da poter essere adattati o estesi per mitigarne i limiti originari, ciò non cambia il fatto che il software commerciale non è scritto specificamente per il nostro caso e con la nostra logica di business in mente. Spesso finiamo per adattare il nostro modo di lavorare al software, come accade con CRM (Customer Relationship Management) ed ERP (Enterprise Resource Planning). Come si dice a volte in gergo – scherzando solo fino a un certo punto –, «il cloud non esiste, è solo il computer di qualcun altro», così si potrebbe dire «il SaaS non esiste, è solo il software di qualcun altro».
Per ovviare a questi limiti, si può usare software sviluppato completamente su misura, internamente, esternamente o con modelli misti, ma i costi possono crescere rapidamente. Dalla chiarificazione dei requisiti iniziali alla garanzia di un’architettura solida, una moltitudine di problemi può emergere durante la fase di sviluppo. Il software deve seguire un ciclo di vita specifico, che implica aggiornamenti, patch di vulnerabilità critiche ecc. Secondo molti studi[6], nello sviluppo software moderno dal 70 al 90% del budget necessario è destinato alla manutenzione. Che le organizzazioni decidano di acquistare o sviluppare internamente il software, il costo e la difficoltà delle modifiche restano costanti. Tale difficoltà spiega perché l’IT moderno tende a essere «a codice scarso»: anche le organizzazioni più avanzate non possono modellare ogni processo, a causa dei costi e della complessità. Si cerca di automatizzare sempre di più ma, visti i costi, solo i processi più importanti e critici (lo «scheletro») vengono modellati nel software. Molti processi restano manuali a causa degli elevati costi di automazione, sacrificando così margini di miglioramento potenziale non visibili, la misurabilità degli indicatori aziendali e opportunità di ottimizzazione dei dati. All’epoca si trattava di un compromesso necessario, ma lo è ancora?
È un compromesso necessario date le sfide attuali dello sviluppo software, ma… e se non fosse più così? E se il software fosse economico, abbondante, veloce da fornire, facile da scrivere, operare, adattare e sostituire? Questa è l’ipotesi che stiamo esplorando: l’applicazione della Generative AI allo sviluppo di software (Generative AI-assisted Coding).
La previsione è che anche il software non sarà più una risorsa scarsa o difficile da gestire e che i progetti software cesseranno di essere l’«arte oscura» per via della loro complessità e incertezza, un’arte indecifrabile e in mano a oscuri sacerdoti descritta in un famoso libro di Steve McConnell[7] sottotitolato proprio «demistificare l’arte oscura».
Gli LLM offriranno ai professionisti IT un set di strumenti più ampio per soddisfare le loro esigenze. Gli utenti business potranno semplicemente spiegare con un prompt che cosa si aspettano e raffinare iterativamente il risultato. Durante la presentazione di GPT-4, avvenuta ormai nel marzo 2023 (ere geologiche fa, in termini di sviluppo AI), abbiamo visto Greg Brockman, ai tempi presidente di OpenAI disegnare su un tovagliolo il layout di un sito web e lasciare che GPT-4 generasse al volo un prototipo di sito HTML funzionante. Questa feature è attualmente solo una possibilità base all’interno dell’ampio ventaglio di possibilità offerte dalla Generative AI. Uno scheletro di partenza facile da estendere iterativamente e affinare a seconda dei nuovi requisiti.
Abbiamo citato i two pizzas teams – il fondatore di Amazon Jeff Bezos ha lanciato questa popolare definizione: un team che sviluppa un prodotto dovrebbe essere grande quanto basta per poter essere sfamato con due pizze; in America, dove le pizze possono essere grandi come ruote di camion, parliamo di un team che va dalle otto alle dodici persone – come misura dell’innovazione. Con un team di talenti di questa dimensione è facile ottenere un nuovo prodotto. In futuro la misura dell’innovazione sarà probabilmente più simile a un dinamico duo, una o due persone, estremamente motivate e dedicate più che verticalmente, esperte di una specifica tecnologia.
Il ruolo degli sviluppatori si sta spostando verso l’architettura software, con l’obiettivo di comprendere le esigenze e collaborare con l’AI per ottenere le migliori soluzioni possibili per i clienti interni ed esterni. Nonostante gli sviluppatori qualificati siano destinati a rimanere cruciali, poiché molti componenti richiederanno ancora sviluppo o deployment manuale per implementare la logica corretta o anche solo per verificare che i pezzi “stiano insieme” correttamente e risolvano effettivamente il problema desiderato, l’avvento dei coding assistant sta già snellendo drasticamente l’intero processo. Già oggi molti ambienti di sviluppo integrati includono generatori di codice e template predefiniti che accelerano i processi di ingegneria del software, ma sono strumenti che richiedono conoscenze specifiche per essere usati correttamente. Con gli LLM la generazione di codice diventa molto più semplice, perché può essere attivata con una semplice descrizione in linguaggio naturale.
Questa trasformazione è inevitabile. Gli sviluppatori qualificati sono difficili da trovare e trattenere per le organizzazioni, e rappresentano già un fattore che limita la produttività. Tuttavia, non sarà questione di ridurre i costi, bensì di aumentare la produttività. Studi sui settori non-IT[8] mostrano già un incremento significativo di produttività grazie agli LLM, in particolare tra i low performer e i neoassunti, che sembrano raggiungere più facilmente le performance dei colleghi più esperti. La produttività all’interno delle organizzazioni aumenterà enormemente. Nonostante questo incremento, il tasso di occupazione nell’IT non dovrebbe calare; piuttosto, lo stesso numero di persone produrrà molto di più. La pressione di mercato arriverà dai concorrenti: se non utilizzeremo assistenti di codice basati su LLM, i nostri concorrenti ci supereranno sviluppando lo stesso numero di funzionalità in una frazione del tempo e del costo. Una volta che tutte le aziende avranno raggiunto questo livello, quelle che automatizzeranno più processi e copriranno più casi d’uso tramite il software, le cosiddette aziende “a codice abbondante”, ovvero quelle che avranno automatizzato tutti i processi e che più rapidamente saranno in grado di produrre nuovo codice, serviranno i propri clienti meglio dei competitori rimasti “a codice sottile”, con utilizzo del codice limitato ai processi chiave. Questa sarà la pressione esercitata dal mercato.
Simile spinta verso un approccio data-driven incoraggerà ulteriormente le aziende a diventare “a codice abbondante”, abilitando interazioni digitali più strutturate che potranno essere analizzate per generare miglioramenti operativi. Non dovremo più scegliere tra un software commerciale pieno di compromessi e un software su misura costoso: potremo avere rapidamente software personalizzato, specifico per le nostre esigenze, a un prezzo prevedibile e conveniente, e molte meno problematiche di ciclo di vita.
Il cambiamento avrà implicazioni di vasta portata, non solo sui dipartimenti IT, ma sulle imprese e sulle organizzazioni nel loro complesso. Anche l’impatto sull’industria del software sarà radicale. Abbracciando questa nuova era di generazione automatica del codice basata su AI e LLM, ci stiamo avviando verso un futuro in cui il software non sarà più una risorsa scarsa, ma abbondante, facilmente gestibile e in grado di rivoluzionare l’IT come lo conosciamo. Il codice non solo divorerà il mondo: sarà anche economico e sempre disponibile per tutti.
[1] Marc Andreessen, Why Software is eating the world, 20 agosto 2011.
[2] Il modello del cloud computing permette di rilasciare nuove applicazioni senza il fardello di un’infrastruttura da gestire o espandere.
[3] L’aspetto geopolitico del mercato non è stato trattato a dovere, ma non si può negare che i grandi colossi tecnologici siano tutti americani. Le realtà europee sono scarse. Alcuni parlano a tal riguardo di vero e proprio colonialismo digitale, come in una fantastica intervista del Tages Anzeiger al fondatore di Proton, Andy Yen: Die Schweiz und Europa sind heuteKolonien der USA, 8 febbraio 2025).
[4] Cosimo Accoto, Il mondo dato. Cinque brevi lezioni di filosofia digitale, Egea, Milano 2017.
[5] Anish Acharya, How AI Will Usher in an Era of Abundance, 7 febbraio 2024.
[6] Si può leggere per esempio Bayarbuyan Ulziit et al., A conceptual framework of challenges and solutions for managing global software maintenance, «Journal of Software: Evolution and Process», 27 (10), 2015, pp. 763-792.
[7] Steve McConnell, Software Estimation. Demystifying the Black Art, Microsoft Press, Redmond 2006. Bisogna specificare che McConnell non si arrende di fronte alla complessità dell’incarico, e nel suo libro fornisce strumenti validi.
[8] Shakked Noy e Whitney Zhang, Experimental Evidence on the Productivity Effects of Generative Artificial Intelligence, «Science», 381(6654), 2023, pp. 187-192.