Che cos’è il Platform Engineering? Ma soprattutto, perché è destinato a diventare un approccio imprescindibile per gli sviluppatori che vogliono ridurre il time to market, migliorare le performance e costruire prodotti ritagliati sulle reali esigenze dell’organizzazione e del mercato?
Secondo il glossario di Gartner, il Platform Engineering è “la disciplina della costruzione e gestione di Internal Developer Platform self-service per il rilascio di software e la gestione del suo ciclo di vita”. Dietro questa definizione, si nasconde un’importante innovazione rispetto al modus operandi che ha contraddistinto per anni una serie di approcci allo sviluppo come, ad esempio, DevOps, Agile e SRE (Site Reliability Engineering).
L’evoluzione del concetto di business agility
“Stiamo assistendo al delinearsi di una nuova, più ampia prospettiva su un tema, quello della business agility, di cui ormai si parla da vent’anni”, spiega Giulio Roggero, CTO e co-founder di Mia-Platform, società specializzata nella realizzazione di piattaforme digitali e applicazioni cloud-native. “Ottimizzare i processi, migliorare la conversazione tra persone e sistemi, scalare il business a livello digitale: sono tutte questioni affrontate dall’Agile manifesto del 2001 che hanno trovato riscontro pratico in diverse prassi, in grado però di sprigionare valore soltanto in determinati casi.
Fino a che si parla di un team di sviluppo di dimensioni limitate, che si occupa in prima persona di progetti circoscritti e in grado di comprendere cosa sta effettivamente funzionando e cosa no, il paradigma funziona bene”. I problemi, secondo Roggero, cominciano quando i prodotti software si fanno più complessi e i team di sviluppatori, di conseguenza, si moltiplicano: le interazioni aumentano, cresce l’interdipendenza tra i gruppi di lavoro e la necessità di potenziare le procedure di quality control genera inevitabilmente vincoli che sfociano in iter approvativi a volte tortuosi.
“Il DevOps si è affermato nel pieno di questa trasformazione, aiutando team agili ad aumentare la fluidità dei rilasci e a utilizzare una serie di canoni automatizzati per la verifica dei requisiti e della sicurezza in assenza di situazioni big bang.” precisa Roggero. “Ma dal momento in cui i team che in azienda rilasciano applicazioni continuano a crescere, si pone la questione della governance dei processi e delle tecnologie per evitare ridondanze lungo l’infrastruttura. Inoltre, se il team cambia, bisogna sostenere costi di onboarding non indifferenti, senza contare il tempo e le risorse da impiegare per istruire da zero i nuovi arrivati sulle buone pratiche”.
Le prerogative del Platform Engineering
Precisate quali sono, oggi, le criticità per le divisioni IT di molte imprese, diventa più semplice spiegare le prerogative di una delle soluzioni più promettenti al problema. Il Platform Engineering consiste, infatti, nel rendere i membri del team di sviluppo a loro volta utenti di una piattaforma in grado di concentrare strumenti eterogenei per la gestione end-to-end di progetti anche complessi.
Il concetto di Platform Engineering, d’altra parte, non si riferisce soltanto alla fase di progettazione iniziale della piattaforma, ma assimila anche le fasi di implementazione e soprattutto di manutenzione dell’ambiente, che implica un continuo lavoro di miglioramento, ampliamento e aggiornamento delle sue funzionalità. “Tutto ruota intorno all’idea di Developer Experience” aggiunge Roggero. “L’ambizione è quella di costruire un prodotto che renda i team autonomi nell’interazione con sistemi, al punto di poter accedere (o addirittura creare) con una vera e propria logica self-service agli strumenti che occorrono per avviare, gestire e monitorare i processi di sviluppo, innestando le policy dell’azienda direttamente nel ciclo di vita delle applicazioni”.
Ma il Platform Engineering è per tutti?
La sfida è arrivare a mettere insieme tecnologie e competenze per costruire una piattaforma del genere. Secondo Roggero, molte grandi imprese stanno già andando nella direzione del Platform Engineering. Ma se la meta è chiara, lo è un po’ meno il percorso da compiere per raggiungerla. “La piattaforma va realizzata in house o serve un prodotto out of the box? E quanto costa implementarla da zero? Ma soprattutto: ci sono, in azienda o sul mercato, le skill necessarie per gestirla e accrescerla? Gartner stima un aumento del 300-400% delle richieste di professionalità adatte a ricoprire questo nuovo ruolo, che potremmo assimilare a quello di una sorta di product manager interno, capace cioè di affrontare sia i temi tecnologici, sia quelli di processo. Sarà dunque difficile accaparrarsi i talenti migliori. Ma anche disponendo di ciascuno degli elementi richiesti, non bisogna dimenticare che la realizzazione di una piattaforma con queste caratteristiche richiede circa un anno di lavoro. Il che è quasi un controsenso, se è di agilità che stiamo discutendo” spiega Roggero.
L’offerta di Mia-Platform per il Platform Engineering
Ed è per questo che Mia-Platform ha sviluppato un’offerta ad hoc per le imprese che vogliono ricorrere al Platform Engineering in tempi decisamente più rapidi, senza dover affrontare tutti gli oneri di un’implementazione in house, e soprattutto potendo fare a meno di un team interno deputato al mantenimento della piattaforma. “Proponiamo ai nostri clienti un sistema già configurato, che include linee guida che permettono di cambiare in modo semplice gli strumenti sottostanti e dashboard avanzate per il monitoraggio dei processi.”.
La flessibilità e la modularità del Platform Engineering consentono quindi non solo di abilitare un approccio self-service allo sviluppo applicativo, ma anche di rivoluzionare il modo in cui i team di sviluppo collaborano tra loro. Buone pratiche di governance, policy aziendali, requisiti di sicurezza e modalità operative sono integrate by design nella piattaforma, e questo permette di snellire notevolmente i flussi approvativi, accelerando la creazione di soluzioni flessibili e scalabili sempre più orientate al paradigma della composable enterprise.
“Sicurezza, scalabilità e performance saranno garantite dalla possibilità di comporre in modo custom servizi e prodotti digitali a partire da cataloghi di componenti software pronti all’uso riutilizzabili e componibili come, ad esempio, Mia-Platform Marketplace. Questi componenti – chiosa Roggero – possono essere installati direttamente dai team di sviluppo all’interno dei propri prodotti software e riutilizzati da altri team aziendali senza la necessità di duplicare i servizi, ma anzi facendo leva sulla condivisione tra i diversi team e applicazioni”.