Articoli
Tutorial
Guide interattive
La struttura del team DevOps: tipi, ruoli e responsabilità
Team diversi richiedono strutture diverse, a seconda del contesto più ampio dell'azienda.
Shana Vu
Product Marketing, DevOps
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.
scopri la soluzione
Strumenti DevOps per tutto il team
materiale correlato
Scopri di più sui vantaggi di DevOps
È 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.
Ricorda, tuttavia, che il software che consente ai team di lavorare insieme è un mezzo, non un fine. Se la tua organizzazione vuole sfruttare appieno il potenziale di DevOps in termini di trasparenza, fiducia e autonomia sono necessari dei team, non solo degli strumenti.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.