Ogni organizzazione è alla costante ricerca di modi per semplificare le proprie operazioni, migliorare la produttività dei team di sviluppo e offrire loro un’ottima Developer Experience. L’efficienza dell’infrastruttura tecnologica dell’azienda è un fattore cruciale, tanto da poter vanificare tutti questi sforzi, se non implementata correttamente. Per questo motivo negli ultimi anni è diventato sempre più importante il Platform Engineering.

In questo articolo si parlerà innanzitutto dei golden path, di cosa sono, dei loro vantaggi e delle loro sfide e del ruolo del Platform Engineering. Inoltre, illustreremo anche le best practice da seguire per l'implementazione dei golden path.

 

Cosa sono i golden path

Nell’ambito dello sviluppo software il termine golden path è stato utilizzato fin dal 2009 e descrive un percorso prestabilito e ben supportato per “costruire qualcosa”. Vediamo meglio cosa si intende:

  • Prestabilito: i golden path non sono soluzioni uniche per ogni tipo di utilizzo. In genere, vengono progettati per riflettere le esigenze e gli obiettivi specifici di un’organizzazione.
  • Ben supportato: i golden path devono essere supportati da documentazione, strumenti e formazione che aiuteranno i team di sviluppo a capirli e a seguirli.
  • Percorso per “costruire qualcosa”: i golden path non riguardano solo gli aspetti tecnici dello sviluppo del software, ma includono anche i requisiti di business e gli obiettivi generali del progetto.

I golden path spesso sono creati basandosi su best practice, standard relativi al settore di appartenenza e la conoscenza e l'esperienza accumulata dai team di sviluppo di un'organizzazione. Sono progettati per ridurre i rischi, garantire risultati uniformi e ottimizzare il processo di sviluppo software.

 

Vantaggi dei golden path

Seguire un golden path porta generalmente a migliorare la qualità, la manutenibilità, le prestazioni del software e la Developer Experience. I vantaggi dei golden path nello sviluppo del software sono i seguenti:

  • Uniformità nella codebase: i golden path forniscono un approccio standardizzato allo sviluppo software, garantendo che tutti i membri del team seguano le stesse linee guida e pratiche. Questo promuove l’uniformità degli stili di programmazione, delle architetture e dell’implementazione, rendendo la codebase più facile da comprendere e mantenere e, di conseguenza, semplificando la collaborazione.
  • Onboarding e condivisione della conoscenza: i golden path fungono da meccanismo di condivisione della conoscena all’interno dell’organizzazione in quanto, definendo delle pratiche standardizzate, facilitano il trasferimento di conoscenza ed esperienze tra i diversi membri del team. I nuovi membri che si uniscono al team possono prendere confidenza velocemente con i path supportati, riducendo così la curva di apprendimento e permettendo loro di contribuire in modo efficace già dall’inizio. La comprensione condivisa del golden path promuove una collaborazione efficace e consente processi di onboarding più rapidi.
  • Miglioramento della qualità e riduzione del rischio nel tempo: i golden path vengono definiti in base alle best practice e alla conoscenza condivisa, prendendo spunto dall’esperienza pregressa derivata da progetti precedenti. Seguendo questi golden path i team di sviluppo possono creare software di alta qualità, più robusto, affidabile e facilmente manutenibile. Questo porta ad avere meno bug, una fase di debugging più semplice e un prodotto software più stabile.
  • Migliore Developer Experience: “Developer Productivity + Developer Impact + Developer Satisfaction = Developer Experience.” — GitHub Blog. Grazie alla maggior uniformità nella codebase e a una condivisione della conoscenza efficace, aumenterà la produttività: si avrà anche un impatto positivo sul software, arrivando così a una maggiore soddisfazione dei membri dei team e a un generale miglioramento della Developer Experience.
  • Riduzione dei costi: le spese associate all'assunzione possono superare i 40.000 dollari per dipendente. Se una parte di questi costi può essere attribuita alla formazione e alla diminuzione della produttività durante la fase di onboarding, una parte significativa è sostenuta durante il processo di reclutamento stesso. Quando gli sviluppatori di un’azienda sono soddisfatti e vedono l’impatto di quello che costruiscono sono più propensi a rimanere e a crescere, evitando così i costi di assunzione. Oltre a questo, il minor tempo impiegato a risolvere bug e altri problemi contribuisce a ridurre i costi.

 

Sfide dei golden path

I golden path nello sviluppo del software offrono diversi vantaggi, ma comportano anche alcune sfide che è bene tenere a mente:

  • Best practice in continuo cambiamento: il panorama dello sviluppo software è in continuo cambiamento, e quella che è considerata oggi una best practice può non esserlo più domani. Un golden path definito a un certo momento può diventare obsoleto o meno efficace man mano che emergono nuove tecnologie e approcci. Sono necessari valutazioni e aggiornamenti regolari per garantire che il golden path rimanga pertinente e allineato agli attuali standard del settore.
  • Bilanciamento tra innovazione e standardizzazione: i golden path mirano a fornire uniformità e affidabilità, ma a volte possono ostacolare l’innovazione. I team di sviluppo possono sentirsi limitati dalle linee guida predefinite, impedendo loro di esplorare nuove idee o di adottare tecnologie all'avanguardia. Trovare il giusto equilibrio tra la necessità di standardizzare e quella di innovare può essere una sfida che richiede continue discussioni e aggiustamenti.
  • Compatibilità e integrazione: i golden path spesso raccomandano specifiche tecnologie, framework o librerie che funzionano bene insieme. Integrare questi componenti con i sistemi esistenti o tool di terze parti può presentare dei problemi di compatibilità. È necessario valutare attentamente ed eseguire test rigorosi per assicurare un’integrazione fluida e minimizzare ogni potenziale conflitto o problema.

 

Progettare golden path con il Platform Engineering

Considerando le sfide associate ai golden path, ci si può chiedere: "Come posso progettare un golden path senza che diventi un collo di bottiglia nel prossimo futuro?". La risposta è progettare golden path con il Platform Engineering.

Secondo la definizione formulata da Gartner, il Platform Engineering è “la disciplina della costruzione e gestione di Internal Developer Platform (IDP) self‑service per il rilascio di software e la gestione del suo ciclo di vita”. Dunque, i Platform Engineer costruiscono e forniscono un prodotto integrato, spesso chiamato "Internal Developer Platform", che copre la toolchain DevOps e le necessità operative dell'intero ciclo di vita del software.

L'Internal Developer Platform (IDP) comprende un insieme completo di strumenti, servizi e infrastrutture integrati in un'unica piattaforma, in modo da ridurre il carico cognitivo dei team di sviluppo, pur mantenendo il contesto essenziale e le tecnologie sottostanti.

L'IDP riduce il carico cognitivo degli sviluppatori astraendo dalle complessità dell'infrastruttura, fornendo flussi di lavoro standardizzati e automatizzando le attività ripetitive. In questo modo i team di sviluppo possono concentrarsi maggiormente sulla scrittura di codice, sulla realizzazione di funzionalità e sul miglioramento della qualità del software, anziché occuparsi degli strumenti e delle sfide legate all'infrastruttura.

Oltre a ridurre il carico cognitivo degli sviluppatori, il platform engineering, se fatto bene, fornisce golden path che corrispondono al livello di astrazione preferito dal singolo sviluppatore che interagisce con il livello IDP. Allo stesso tempo, migliora la collaborazione e accelera il processo di sviluppo del software.

Il Platform Engineering, se fatto bene, significa che l'IDP dovrebbe essere l’unico punto di accesso dove gli sviluppatori possono trovare tutti gli strumenti, i modelli e la documentazione di cui hanno bisogno, con una grande enfasi sui seguenti aspetti:

  • Esperienza di onboarding semplificata: l'IDP punta a semplificare l'esperienza di onboarding degli sviluppatori, fornendo loro il giusto setup di consegna o collegandoli direttamente a uno esterno.
  • Ambiente di lavoro collaborativo: l'IDP deve supportare la componibilità, il riutilizzo, la condivisione e la collaborazione tra team e risorse. Tutte queste caratteristiche migliorano la cooperazione, la visibilità e l’ownership utilizzando le pratiche di innersourcing.
  • Flusso di lavoro self-service: l'IDP deve consentire agli sviluppatori di disporre in modalità self-service di asset e risorse. Questo include l'accesso a pacchetti software preapprovati, strumenti CI/CD, ambienti di test e sviluppo e visibilità end-to-end.

Molte aziende stanno adottando il Platform Engineering per implementare golden path nelle loro organizzazioni. Tra i primi che hanno iniziato questo percorso, merita di essere menzionata Spotify. Prima del 2016, quando Spotify è cresciuta fino a diventare una grande startup, la sua cultura agile con team autonomi è diventata un collo di bottiglia che ha causato la frammentazione del suo ecosistema di strumenti per gli sviluppatori: questo ha portato alla creazione di Backstage, una piattaforma open-source per la costruzione di Internal Developer Portal.

Sempre nel 2016, Mia-Platform è stata fondata ed è diventata una delle primissime società di prodotto dedicate al Platform Engineering. Mia-Platform si è ora evoluta in un'azienda internazionale incentrata sulla creazione di Internal Developer Platform personalizzate e enterprise-ready.

 

Best Practice per implementare golden path

L'implementazione dei golden path con il Platform Engineering e l'evoluzione in una Platform Company richiedono un approccio deliberato e strategico. Inoltre, si tratta di un processo graduale che richiede una riorganizzazione a più livelli.

Le seguenti best practice garantiscono un'adozione e un utilizzo di successo. Ecco alcune pratiche consigliate per l'implementazione dei golden path:

 

Implementazione graduale
Conviene implementare i golden path in modo graduale piuttosto che tentare una trasformazione completa in una sola volta. Questo approccio permette una migliore comprensione, un miglior adattamento e un’integrazione graduale nei flussi di lavoro esistenti. Procedendo per piccoli passi è possibile misurare l’impatto e apportare le modifiche necessarie.

È importante notare che un’implementazione incrementale non implica necessariamente un processo lungo e lento. Il passo che determina l’implementazione dipenderà dalle circostanze specifiche e dagli obiettivi dell’organizzazione. Alcune organizzazioni potrebbero scegliere di applicare i cambiamenti in modo graduale su un periodo più lungo, mentre altre potrebbero optare per un processo più rapido. La chiave è trovare un equilibrio che consenta un'implementazione efficace, tenendo conto della capacità di cambiamento dell'organizzazione.

 

Cultura e comunicazione
È importante sensibilizzare i team di sviluppo sulle motivazioni, i benefici e le migliori pratiche associate ai golden path. Una comunicazione chiara e una documentazione esaustiva sono essenziali per garantire che tutti comprendano lo scopo e le linee guida. Fornire formazione, documentazione e organizzare dei workshop che spieghino i principi e le tecniche utilizzate favorisce una comprensione condivisa e incoraggia l’adesione ai golden path.

 

Documentazione esaustiva
La documentazione ha un ruolo fondamentale. È importante creare linee guida, tutorial e knowledge base che siano chiare, concise e puntuali, in modo da evidenziare le best practice e le procedure associate ai golden path. La documentazione deve essere facilmente accessibile ai team di sviluppo e aggiornata regolarmente man mano che emergono nuovi miglioramenti.

 

Feedback e test
Incoraggiare i team di sviluppo e gli stakeholder a fornire feedback lungo l’intero processo di implementazione è fondamentale. Bisogna sollecitare regolarmente a fornire contributi e ascoltare le esperienze e i suggerimenti di coloro che seguono i golden path. Raccogliere i feedback aiuta a identificare i pain point, le aree di miglioramento e potenziali ostacoli. Inoltre, è bene eseguire test rigorosi di quality assurance per validare l’efficacia l’idoneità del golden path in ambienti di produzione.

 

Continuo miglioramento
Bisogna entrare in un’ottica di continuo miglioramento ed evoluzione dei golden path, cercando proattivamente opportunità di perfezionamento e ottimizzando le pratiche prestabilite sulla base di feedback, novità del settore e trend emergenti. Perciò, è necessario rivedere e aggiornare regolarmente le linee guida per garantirne la pertinenza e l’efficacia nel tempo. I membri dei team devono quindi essere incoraggiati a contribuire con le loro idee ed esperienze per rivedere e migliorare i golden path.

 

Approccio user-centrico
I golden path non devono compromettere l’esperienza degli utenti/clienti. Nel concentrarsi sulla standardizzazione e l’efficienza, è fondamentale dare la priorità agli utenti finali e ai loro bisogni. Bisogna dunque valutare l’impatto del golden path sull’esperienza utente e apportare le dovute modifiche per evitare che abbia conseguenze negative sull’utilizzo, l’accessibilità o la soddisfazione generale.

 

Seguendo queste best practice è possibile implementare correttamente i golden path, garantendo allo stesso tempo un’adozione efficace, in continuo miglioramento e allineata con le necessità dell’utente. Questo approccio promuove un processo di sviluppo virtuoso e collaborativo che porta benefici sia ai team di sviluppo, sia agli utenti finali del software.

 

Conclusione

Per poter sfruttare appieno il potenziale del platform engineering, le organizzazioni devono investire in architetture affidabili, tecnologie cloud-native e collaborazione tra le diverse funzioni. Da un punto di vista dell'architettura, è essenziale passare attraverso un processo di disaccoppiamento che renda indipendenti gli elementi fondamentali che caratterizzano l'infrastruttura a servizio di una Platform Company.

Per scoprire di più, scarica gratuitamente il white paper su Perché e come evolvere in una Platform Company.


Questo articolo è stato scritto da Michel Murabito, Developer Advocate di Mia‑Platform.

Torna all'inizio

New call-to-action

© MIA s.r.l. Tutti i diritti riservati