Un playmaker è specializzato nel passare la palla.
Una guardia nei tiri da 3.
Il pivot è esperto nei rimbalzi.
Ma tutti quanti sanno palleggiare e correre con la palla.
 
Un team agile è come una squadra di pallacanestro. Ogni giocatore deve avere le sue specializzazioni, ma tutti devono coprire i fondamentali. Altrimenti l'avversario vincerà sempre.
 
Facciamo un esempio di "quintetto base", con i vari ruoli:
 
1: Specialista framework - Profonda conoscenza di framework e linguaggio usati
2: Esperto database - Nessuna query è troppo complessa per il giocatore 2
3: Tester & product owner - Chi scrive specifiche e test, controllando che tutto sia perfetto
4: Front-end developer - HTML5, CCS3 e JavaScript non hanno segreti per il giocatore 4
5: Web & UX designer - Assicurarsi dell'usabilità di un'applicazione è tanto importante quanto la corretta funzionalità della stessa
 
Partiamo dai fondamentali. Tutti e 5 i giocatori devono:
- Conoscere framework e linguaggio di programmazione
- Saper usare la suite di test
- Avere le basi coperte su HTML, CSS e JavaScript
 
Un team dà il suo meglio in pair programming. Si possono avere 2 coppie attive e 1 giocatore che porta avanti i suoi "chores", compiti minori che non richiedono affiancamento, o fare da scudo agli altri dalle "distrazioni", come telefonate dei clienti e altri fattori esterni.
Ogni task, invece, viene assegnato a una coppia, in modo che venga coinvolto lo specialista, e un altro giocatore possa assorbirne competenze.
Ad esempio, su un task che richiede esperienza del database, il giocatore 2 può spiegare le procedure e le viste usate ad un compagno di squadra. Questi, infallibilmente, accrescerà le sue competenze sul database.
 
E voi? Come è organizzata la vostra squadra?