La struttura del team DevOps: tipi, ruoli e responsabilitĆ 

Team diversi richiedono strutture diverse, a seconda del contesto più ampio dell'azienda.

Prova Compass gratis

Migliora la tua esperienza di sviluppatore, cataloga tutti i servizi e aumenta l'integritĆ  del software.

Quando un team software ha intrapreso il percorso della pratica DevOps, è importante capire che team diversi richiedono strutture diverse, a seconda del contesto più ampio dell'azienda e della sua propensione al cambiamento.

L'affermazione dei team DevOps

Nella tua azienda è presente un team DevOps? Probabilmente sì. Nelle nostra indagine sulle tendenze DevOps abbiamo rilevato che più di due terzi delle organizzazioni intervistate hanno un team o una persona a cui in qualche modo è associato il titolo "DevOps". 

Con la progressiva diffusione di DevOps, capita spesso che i team software diventino team DevOps. Tuttavia, la semplice aggiunta di nuovi strumenti o la designazione di un team come DevOps non ĆØ sufficiente per sfruttare appieno i vantaggi di questo approccio.Ā 

In assenza di una comprensione chiara di DevOps e di come implementarlo correttamente, una trasformazione DevOps si limita solitamente alle riorganizzazioni o agli strumenti più recenti. L'adozione corretta di DevOps comporta un cambiamento culturale in cui i team hanno nuove strutture, nuovi principi di gestione e adottano determinati strumenti tecnologici.

Tipi di strutture del team DevOps

La determinazione della struttura del team DevOps da implementare dipende da numerosi fattori, tra cui il numero di prodotti su cui un'organizzazione lavora, la leadership tecnica e se i team di sviluppo e operativi dispongono della capacitĆ  di allineare i processi.

È importante capire che non tutti i team condividono gli stessi obiettivi o utilizzano le stesse pratiche e gli stessi strumenti. Anche la composizione di un team non dovrebbe essere standardizzata. Team diversi richiedono strutture diverse, a seconda del contesto più ampio dell'azienda e della sua propensione al cambiamento. Un team DevOps di due aziende può assumere significati radicalmente diversi. 

Per sfruttare i vantaggi di DevOps in termini time-to-market più rapido, migliore frequenza di distribuzione, migliore cultura del team e maggiore collaborazione tra team e reparti, è importante comprendere il ruolo svolto da ogni team. Tuttavia, in molte organizzazioni è presente un'ampia varietà di titoli di team e di team multifunzionali (ad esempio, un team di infrastruttura può fungere anche da selezionatore o da manutentore di strumenti). A causa di questa proliferazione di titoli è difficile per la leadership visualizzare il panorama organizzativo completo e rispondere a domande importanti come: Abbiamo i team giusti? In alcune aree mancano delle capacità a cui nessun team sopperisce? I team dispongono dell'equilibrio necessario tra autonomia e assistenza da parte di altri team?

L'eccellente lavoro svolto nell'ambito delle topologie dei team offre un punto di partenza per il modo in cui Atlassian considera i diversi approcci dei team DevOps. Tieni presente che le strutture del team sottostanti assumono forme diverse a seconda delle dimensioni e della maturità di un'azienda. In realtà, la combinazione di più strutture, o di una struttura che si trasforma in un'altra, è spesso l'approccio migliore.

Collaborazione tra sviluppo e operazioni

Per molte persone DevOps è semplicemente sinonimo di sinergia tra team di sviluppo e operativi che lavorano insieme in modo coeso. Questo è il fondamento di DevOps e offre vantaggi chiari, tra cui la capacità per i team software di compilare, testare e rilasciare codice in modo più rapido e affidabile.  

La chiave del successo di questa struttura di team risiede nel fatto che gli sviluppatori comprendono la pressione esercitata sui team operativi per mantenere i tempi di attivitĆ  e ridurre al minimo le risoluzioni. Altrettanto importante ĆØ la capacitĆ  da parte dei team operativi di comprendere il desiderio dei team di sviluppo di ridurre i tempi di distribuzione e il time-to-market.

Unione tra team di sviluppo e team operativo

Questa struttura del team presuppone che il team di sviluppo e il team operativo collaborino come un unico team, agendo come un fronte comune con obiettivi condivisi. A volte chiamato "NoOps", è spesso presente nelle aziende tecnologiche la cui offerta è incentrata su un unico prodotto digitale primario, come Facebook o Netflix. Può anche assumere la forma di un team "You Build It, You Run It", dove sono le stesse persone a occuparsi dello sviluppo e della gestione delle applicazioni.

DevOps/SRE

In questa struttura del team, resa popolare da Google, un team di sviluppo consegna un prodotto al team di tecnici sull'affidabilitĆ  del sito (SRE), che esegue concretamente il software. In questo modello, i team di sviluppo forniscono log e altri artefatti al team SRE per dimostrare che il loro software soddisfa uno standard sufficiente per essere supportato dal team SRE. I team di sviluppo e SRE collaborano alla definizione di criteri operativi e i team SRE hanno la possibilitĆ  di chiedere agli sviluppatori di migliorare il codice prima della produzione.

Ops come piattaforma

In questa struttura, un team interno al team di sviluppo funge da fonte di competenza per tutte le attivitƠ operative e si interfaccia principalmente con il team Infrastructure as a Service (IaaS). Questa struttura del team fa affidamento sulle applicazioni che vengono eseguite in un cloud pubblico, poichƩ il team IaaS crea servizi virtuali scalabili utilizzati dal team di sviluppo.

DevOps come parte esterna

DevOps come parte esterna ĆØ una struttura in cui le aziende utilizzano un consulente DevOps o un team DevOps per un periodo di tempo limitato allo scopo di aiutare i team di sviluppo e i team operativi a spostarsi verso le prime due strutture di team menzionate (collaborazione tra team di sviluppo e team operativi e unione tra team di sviluppo e team operativi).

Sebbene esistano diversi modi per condurre le attivitĆ  DevOps, ci sono anche molti modi per non farlo. I team e i leader DevOps dovrebbero diffidare degli anti-pattern, che sono caratterizzati da silos, mancanza di comunicazione e da una errata definizione delle prioritĆ  degli strumenti rispetto alla comunicazione.

Ruoli e responsabilitĆ  nei team DevOps

Indipendentemente dalla struttura del tuo team, tutti i team ad alte prestazioni che praticano regolarmente DevOps condividono conoscenze ed esperienze tra sviluppo e attività operative, sia durante riunioni regolari, sia nell'ambito di persone che lavorano in team diversi e/o di membri del team che lavorano in entrambe le funzioni. Un team ad alte prestazioni è caratterizzato dai vantaggi di DevOps: time-to-market più rapido, lead time migliorato, maggiore frequenza di distribuzione, risultati di qualità superiore, migliore cultura del team e maggiore collaborazione tra team e reparti. 

I team DevOps sono generalmente composti da persone con competenze sia nello sviluppo che nelle attività operative. Alcuni membri del team possono rivelare una capacità maggiore nella scrittura di codice, mentre altri possono essere più esperti nell'utilizzare e gestire l'infrastruttura. Tuttavia, nelle grandi aziende, ogni aspetto di DevOps, da CI/CD a IaaS fino all'automazione, può comportare la presenza di un ruolo, dal responsabile del rilascio che coordina e gestisce le applicazioni dallo sviluppo alla produzione agli architetti dell'automazione che gestiscono e automatizzano la pipeline CI/CD di un team.

Quindi, che cosa serve per entrare a far parte di un team DevOps? I requisiti professionali che permettono di entrare a far parte di un team DevOps cambiano continuamente grazie alle nuove tecnologie e tecniche, ma le qualità di un buon team DevOps sono sempre le stesse: solide competenze tecniche, buona comunicazione, mentalità di gioco di squadra e adattabilità sono alcuni dei tratti fondamentali di un professionista DevOps competente. Una combinazione di queste caratteristiche è probabilmente più importante di una cultura enciclopedica su Kubernetes o Git, ma se si dispone anche di queste conoscenze, tanto meglio!

Un altro ingrediente per il successo ĆØ la presenza di un leader disposto a promuovere DevOps presso un team, team collaborativi e l'organizzazione in generale. Non deve trattarsi necessariamente di una persona il cui ruolo professionale includa la parola "manager", ma di qualcuno che sia disposto a convincere i membri del team scettici a iniziare a colmare il divario tra il proprio team e un team esterno, che si tratti di un team di sviluppo, operativo o della piattaforma.

Software per supportare il team

Mentre il lavoro effettivo che un team svolge quotidianamente determina la toolchain DevOps, ĆØ necessario un qualche tipo di software per collegare e coordinare il lavoro tra il tuo team e il resto dell'organizzazione. Jira ĆØ un potente strumento che pianifica, monitora e gestisce i progetti di sviluppo software, tenendo informati i tuoi colleghi e l'organizzazione estesa sullo stato del lavoro.Ā 

Anche applicazioni come Zoom, Slack e Microsoft Teams sono essenziali per consentire ai team di comunicare in modo rapido ed efficiente, soprattutto da remoto. In passato, uno sviluppatore poteva rivolgersi al team operativo per chiedere informazioni sullo stato di un imprevisto. Ora le app per la comunicazione virtuale offrono le stesse funzioni di comunicazione istantanea.Ā 

Open DevOps di Atlassian offre tutto ciò di cui i team hanno bisogno per sviluppare e utilizzare il software. I team possono creare la toolchain DevOps che preferiscono grazie alle integrazioni con i fornitori e le app del Marketplace leader del settore. Infatti crediamo che i team debbano lavorare in base alle loro preferenze e non secondo le preferenze dei fornitori. Provalo subito.

Consigliata per te

Community DevOps

Percorso di apprendimento DevOps

Inizia gratis