Crea la struttura del team DevOps ideale
Trovare il giusto equilibrio nel tuo team DevOps non è una ricetta uguale per tutti.
Una solida piattaforma DevOps ha bisogno di una struttura robusta del team DevOps per avere la massima efficienza.
Costruire un team DevOps dalla struttura solida non significa semplicemente creare un gruppo di persone con competenze tecniche, ma promuovere una cultura DevOps incentrata sulla collaborazione, sul miglioramento continuo e sull'efficienza lungo tutto il ciclo di vita del prodotto.
Poiché le aziende cercano di semplificare il processo di sviluppo software, è fondamentale comprendere i ruoli di un tecnico DevOps, del team di sviluppo e di come gli strumenti di automazione possono migliorare la produttività. Questa visione olistica aiuta a plasmare una struttura DevOps che sia in linea con gli obiettivi generali di distribuzione del software affidabile e un ambiente di lavoro produttivo.
Per definire la struttura di un team entrano in gioco diversi fattori:
- Silo esistenti: esistono set di prodotti/team che lavorano in modo indipendente?
- Leadership tecnica: i manager del gruppo possono raggiungere gli obiettivi di DevOps?
- Cambiamenti di ruolo: le attività operative sono ora integrate nei ruoli di sviluppo, i team di sicurezza collaborano con tutti e la tecnologia sta cambiando. Bisogna quindi attendersi di dover rivalutare regolarmente ogni aspetto del processo.
- Miglioramento continuo: un team DevOps non sarà mai immutabile, ma sarà necessaria un'iterazione.
La divisione di Dev e Ops in team separati spesso comporta problemi nel processo di deployment. Tuttavia, applicare una cultura DevOps in cui siano integrati strumenti comuni può colmare queste lacune.
Il consulente di gestione Matthew Skelton descrive una serie di diversi scenari di DevOps in modo dettagliato. Ma ora presenteremo solo alcuni dei silos citati e come influiscono su un'organizzazione.
Secondo Skelton è la classica situazione in cui ogni team svolge il suo lavoro e lo passa al team successivo, senza collaborazione. Questa chiaramente non è la strategia DevOps più efficace. Entrambi i gruppi lavorano in una bolla e non hanno visibilità sul flusso di lavoro dell'altro team. A causa di questa separazione completa mancano la collaborazione, la visibilità e la comprensione del lavoro altrui, che sono elementi fondamentali in un processo DevOps efficace. Così facendo, si addossa la colpa agli altri: "Non sappiamo cosa stanno facendo nell'altro team. Abbiamo fatto la nostra parte e ora spetta a loro completare il lavoro".
In questa struttura i team di sviluppo e operativi sono ancora separati, ma ora esiste un team "DevOps" che funge da facilitatore. Non si tratta necessariamente di un aspetto negativo, e Skelton sottolinea che questa soluzione ha alcuni casi d'uso. Ad esempio, se è una soluzione temporanea con l'obiettivo di rendere lo sviluppo e le operazioni più coerenti in futuro, potrebbe essere una buona strategia provvisoria.
In questo scenario, dev e DevOps vengono fusi insieme mentre le operazioni rimangono separate. Organizzazioni come questa vedono ancora le operazioni come un supporto alle iniziative per lo sviluppo software, non come qualcosa con un valore in sé. Inoltre, comportano errori operativi di base e potrebbero avere molto più successo se si comprendesse il valore apportato dalle operazioni.
Per abbattere i silo del team DevOps è necessaria una leadership a tutti i livelli. Inizialmente, è bene chiedere a ciascun gruppo di spiegare i principali attriti, poi individuare i leader in ciascun gruppo: sviluppo, operazioni, sicurezza, test. Ogni leader deve lavorare sia individualmente che insieme agli altri per affrontare ogni punto di attrito.
La comunicazione è fondamentale: i team devono ricevere feedback regolari su tutti gli aspetti del loro ruolo.
Potrebbe anche essere utile inserire persone come "esempi modello" nei gruppi in difficoltà, che dimostrino quale comportamento e linguaggio usare per facilitare la comunicazione e la collaborazione.
La tecnologia passa dal multicloud ai microservizi e anche i container hanno un ruolo nel definire la giusta struttura del team DevOps. Nel nostro sondaggio DevSecOps globale 2020, l'83% degli intervistati ha dichiarato che i propri team stanno rilasciando codice più rapidamente, ma ci ha anche detto che i loro ruoli stanno cambiando, in alcuni casi in modo netto.
Oggi gli sviluppatori creano, monitorano e aggiornano le infrastrutture, ruoli che erano tradizionalmente di competenza dei professionisti delle operazioni. I team Ops dedicano più tempo alla gestione dei servizi cloud, mentre in ambito di sicurezza i team collaborano sempre di più con quelli preposti a sviluppo e operazioni.
Ovviamente il ciclo di sviluppo software oggi è pieno di parti in movimento: ciò significa che la definizione della struttura giusta per un team DevOps rimarrà fluida e necessiterà di una rivalutazione regolare.
L'iterazione è uno dei valori fondamentali di GitLab. È un aspetto che applichiamo spesso nella struttura dei nostri team DevOps. Poiché GitLab è una piattaforma DevOps completa distribuita come applicazione singola, i nostri team di sviluppo sono organizzati in stage (ad es. Verify ecc.) perché si tratterebbe di prodotti separati presso qualsiasi altra azienda che richiederebbero una propria autonomia. Abbiamo anche altri gruppi DevOps funzionali oltre a "Dev" che gestiscono altri aspetti del nostro prodotto.
Abbiamo un gruppo di affidabilità che gestisce i tempi di attività e l'affidabilità di GitLab.com, un reparto qualità e un team di distribuzione, solo per citarne alcuni. Per unire tutti i pezzi del puzzle ci impegniamo a essere trasparenti e a fornire visibilità nell'intero ciclo di sviluppo software. Ma modifichiamo anche (cioè iteriamo) regolarmente questa struttura per far funzionare il tutto.
Per riassumere: pianifica la costruzione del tuo team DevOps, poi riflettici, e riflettici ancora. I vantaggi che porta il poter rilasciare codice più rapidamente e l'avere membri del team più felici ripagheranno lo sforzo.
Il percorso verso l'ottimizzazione della struttura di un team DevOps è iterativo e riflette i continui progressi nei processi e negli strumenti DevOps. Ogni elemento gioca un ruolo cruciale per il successo del team. Abbattendo i silo tradizionali e integrando i ruoli all'interno dei team DevOps, le organizzazioni possono promuovere un ambiente più coeso ed efficiente.
In definitiva, la chiave per un miglioramento duraturo consiste nel rivalutare e perfezionare regolarmente la struttura DevOps per tenere il passo con le esigenze in rapida evoluzione della produzione e del deployment del software. Questo impegno non solo accelera il processo di sviluppo software, ma crea anche un'organizzazione più resiliente e reattiva.
Mappatura del panorama DevSecOps
Ulteriori informazioni sui team DevOps
Visualizza tutte le risorseVuoi iniziare?
Scopri cosa è capace di fare il tuo team grazie a una piattaforma DevSecOps unificata.