Creazione di team produttivi
I tecnici crescono in ambienti in cui possono concentrarsi e entrare nella zona. I team spesso affrontano distrazioni e priorità concorrenti che forzano i tecnici a spostare il contesto e a dividere l'attenzione. Lottano per bilanciare il tempo verso il basso con i tempi di testa in su . L'aggiunta di nuove funzionalità richiede che i membri del team siano puntati verso il basso e concentrati. Per rispondere ai problemi dei clienti e risolvere i problemi del sito live, il team deve essere responsabile e consapevole di cosa sta succedendo.
Per attenuare le distrazioni, un team può dividersi in due equipaggi: uno per le caratteristiche e uno per la salute del sito live.
L'approccio a due equipaggio produce maggiore produttività e prevedibilità. L'implementazione riuscita si basa su questi elementi chiave:
- Ruoli di equipaggio chiaramente definiti
- Un processo di rotazione dell'equipaggio ben definito
- Modifiche frequenti alle dimensioni dell'equipaggio
Equipaggio delle caratteristiche
L'equipaggio delle funzioni, o F-crew, è incentrato sul futuro. Lavorano come unità efficace con una missione e un obiettivo chiari: costruire e spedire caratteristiche di alta qualità.
L'equipaggio F è schermato dal caos giornaliero del servizio live per assicurarsi di avere tempo per progettare, costruire e testare il loro lavoro. Possono basarsi su distrazioni minime e libertà dalla necessità di risolvere i problemi che si verificano in modo casuale. Sono incoraggiati a controllare raramente la posta elettronica ed evitare di essere inseriti in altri problemi, a meno che non siano critici.
Quando un membro dell'equipaggio F si unisce a una conversazione o occasionalmente viene succhiato in un thread di posta elettronica, altri membri del team dovrebbero chide loro: "Sei sull'equipaggio F, cosa stai facendo?" Se un membro dell'equipaggio F deve risolvere un problema critico, è consigliabile delegarlo all'equipaggio dei clienti e tornare al lavoro.
L'equipaggio F opera come un team a maglia stretta che sciame su un piccolo set di caratteristiche. Un buon limite di lavoro in corso (WIP) è due funzionalità in anteprima per 4-6 persone. Lavorando a stretto contatto, creano un contesto condiviso profondo e individuano bug critici o problemi di progettazione che una revisione del codice cursore avrebbe perso. Un equipaggio dedicato consente una velocità effettiva più prevedibile e un lead time. I membri del team spesso fanno riferimento all'equipaggio F come serena e focalizzata. Lo trovano tranquillo e ringiovanimento per concentrarsi profondamente su una caratteristica, per dedicare tutta l'attenzione a esso. Persone lasciare il loro tempo sull'equipaggio F si è aggiornato e raggiunto.
Equipaggio clienti
L'equipaggio dei clienti, o L'equipaggio C, si concentra su ora e fornisce supporto sul campo per problemi del cliente e del sito live, bug, dati di telemetria e monitoraggio. L'equipaggio C spesso si immischia in un computer, eseguendo il debug di un problema critico del sito live. La priorità numero uno è l'integrità del sito live. Incentrato sul laser su questo ambiente, creano competenze di debug e analisi di esperti. L'equipaggio dei clienti viene spesso definito squadra scudo , perché protegge il resto della squadra dalle distrazioni. Invece di lavorare sulle funzionalità future, l'equipaggio C è il ponte tra i clienti e il prodotto corrente. I membri dell'equipaggio sono attivi su e-mail, Twitter e altri canali di feedback. I clienti vogliono sapere di essere ascoltati e il lavoro dell'equipaggio C è quello di sentirli. L'equipaggio C valuta immediatamente i problemi segnalati dai clienti e interagisce rapidamente e assiste i clienti bloccati.
Con un diluvio di attività in ingresso, lavorare su un equipaggio C veloce può, a volte, esilarante. In una settimana intensa, indirizzano più messaggi di posta elettronica, indagini sul sito live e bug. Man mano che le operazioni si arrestano, lavorano per migliorare i dati di telemetria e la creazione di report, investendo il tempo necessario per semplificare la manutenzione del servizio.
Gli equipaggi C consentono al team di risolvere i problemi senza allontanare i membri del team da altre priorità e assicurarsi che i clienti e i partner vengano ascoltati. La velocità di risposta alle domande e ai problemi diventa un punto di orgoglio per gli equipaggi C. Tuttavia, questo ritmo può essere svuotato, richiedendo una rotazione frequente tra gli equipaggi.
Rotazione equipaggio
Un processo di rotazione ben definito fa funzionare il sistema a due squadre. È possibile semplicemente scambiare gli equipaggi (F-crew diventa C-crew e viceversa), ma questo limita la condivisione delle conoscenze tra e all'interno degli equipaggi. Invece, optare per una rotazione settimanale.
Alla fine di ogni settimana, condurre una breve riunione di scambio in cui il team decide chi scambia tra gli equipaggi. È possibile usare un grafico a lavagna per tenere traccia di chi è attualmente in ogni equipaggio e quando sono stati scambiati. Le persone più lunghe su ogni equipaggio dovrebbero in genere scambiarsi tra loro. Tuttavia, in qualsiasi settimana, qualcuno potrebbe voler completare il lavoro su un'indagine o una funzionalità live-site. Anche se c'è flessibilità, più a lungo qualcuno è su un equipaggio, più probabilmente dovrebbero essere scambiati.
Le rotazioni settimanali aiutano a evitare silos di conoscenze nel team e garantiscono un flusso costante di informazioni e prospettive tra gli equipaggi. Il movimento frequente degli ingegneri crea una conoscenza condivisa del lavoro del team, che aiuta l'equipaggio C a risolvere i problemi senza l'aiuto di altri. Spesso, i nuovi membri dell'equipaggio F troveranno rapidamente un difetto di progettazione o codice precedentemente trascurato.
Dimensioni equipaggio
Le dimensioni dell'equipaggio variano per mantenere la salute del team. Se un team ha un tasso elevato di problemi in tempo reale o ha un sacco di debito tecnico, l'equipaggio C diventa più grande e viceversa. La regolazione delle dimensioni settimanali aumenta la prevedibilità nei risultati finali e nelle dipendenze del team. In alcune settimane, un team può spostare tutti gli utenti all'equipaggio C per rispondere al feedback di una grande versione.
Questa strategia semplifica la comunicazione con la gestione. Senza un sistema a due squadre, gli ingegneri spesso lavorano su più cose contemporaneamente. Quando si verificano diverse distrazioni in una singola settimana, le funzionalità in corso vengono spesso ritardate. Di conseguenza, un team potrebbe non essere in grado di fornire in modo sicuro sequenze temporali per il lavoro futuro delle funzionalità.
Un equipaggio F dedicato porta alla velocità effettiva prevedibile e al lead time. La suddivisione delle risorse tra gli equipaggi aumenta la responsabilità all'interno del team e la gestione di ciò che il team può realizzare ogni settimana e ogni sprint.
Passaggi successivi
Il sistema a due equipaggio può aiutare i team a capire dove i tecnici devono dedicare tempo e fare progressi su molte priorità concorrenti.
Oltre a migliorare la produttività e la prevedibilità, il sistema a due squadre può aumentare il morale del team. I tecnici di ogni team comprendono chiaramente i ruoli e le responsabilità e funzionano in modo più indipendente e con maggiore responsabilità. Questo approccio è ideale per i team DevOps, responsabili sia dello sviluppo che delle operazioni. Tuttavia, questo approccio può essere applicato quasi a qualsiasi team Agile che si occupa di priorità concorrenti.
Microsoft è una delle più grandi aziende Agile al mondo. Informazioni su come Microsoft organizza i team nella pianificazione di DevOps.