Tutti coloro che servono per consegnare valore, lavorando insieme in stretta collaborazione.
Un team completo ha tutti coloro che servono per portare una storia dall'idea alla produzione. Non distribuiti tra dipartimenti. Non in attesa di altri team. Tutti, insieme.
Per il software, questo tipicamente significa:
Il principio chiave: nessun passaggio di consegne. Il lavoro non viene "lanciato oltre il muro" a un altro team. Tutti sono responsabili della consegna completa.
Perché? Perché i passaggi di consegne sono dove muore la qualità. Lo sviluppatore non capisce del tutto cosa intendeva il designer. Il tester non sa quali casi limite ha considerato lo sviluppatore. Il team ops non capisce perché il codice ha bisogno di quella configurazione. Ogni passaggio di consegne è una traduzione, e le traduzioni perdono informazioni.
Un team completo non riguarda solo avere tutte le competenze presenti. Riguarda il fatto che tutti si sentano responsabili del prodotto finale, non solo del loro pezzo.
Un team completo è cross-funzionale—il team ha tutte le funzioni necessarie. Ma gli individui non devono essere multi-funzionali (esperti in tutto).
Potresti avere:
Il team è cross-funzionale; gli individui sono a forma di T—profondi in un'area, abbastanza ampi da collaborare.
Vantaggi delle persone a forma di T:
XP incoraggia l'apprendimento tra specializzazioni, non l'eliminazione completa delle specializzazioni. L'obiettivo è la collaborazione e la proprietà condivisa, non l'expertise uniforme.
Il team include 4 sviluppatori (2 frontend, 2 backend), 1 QA e accesso condiviso a un designer. Gli sviluppatori frontend possono scrivere codice API base; gli sviluppatori backend possono aggiornare l'UI. Tutti possono eseguire la suite di test.
Team frontend, team backend, team QA e team design lavorano tutti sullo stesso prodotto ma come gruppi separati. Il lavoro si accumula tra i team. Nessuno si sente responsabile del prodotto finale.
XP originariamente enfatizzava la co-locazione fisica—tutti nella stessa stanza. Sebbene il lavoro remoto abbia cambiato questo, il principio rimane: rendere il lavoro visibile e la comunicazione facile.
Uno spazio di lavoro informativo mostra:
Chiunque passi (o si unisca a una videochiamata) dovrebbe essere in grado di capire lo stato del team a colpo d'occhio.
Equivalenti digitali per team distribuiti:
L'obiettivo non sono gli strumenti—è la trasparenza. Tutti dovrebbero sapere cosa sta succedendo senza dover chiedere.
XP funziona meglio con team piccoli: tipicamente 5-9 persone.
Perché piccoli?
Se hai bisogno di più capacità, considera:
Scalare XP è un argomento a sé. L'intuizione chiave: non rendere i team più grandi; crea più team. Mantieni ogni team completo e piccolo.
Se il tuo team è troppo grande per stare attorno a un tavolo da pranzo, è probabilmente troppo grande per un XP efficace.
Creare un team completo spesso richiede cambiamento organizzativo:
Passo 1: Identificare tutte le competenze necessarie Mappa il percorso dalla storia alla produzione. Chi è coinvolto? Quali passaggi di consegne esistono?
Passo 2: Riunire le persone Sposta le persone (fisicamente o organizzativamente) in un singolo team. Questo può richiedere negoziazione con altri manager.
Passo 3: Definire obiettivi condivisi Il team ha successo o fallisce insieme. Non "gli sviluppatori hanno consegnato in tempo ma il QA ha trovato bug" o "il design era ottimo ma gli sviluppatori non potevano costruirlo."
Passo 4: Costruire competenze trasversali nel tempo Fare pair tra specializzazioni. Far fare pair ai tester con gli sviluppatori. Far fare attività ops agli sviluppatori. Diffondere la conoscenza gradualmente.
Aspettati resistenza. Gli specialisti potrebbero sentirsi minacciati. I manager potrebbero perdere "le loro" persone. L'organizzazione potrebbe non essere pronta. I team completi richiedono adesione organizzativa, non solo cambiamento a livello di team.