Con business aziendali che diventano sempre più dipendenti dal software, la developer experience risulta essenziale per garantire una maggiore produttività e una riduzione del time-to-market. Poter contare su pratiche di sviluppo più efficaci supportate da strumenti che aiutano a reperire le risorse e a eliminare i colli di bottiglia nei processi, non solo facilita la creazione di software di più alta qualità e in linea con gli obiettivi aziendali, ma facilita i rapporti tra line-of-business, sviluppatori e operation IT. È questa la chiave per ottenere la massima produttività, favorendo la creazione di contesti di lavoro più organizzati, meno stressanti e adatti all’espressione del talento. Ne parliamo con Giulio Roggero, cofondatore e CTO di Mia-Platform, independent software vendor specializzato nella realizzazione di piattaforme digitali cloud native.
Migliorare la developer experience per massimizzare la produttività
Per migliorare la developer experience, ossia l’esperienza degli sviluppatori durante ogni fase dello sviluppo software, è inevitabile adottare strumenti per organizzare, gestire e reperire più facilmente le componenti software in gioco e i servizi d’esecuzione.
Queste sono le funzioni di una moderna internal developer platform, strumento pensato per raccogliere tutti gli strumenti e le tecnologie disponibili utilizzati all’interno dell’azienda in un portale unico, in modo da evitare le duplicazioni di oggetti tra team diversi, facilitare sviluppi conformi a policy e criteri di sicurezza attraverso solide procedure di controllo e di pubblicazione dei soli artefatti certificati.
L’utilizzo di un portale professionale sostituisce l’insieme di tool artigianali impiegati da team di sviluppo, team o aziende per semplificare lo sviluppo, spesso inadatti all’utilizzo condiviso e sicuro. Una internal developer platform abilita anche la fruizione self-service dei servizi IT che servono per l’avvio dei nuovi progetti e il deploy dei prototipi, evitando i tempi e le burocrazie d’approvazione per ottenere le risorse. Oltre a facilitare e accelerare il lavoro, l’internal developer platform favorisce la massima autonomia dei team durante tutte le fasi di sviluppo, dalla configurazione, al test, fino all’esposizione delle API e degli eventi.
L’importanza della focalizzazione sugli scopi di business e della metodologia agile
L’utilizzo di una internal developer platform offre maggior valore all’azienda quando non è limitato ai soli developer. “Questo perché l’obiettivo della programmazione non è scrivere del codice, bensì risolvere le esigenze di business” spiega Giulio Roggero. “La developer platform deve quindi offrire una visione d’insieme sui progetti nell’ambito del loro naturale ciclo di vita”. La produttività va in definitiva a misurarsi sull’intero ciclo di vita software: “Che parte dall’identificazione della necessità di business, per esempio, attraverso le richieste dei clienti, le analisi di mercato o le mosse dei competitor, e si sviluppa attraverso la creazione di applicazioni, con l’approccio incrementale” precisa Roggero.
Un contributo importante è costituito dal supporto alla metodologia agile, con cui si costruisce un poco alla volta la soluzione attraverso i feedback degli utilizzatori e gli obiettivi di business aziendali. Con il metodo agile, lo sviluppo di software può partire da semplici ipotesi: “L’idea che una determinata applicazione possa risolvere un problema o rispondere a una specifica esigenza di mercato” spiega Roggero. “È solo con la messa in produzione di una prima soluzione che si scopre se le premesse sono giuste e se ha senso svilupparla per centrare meglio gli obiettivi”. Il supporto dell’agile attraverso i differenti team è la base per migliorare la developer experience e generare valore per l’azienda.
Come una developer platform elimina i colli di bottiglia tra sviluppo e business
La developer platform produce valore di business quanto più viene usata per gestire l’intero ciclo di vita del software, ottimizzando e rendendo più veloci i passaggi tra le fasi di sperimentazione e di creazione continua delle nuove funzionalità. “Serve a rimuovere i colli di bottiglia che si creano nel ciclo dello sviluppo – spiega Roggero – e non soltanto tra i team di programmatori”.
In azienda i nuovi sviluppi software nascono dalle idee e dagli spunti delle line-of-business (LOB), ma senza i dettagli su ciò che dev’essere realizzato. “Questo porta ad avere fasi lunghe e continue d’analisi che lasciano i programmatori in attesa” precisa Roggero. “L’approccio agile risolve questo collo di bottiglia, portando le LOB a bordo del progetto e promuovendo lo sviluppo incrementale”. L’agile si accompagna con una più moderna organizzazione delle persone, che lavorano in feature team: “Team dotati di autonomia e piena responsabilità su un servizio, un’applicazione o una specifica funzionalità” spiega il CTO di Mia-Platform. “Questo fa sì che sia condivisa la responsabilità sul risultato finale”.
L’importanza delle operation in self-service
Un altro ambito dove l’internal developer platform riduce i colli di bottiglia sono le operation IT. Le moderne aziende hanno in genere pochissime risorse dedicate alla gestione dei delivery IT, persone che inevitabilmente devono darsi delle priorità e ottimizzare il loro tempo. “I colli di bottiglia nelle operation sono comuni e difficili da risolvere” spiega Giulio Roggero. “Spesso i team applicativi sono esterni all’IT, devono ottenere l’approvazione di altri team per i rilasci in produzione e questo crea ingorghi, come ai caselli autostradali”.
Anche in questo caso l’internal developer platform è lo strumento che, opportunamente istruito, può aiutare la gestione e rendere fluidi i processi interni a vantaggio della developer experience. “Rende possibile gestire in self-service le richieste, rendendo il team di sviluppo indipendente dai team operativi IT, evitando che questi ultimi diventino un collo di bottiglia nelle logiche di sviluppo e rilascio continuo”.
L’approccio self-service va a sostituire quello tradizionale ticket-based con benefici anche per le operation IT: “Che possono utilizzare al meglio il loro tempo senza la burocrazia delle richieste” precisa il co-fondatore e CTO di Mia-Platform, sottolineando come il vantaggio sia soprattutto nel rispetto dei time to market, nella riduzione delle frizioni tra reparti e nella developer experience.
Gli aumenti di produttività realizzabili con una internal developer platform
Nell’esperienza di Mia-Platform, l’adozione di una internal developer platform è in grado di ridurre i tempi d’avvio di un progetto del 70/90% e i costi del 40%. “Nel caso di realtà che hanno realizzato il passaggio dallo sviluppo tradizionale a quello cloud-native con l’adozione dell’internal developer platform, le attività che dovevano essere pianificate con tempi di mese sono oggi realizzabili in una giornata” spiega Roggero.
“Grazie all’automazione nei processi d’approvazione e di provisioning IT, i team di sviluppo riescono a essere operativi fin dal primo giorno di avvio dei progetti. Gli automatismi favoriscono inoltre l’autonomia dei team di sviluppo e le compliance sugli aspetti di qualità e sicurezza”.
Oltre ai tempi di avvio risultano avvantaggiati i tempi di delivery. Secondo Mia-Platform, a seconda dei progetti, il tempo di rilascio si avvantaggia del 30-60%, grazie alle capacità dell’internal developer platform di supportare troubleshooting, monitoraggio e garantire la business continuity.
“Se il sistema non funziona è il team applicativo a ricevere gli allarmi e a lavorare su troubleshooting e debug – precisa Roggero –. Grazie all’automazione può rilasciare le patch necessarie a risolvere il problema, senza coinvolgere inutilmente il team delle operation IT”.
Tra gli utilizzatori dell’internal developer platform di Mia-Platform c’è Trenord, attraverso due distinti team: “Due team indipendenti responsabili per sviluppo, UX, test e rilasci su app e sito Web per le attività di competenza” spiega Roggero. “L’internal developer platform li supporta nel gestire le attività in modo indipendente e permettendo allo stesso tempo le comunicazioni per i servizi condivisi come, per esempio, quelli che riguardano le ID degli utenti e l’accesso ai database”.
Altra realtà che usa l’internal developer platform è Cattolica Assicurazioni a supporto di circa 200 sviluppatori. “Con l’internal developer platform sono stati realizzati in brevissimo tempo i servizi d’integrazione con un partner del settore finanziario per la vendita delle polizze” racconta Roggero. ”Cattolica usa inoltre le capacità di Mia-Platform Fast Data, l’application che ottimizza la gestione e l’interoperabilità dei dati. Tali capabilities sono integrate nell’internal developer platform e sono funzionali per abbattere i silos aziendali, permettendo una maggiore integrazione e circolazione dei dati. Con l’internal developer platform hanno potuto riorganizzare i team di sviluppo in modo più efficace”.