Struttura, figure e coordinazione dei team di sviluppatori in DevOps

Struttura, figure e coordinazione dei team di sviluppatori in DevOps

Caratteristiche e pratiche DevOps

DevOps propone un insieme di pratiche che mirano a velocizzare o agevolare i processi aziendali. L’adozione di queste linee guida è indispensabile per ottenere i benefici promessi da DevOps.
Prima dell’avvento di DevOps, il team Dev aveva un’unica responsabilità: sviluppare il codice dell’applicazione. Nel momento in cui era richiesto il rilascio di una nuova versione, l’intera code base veniva messa nelle mani del team Ops per essere installata nell’ambiente di produzione. Dovendo far fronte a problemi di vario genere, era quindi necessario che gli operatori avessero una vaga conoscenza di come era stato implementato il codice. Gran parte del tempo veniva quindi spesa per il passaggio della conoscenza dagli sviluppatori agli operatori, con la conseguenza di rallentare la messa in produzione.
Lo scopo di DevOps è di rendere gli sviluppatori più responsabili del processo di deployment e di troubleshooting, creando il software in modo che sia facilmente monitorabile e di gestire eventuali errori sulla base del feedback fornito dal team di operatori. DevOps suggerisce che gran parte della coordinazione venga in qualche modo automatizzata o che si adottino tecniche che la rendono quanto più possibile superflua.

Struttura e coordinazione dei team di sviluppatori

Struttura, figure e coordinazione dei team di sviluppatori in DevOps

Se l’obiettivo di DevOps è rendere più veloci e agevoli i processi di sviluppo, è necessaria un’organizzazione dei team che sia orientata a soddisfare tale obiettivo.
I team sono in genere di dimensioni piccole, in modo da favorire la velocità nel prendere decisioni e la coesione tra i membri. Questo genera lo svantaggio di dover necessariamente dividere task di dimensione troppo elevata in più task di grandezza adeguata e assegnare ciascuno a un team diverso, facendo in modo che le varie parti funzionino bene nel complesso e minimizzando il lavoro duplicato. Per rendere efficace questa operazione ci deve essere un buon grado di coordinazione tra i team. Con questo non si vuole intendere una coordinazione frequente. Al contrario, DevOps vuole minimizzare lo spreco di tempo dovuto alle continue comunicazioni tra team. A tal proposito si introducono meccanismi di coordinazione all’interno degli strumenti già in uso (per esempio, il controllo di versione) e si fa in modo che l’architettura generale del sistema sia tale da necessitare comunicazione minima.
All’interno del team si individuano diversi ruoli, che possono essere condivisi da più persone e anche essere sovrapposti.

I principali sono:

  • Team lead: possiede alcune abilità di project management e dirige il lavoro del team.
  • Team member o developer: responsabile della creazione del sistema, ricopre attività come la modellazione, lo sviluppo e il testing.
  • Service owner: responsabile per la coordinazione con gli altri team.
  • Reliability engineer: responsabile del monitoraggio del sistema in produzione e del riscontro degli errori.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: www.vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *