This blog post is also available in English.

 

Nei dipartimenti IT di molte aziende è sempre più frequente assistere a situazioni nelle quali i team di sviluppo (Dev) e quelli di operations (Ops) iniziano a risolvere i problemi con interventi in urgenza, come dei pompieri che devono spegnere un incendio nel minor tempo possibile. Infatti, se il team Ops da un lato può dare supporto al team Dev per alcune attività (ad esempio, l’attivazione di nuovi servizi), dall’altro ha bisogno del team Dev per alcuni lavori di sviluppo sull’infrastruttura, ed è facile che task di questo tipo blocchino il lavoro dell’altro team. Oltre ad essere molto inefficiente, questa metodologia di lavoro contribuisce anche a generare attriti tra i due team, con il risultato di creare situazioni spiacevoli per entrambi.

Alcune aziende hanno tentato di mitigare questa situazione adottando pratiche di DevOps, un approccio Agile e ricombinando i membri dei precedenti team Dev e Ops all’interno di Feature Teams. Pur ottenendo un significativo miglioramento rispetto alla situazione precedente, queste soluzioni iniziano a mostrare i loro limiti, soprattutto nei contesti più strutturati nei quali i Feature Teams sono molto numerosi e ben compartimentati tra loro. Le figure Ops di questi team, infatti, rischiano spesso di avere poco lavoro da svolgere, col risultato di avere membri del team demotivati e poco interessati, che infine tenderanno a uscire dal team.

La soluzione a questo problema consiste nell’abbandonare la visione incentrata sull’infrastruttura, e mettere invece la Developer Experience al centro del processo di sviluppo.

 

Cos’è la Developer Experience?

La Developer Experience (conosciuta anche come DevX) è la trasposizione del molto più noto concetto di User Experience, riferita però a chi sviluppa artefatti software. I Developers vengono considerati come utenti finali del software che loro stessi stanno creando. Diventa quindi importante fare in modo che abbiano un’esperienza positiva e priva di frizioni durante l’utilizzo del software, che, in questo caso, coincide con il suo sviluppo. Si tratta di un cambio di prospettiva radicale, nel quale i developers sono valorizzati e posti al centro dei progetti e delle decisioni aziendali. 

La Developer Experience riguarda ogni fase dello sviluppo software. Partendo dal design dell’architettura, passando per la scrittura del codice, la fase di testing, il deploy e arrivando al monitoraggio in produzione, tutti i momenti del ciclo di vita del software sono coinvolti e devono essere migliorati in modo da fornire un’esperienza più fluida possibile. Come racconteremo più avanti, anche gli strumenti, sia software che hardware, e l’ambiente di lavoro in generale incidono sulla DevX. 

 

Perché è importante dare valore alla Developer Experience

Investire sulla Developer Experience permette innanzitutto di sviluppare software migliore, e di farlo più velocemente. Se viene posto al centro, responsabilizzato e valorizzato, infatti, il team di sviluppo è più soddisfatto e più propenso a produrre software di qualità. Di fatto, una Developer Experience positiva contribuisce a realizzare parte dei principi sottostanti al Manifesto Agile, quali ad esempio: 

  • La nostra massima priorità è soddisfare il cliente rilasciando software di valore, fin da subito e in maniera continua.
  • I processi agili sfruttano il cambiamento a favore del vantaggio competitivo del cliente.
  • Fondiamo i progetti su individui motivati. Diamo loro l'ambiente e il supporto di cui hanno bisogno e confidiamo nella loro capacità di portare il lavoro a termine.
  • Il software funzionante è il principale metro di misura di progresso.
  • Le architetture, i requisiti e la progettazione migliori emergono da team che si auto‑organizzano.

Inoltre, la Developer Experience è ormai un trend importante anche sul piano di attrazione e mantenimento dei talenti. In un mercato dove gli sviluppatori sono molto richiesti e ricevono numerose proposte di lavoro, tanto da avere spesso diverse opzioni tra cui scegliere, la DevX diventa per loro un criterio di scelta non secondario. Le aziende che sono in grado di fornire l’ambiente di lavoro più invitante, i progetti più interessanti e gli strumenti più performanti sono sicuramente in vantaggio rispetto a realtà che non considerano questo tema. Sotto questo punto di vista, quindi, non prendere in considerazione la Developer Experience non è soltanto un mancato miglioramento, ma significa restare indietro e perdere attrattiva e competitività. 

In sintesi, i principali benefici forniti da una Developer Experience positiva sono:

  • Rimuovere le frizioni durante il lavoro quotidiano;
  • Migliorare la qualità del software prodotto;
  • Ridurre il time-to-market; 
  • Tenere alto il morale del team di sviluppo;
  • Creare un ambiente di lavoro positivo;
  • Evitare perdite di tempo e incidenti;
  • Valorizzare il lavoro e renderlo gratificante; 
  • Favorire la nascita e la condivisione di nuove idee.

 

Come migliorare la Developer Experience

Innanzitutto è bene precisare che, siccome la DevX riguarda tutti gli aspetti dello sviluppo software, è bene adottare un approccio olistico, e creare una Developer Experience Strategy ben strutturata prima di implementare qualunque soluzione. Un approccio olistico significa prevedere soluzioni che si rivolgano alla Developer Experience del singolo membro del team, sia soluzioni rivolte al miglioramento della Developer Experience di team inteso come un'unità.

In questo paragrafo ci limiteremo a indicare solo alcuni punti su cui si può intervenire per migliorare la Developer Experience, in particolare per quanto riguarda l’ambiente e gli strumenti di lavoro. Entrambi questi aspetti, infatti, possono incidere sensibilmente sull’esperienza del team di sviluppo.

Per quanto riguarda l’ambiente di lavoro e la cultura aziendale in generale, investire sulla formazione continua di ogni developer è sicuramente un ottimo modo per valorizzare i membri del team. Allo stesso modo, incoraggiare lo sviluppo di progetti personali e open source, ad esempio mettendo a disposizione una parte delle risorse e delle infrastrutture aziendali, da un lato esalta l’aspetto creativo e inventivo degli sviluppatori, dall’altro può essere un’occasione per sviluppare nuovi asset utili anche in azienda. Anche l’adozione di pratiche come la metodologia Agile, il Platform Engineering, la Docs as Code e strutturare l’azienda secondo il paradigma della Composable Enterprise contribuisce a migliorare la Developer Experience in generale. 

Riguardo invece agli strumenti hardware, un laptop altamente performante può ridurre sensibilmente i tempi tecnici necessari per alcune operazioni di routine, migliorando e velocizzando il rilascio di nuovi sviluppi. Anche la possibilità di personalizzare la postazione di lavoro, ad esempio aggiungendo un secondo schermo, dotandola di uno standing desk, o fornendo delle cuffie per ridurre il rumore circostante, è un ottimo modo per ottimizzare il lavoro del team di sviluppo.

È però la dotazione di strumenti software che permette di ottenere i migliori risultati in termini di DevX. In particolare, lo strumento più efficace è sicuramente l’Internal Developer Portal (IDP), ovvero un portale unico che raccoglie tutti gli strumenti e le tecnologie disponibili e utilizzati all’interno dell’azienda. Grazie all’Internal Developer Portal, i Dev diventano gli utenti finali del team di Ops: in questo modo, quello che prima era chiesto al team di Ops ora è risolto in modalità self‑service dall’IDP. L'evoluzione dell’Internal Developer Portal deve essere un obiettivo e una responsabilità di entrambi i team, e diventa un asset importante per l’azienda, in quanto fornisce i seguenti benefici: 

  • Favorisce la comunicazione tra i team;
  • Velocizza il time‑to‑market;
  • Garantisce una governance distribuita;
  • Migliora la qualità del software;
  • Fornisce visibilità, tracciabilità, auditabilità e osservabilità in tutto il ciclo DevOps.

 

Conclusioni

Riassumendo, per risolvere le inefficienze dovute alle diverse situazioni che si vengono a creare tra team Dev e team Ops, è necessario iniziare a mettere al centro del processo di sviluppo la Developer Experience. È, di fatto, un cambio di prospettiva radicale, che considera gli sviluppatori come utenti finali del software che loro stessi sviluppano, e che pertanto devono godere di un’esperienza quanto più positiva, fluida e senza frizioni durante il loro lavoro.

Le aziende devono quindi investire nel miglioramento della Developer Experience, in quanto grazie ad essa il team di sviluppo risulta più soddisfatto e gratificato dal lavoro svolto, e, soprattutto, si produce software di qualità. I fattori su cui intervenire sono l’ambiente e gli strumenti di lavoro, sia hardware che software: lo strumento più efficace è l’Internal Developer Portal, un portale nel quale vengono resi disponibili in maniera self‑service tutti i servizi e le tecnologie disponibili in azienda.

Creare un IDP ex novo può essere lungo e complesso, sia in termini di tempo, sia in termini di risorse, soprattutto nella fase iniziale. Adottare un Internal Developer Portal già pronto come quello fornito da Mia‑Platfom permette di ridurre i costi, di accelerare la sua implementazione e di concentrarsi sugli asset a valore aggiunto da esporre al suo interno.


Torna all'inizio

Mia-Platform v11

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