Moltissime aziende oggi si trovano ad implementare una strategia DevOps, che prevede lo snellimento e l'accelerazione delle interazioni tra sviluppo e operations, al fine di rendere più rapide le fasi di sviluppo software e di rendere il business più agile. Molto spesso le organizzazioni però intraprendono questa strada pensando alle soluzioni DevOps da implementare, senza considerare le figure professionali necessarie al cambiamento. Il passaggio alla metodologia DevOps necessita però delle giuste persone con i giusti ruoli, che abbiano competenze specifiche e volontà di collaborare.
A nostro avviso i leader IT dovrebbero assicurarsi la presenza di sette nuovi ruoli professionali in grado di guidare il passaggio alla nuova metodologia e di garantirne il successo.
Condividendo la visione espressa anche da Stephanie Overby nell'articolo "7 DevOps roles you need to succeed", oltre a un lead change agent, che supervisioni la transizione verso DevOps, le figure chiave del team dovrebbero essere:
- DevOps Evangelist
- Release Manager
- Automation Architect
- The Software Developer/Tester
- The experience assurance (XA) professional
- The Security Engineer
- The utility technology player o DevOps Engineer
Secondo molti esperti non si può identificare un vero e proprio Team DevOps. E' importante piuttosto comprendere quali siano le figure fondamentali a sostenere e guidare la transizione dell’approccio. “Essendo DevOps una metodologia innovativa che determina cambiamenti, le caratteristiche, le competenze e i confini di tali ruoli sono in continua evoluzione” afferma Marco Bizzantino, CTO di Kiratech S.p.A.
Anche se non esiste uno schema univoco utilizzabile per riorganizzare e sviluppare queste nuove competenze, l’esperienza, propria o altrui, può venirci in aiuto. "DevOps non è solamente un insieme di tecnologie, si può definire invece come un vero e proprio cambiamento culturale", afferma Marco Bizzantino.
L'acronimo CALMS, che abbiamo spiegato in un precedente post, individua nello specifico i punti chiave della metodologia DevOps, ovvero Culture, Automation, Lean, Monitoring, Sharing. Tale percorso, che porta allo sviluppo più rapido e semplice di un software più solido, consiste quindi nell’implementazione di un insieme di pratiche, cultura, valori e soluzioni che guidano il cambiamento.
Un errore molto comune comune che le aziende spesso fanno è di voler unire i due silos Dev e Ops creando un terzo silo, DevOps, senza pensare al contesto in modo più ampio. Tale metodo è superficiale, e non funziona.
La chiave DevOps è una maggiore collaborazione tra developer e operations; per attuare ciò occorre quindi ripensare i ruoli di sviluppo e operations esistenti e riorientarli attorno alla fornitura di software continui, dalle idee e dallo sviluppo alla produzione e alla manutenzione.
I nuovi ruoli DevOps comprendono quindi figure già esistenti nei team agile, di prodotto, ingegneristici, di sicurezza, IT, di quality assurance e delle operations, il tutto orchestrato da un unico focus aziendale.
Se si pensa all’obiettivo alla base del DevOps, ovvero quello di aumentare la velocità di sviluppo software lungo tutta la catena del valore, si può facilmente comprendere che i ruoli coinvolti si stanno spostando. Tutti coloro che collaborano al processo DevOps devono avere una comprensione più ampia e profonda degli specifici obiettivi che sono tenuti a raggiungere. Uno sviluppatore non è più solo uno sviluppatore responsabile di committare X linee di codice: egli deve infatti capire le necessità, scrivere il codice, testarlo e distribuirlo. Un tester non è più solo responsabile di assicurarsi che la funzionalità risulti come è stata prevista. Egli infatti dovrà anche assicurarsi che la user experience dell'applicazione stia funzionando come previsto in condizioni di vita reale e su dispositivi e reti reali.
I 7 ruoli fondamentali
L’assegnazione di ruoli nuovi o ridefiniti non è di per sé sufficiente per una trasformazione DevOps di successo, ma è un primo passo essenziale. Spesso le aziende non si rendono conto che le persone rappresentano la componente più importante per il successo di un’iniziativa, e inseriscono delle figure all’interno dei team DevOps prima ancora di aver compreso e documentato tutte le competenze necessarie per un team di alto livello.
Di seguito abbiamo elencato i sette ruoli e le specifiche competenze correlate, fondamentali per qualsiasi organizzazione che desideri adottare un approccio DevOps di successo.
-
Il DevOps Evangelist
Questa figura si occupa di promuovere i vantaggi che DevOps porta, identificando e quantificando i benefici aziendali derivanti dalla maggiore agilità che tale metodologia offre. In qualità di “leader del cambiamento", il DevOps Evangelist garantisce il coinvolgimento dei team di sviluppo e operations, identifica i ruoli chiave per supportare i metodi di implementazione delle pratiche e garantisce che i professionisti IT siano qualificati e autorizzati a effettuare tali modifiche. Questo leader del cambiamento DevOps deve inoltre rimuovere la paura del fallimento dall'organizzazione: in azienda deve attecchire una cultura dell'apprendimento in cui il fallimento è sicuro, ma ha come conseguenze l’apprendimento e un miglioramento.
-
Il Release Manager
Che questa figura si chiami release manager, release engineer, o product stability manager, il focus è lo stesso: i release manager lavorano per indirizzare la gestione e il coordinamento del prodotto, dallo sviluppo alla produzione. In genere lavorano su più dettagli tecnici e problematiche in cui un project manager tradizionale non sarebbe coinvolto. I release manager supervisionano il coordinamento, l'integrazione e il flusso di sviluppo, test e implementazione per supportare il rilascio continuo. Si concentrano sulla creazione e sul mantenimento della catena di strumenti di distribuzione delle applicazioni end-to-end.
-
L’Automation Architect
Poiché una delle basi DevOps è l’automation, questo ruolo è fondamentale. A volte chiamati specialisti dell'integrazione, gli Automation Architect analizzano, progettano e implementano strategie per il continuous deployment, garantendo al contempo un'elevata disponibilità sui sistemi di produzione e di pre-produzione.
Gli Automation Architect hanno un ruolo di automazione completo che coinvolge le soluzioni DevOps e le piattaforme cloud. Questo ruolo spesso comprende anche il lean thinking nei principali processi DevOps.
Tale ruolo diventa fondamentale, in quanto le organizzazioni DevOps devono fornire un ambiente estremamente affidabile che sia completamente automatizzato e privo di ostacoli.
-
Il Software Developer/Tester
All’interno di un’organizzazione DevOps il nuovo ruolo di Software Developer/Tester è al centro del processo e aumenta drasticamente la portata delle relative responsabilità. Gli sviluppatori in ambito DevOps sono infatti responsabili non solo di trasformare nuovi requisiti in codice, ma anche di eseguire attività di testing, di distribuzione e monitoraggio continuo. Spesso questo passaggio include l’esecuzione di più test automatizzati, in modo tale che la qualità del codice non ne risenta.
Oggi molti team pensano ancora di poter fare test manuali e di mantenere al contempo un certo livello di agilità. Questo non è possibile, in quanto, se vi è la necessità di testare nuove build ogni giorno e si continuano a fare test manuali della durata di più settimane, la situazione risulterà ingestibile. La qualità del prodotto in questi casi diminuirà fino a quando l'organizzazione e i processi non cambieranno.
-
L’Experience Assurance (XA) Professional
Essendo la funzione di Quality Assurance (QA) spesso parte del processo di sviluppo del software, diventa necessario un nuovo tipo di controllo quando le organizzazioni adottano la metodologia DevOps. La necessità dei un tester QA viene quindi sostituita dalla necessità di esperti XA incaricati di garantire che tutte le nuove funzionalità e caratteristiche vengano rilasciate tenendo conto dell'esperienza dell'utente finale.
-
Il Security Engineer
Nello sviluppo tradizionale a cascata, la sicurezza del sistema è molto spesso un “di più”. È un "requisito non funzionale" che, come la QA, viene spesso applicato alla fine dello sviluppo del sistema. Le organizzazioni DevOps devono invece avere dei security engineer che lavorino a fianco degli sviluppatori, esprimendo le loro raccomandazioni in fasi iniziali all’interno del processo. Si parla in questo caso di “security by design”, per dire che la sicurezza dev’essere insita all’interno dell’applicativo realizzato.
-
L’utility technology player o DevOps Engineer
L'ambiente DevOps, con il suo ritmo incalzante, richiede un nuovo genere di IT Operations o System Administrator, che siano coinvolti nel processo di sviluppo del software. Oggi, non sarebbe insolito per questi esperti di operations - a volte chiamati anche DevOps Engineer - essere coinvolti in uno sprint planning per garantire che la qualità del servizio, la gestione delle risorse o la sicurezza siano messe in priorità rispetto a quanto definito dal business.
Non importa se il loro background tradizionale è lo sviluppo o se sono le IT operations, le organizzazioni DevOps richiedono utility technology player (o DevOps Engineer) che possano operare efficacemente su più fronti come piattaforme di sviluppo, strumenti, reti, server e database, e che siano cross-funzionali ai reparti di sviluppo e di supporto.
Abbiamo analizzato ora questi ruoli fondamentali per un’azienda che intenda intraprendere una strategia DevOps. E la tua organizzazione, a che punto è con la transizione verso questa metodologia?
Scoprilo facendo il nostro Self Assessment: apprenderai qual’è il livello di maturità DevOps della tua azienda e riceverai il report personalizzato con i nostri consigli per migliorare il processo e passare al livello successivo.
Fonti:
TechBeacon https://techbeacon.com/7-devops-roles-you-need-succeed
Puppet Blog https://puppet.com/blog/what-a-devops-engineer