Nell’intervista che segue, Fabio Serra, Chief Technology Officer di Fractalgarden, ci ha fornito spunti e riflessioni preziose riguardo al ruolo in evoluzione del CTO e sulle prospettive future. Durante la conversazione, ha condiviso suggerimenti su letture rilevanti e ha esplorato le sfide imminenti che lui e i suoi colleghi dovranno affrontare.
Racconta della tua azienda e quali sono le sfide più particolari che tu come CTO ti trovi ad affrontare in questo periodo.
Lavoro per due aziende con sede a Milano. La prima è Fractalgarden, una software house che sviluppa e commercializza principalmente due prodotti: uno per il monitoraggio degli impianti fotovoltaici e l’efficientamento energetico, e l’altro per la firma elettronica di contratti tramite OTP. La seconda azienda è Italianway SPA, lavora nel settore degli affitti a breve termine, ed ha sviluppato un software indirizzato ai Property Manager.
Gestisco team di sviluppo con dimensioni che variano da cinque a dieci persone. Le principali sfide che incontro sono comuni a entrambe le realtà, eccone alcune:
- Mantenere il team di sviluppo motivato, specialmente quando il prodotto evolve nel tempo e non si può sempre ripartire da zero con le tecnologie.
- Far capire agli stakeholder i tempi reali di sviluppo e evitare di accorciarli artificialmente per compiacere le richieste.
- Il cambiamento di mentalità una volta abbracciato il cloud. Il CTO deve ora considerare l’ottimizzazione del software i fin dall’inizio in modo da sviluppare per risparmiare risorse economiche, anziché confidare sulle risorse fisse come avveniva in passato.
Come evolverà secondo te la figura del CTO nei prossimi dieci anni?
Prevedere cosa accadrà nei prossimi dieci anni è un compito molto difficile. Tuttavia ritengo che la figura del CTO dovrà ampliare le competenze in diverse aree, non limitandosi solo a quelle tecniche. Saranno importanti anche competenze relative alla privacy, alla sicurezza dei dati e alla sostenibilità ambientale.
In tema di sostenibilità ecologica, nel nostro contesto abbiamo creato gruppi di lavoro per esplorare come contribuire alla salvaguardia dell’ambiente e adattarci alle normative in materia.
Il CTO dovrà abbracciare una maggiore responsabilità nell’assicurare che la tecnologia rispetti aspetti non solo dal punto di vista tecnico ma anche in ambito amministrativo e burocratico. Anche se in aziende più grandi, potrebbero emergere figure specializzate in specifiche aree come la privacy e la sostenibilità, il CTO avrà il compito di fungere da collante tra queste figure e garantire una visione olistica.
Secondo te come evolverà il mondo della programmazione e della tecnologia nei prossimi anni?
Vedo molto positivamente l’evoluzione della nostra professione e non sono preoccupato per “la scomparsa dei programmatori a causa dell’AI”, perché queste sono prospettive che a mio avviso non sembrano avere molto senso. Questa evoluzione ci permetterà di liberarci delle attività noiose e concentrarci su sfide più creative, come l’analisi, la progettazione e la risoluzione dei problemi.
All’interno della nostra azienda, stiamo conducendo vari esperimenti, ad esempio con GPT-3 di OpenAI e altri software. Stiamo sperimentando sia la scrittura del codice sia la generazione di testi tecnici. Ad esempio nel caso di Italianway stiamo usando l’AI per generare descrizioni degli appartamenti in modo automatico, anche in diverse lingue.
Gli esperimenti stanno portando a un notevole risparmio di tempo, eliminando le attività più noiose nella programmazione, come la scrittura dei test e la generazione della documentazione. Questo ci permetterà di lavorare più velocemente. Tuttavia è importante sottolineare che ci sono due requisiti fondamentali che ogni sviluppatore deve avere. In primo luogo è necessario avere una buona padronanza di tutte le tecnologie coinvolte e comprenderne i dettagli di funzionamento. In secondo luogo è essenziale avere una comprensione approfondita dell’argomento su cui si sta lavorando, perché se non si conosce bene il dominio, le eventuali soluzioni errate fornite dall’intelligenza artificiale potrebbero risultare difficili da individuare..
Puoi suggerire un libro o anche più di un libro che ti ha aiutato nel tuo essere CTO e che puoi consigliare ad altri CTO a aspiranti tali?
Se dovessi suggerire un libro, opterei per “The Mythical Man-Month” di Fred Brooks, scritto nel lontano 1975. Questo libro si concentra sulla gestione del software e offre preziose lezioni su come gestire squadre di sviluppatori. Mette in evidenza l’importanza delle persone nel processo di sviluppo e spiega che aggiungere risorse non sempre riduce i tempi di sviluppo. Nonostante sia un libro vecchio di diversi decenni, le sue lezioni sono ancora attuali e pertinenti.
Inoltre, consiglierei la lettura di David Heinemeier Hansson l’inventore di Ruby on Rails. Hansson è un prolifico blogger che si concentra sullo sviluppo di prodotti software per piccole e medie imprese. Le sue opinioni, seppur talvolta controverse, sono particolarmente utili per chi lavora in realtà di medie dimensioni, offrendo un punto di vista diverso rispetto ad autori che si rivolgono a imprese con budget più elevati.
Un suo libro che mi piace ricordare è “ReWork” che offre spunti interessanti per gestire le imprese di software in modo più intelligente, suggerendo strategie per semplificare i processi e fare le corrette scelte tecnologiche.
Se dovessi descrivere con una metafora il ruolo del CTO quale potrebbe essere la tua visione?
La mia visione del ruolo di CTO è quella di un allenatore. Questa figura conosce a fondo la tecnica di gioco, spesso perché lui è stato un giocatore e ha una conoscenza dettagliata dei singoli membri del team. L’allenatore valorizza ogni membro e coordina il gioco in modo efficace.
Un aspetto importante del ruolo del CTO è la conoscenza delle tecniche di gioco degli avversari. Questo significa che il CTO, soprattutto se si occupa di prodotto, deve monitorare ciò che stanno facendo gli altri. È essenziale osservare l’evoluzione del settore da un punto di vista tecnico e imparare dagli altri, evitando di “reinventare la ruota” e stando attenti a non rimanere indietro rispetto ai concorrenti.
Quali sono secondo te le tre caratteristiche di un buono CTO?
L’aggiornamento costante sulle tecnologie è fondamentale e non può essere trascurato. Un CTO deve rimanere sempre informato e credo che questa regola valga per chiunque, indipendentemente dal livello di esperienza.
Penso anche che sia importante sperimentare le tecnologie in prima persona. Non è necessario diventare esperti, ma è utile mettere le mani in pasta e magari dedicare del tempo ai progetti personali. Se non ci si dedica attivamente al codice, non si può davvero comprenderlo a fondo.
Allo stesso tempo il CTO deve avere una mentalità imprenditoriale, anche se è un dipendente. Questa mentalità è essenziale per guidare il team di sviluppo. E’ importante far comprendere ai membri del team che lo sviluppo del software è un lavoro di squadra, non una corsa individuale. Collaborare è spesso la chiave del successo e l’utilizzo di metodologie come Scrum può aiutare a mantenere una visione di squadra e raggiungere gli obiettivi stabiliti.
Quali sono le sfide più importanti che un CTO si trova ad affrontare oggi?
Le sfide principali che affronto includono sono:
- la motivazione del team di sviluppo, specialmente dopo la fase iniziale di entusiasmo. All’inizio tutti sono entusiasti di utilizzare nuove tecnologie e lavorare su nuovi progetti, ma con il tempo arrivano inevitabilmente problemi e debiti tecnici da affrontare. Mantenere alta la motivazione del team è essenziale.
- far capire agli stakeholder le reali stime di sviluppo necessarie, senza accontentarli o sottovalutare i tempi necessari. Anche se i miei stakeholder sono interni, questa sfida è sempre presente.
- la gestione del budget è diventata una sfida significativa per me. Con il passaggio a soluzioni cloud, è importante considerare i costi fin dall’inizio e non attendere fino a quando si riceve la fattura, altrimenti potrebbero sorgere problemi finanziari.
Come si valuta un buon CTO? Esistono delle metriche per questo?
Secondo me, le metriche diventano particolarmente significative in una fase successiva del progetto.
La valutazione più ovvia credo sia il rispettare le stime, monitorando costantemente l’aderenza anche se la natura del progetto può essere soggetta a cambiamenti e adattamenti nel tempo.
Un’altra valutazione cruciale per un CTO riguarda la qualità delle scelte tecnologiche che devono essere ritagliate sull’esigenze aziendali. Ogni azienda ha risorse limitate, tra cui il team, il budget e il progetto stesso. Pertanto, la capacità di scegliere la tecnologia giusta in base a questi fattori è fondamentale.
Leggi anche: