Come mettere insieme un fantastico team Agile
Indipendentemente dal framework usato, l’Agile renderà il vostro processo di sviluppo software più gratificante e divertente
I visionari dell’ Agile consideravano il lavoro di squadra un elemento fondamentale per sviluppare dell’ottimo software, e pensavano che un buon team agile incarnasse il “noi” piuttosto che l’ “io”. Niente è più gratificante di condividere l’avventura del costruire qualcosa che conti davvero assieme a compagni di squadra appassionati.
Al di la della condivisione di valori comuni, non esiste la formula del team agile perfetto. Alcuni utilizzano il metodo scrum mentre altri quello kanban. I puristi dell’Agile sono per team prossimi fisicamente, mentre le realtà di business spesso necessitano team agile distribuiti su più aree geografiche. La maggioranza degli agile team possiedono tutte le competenze necessarie, ma a volte potrà rendersi necessario il supporto di uno specialista per svolgere lavori specifici. Quindi, come sapere se il tuo team sta seguendo la strada giusta? Vediamolo assieme.
>> Scopri come creare un progetto scrum o kanban con questo tutorial interattivo!
Costruire su una base solida
Una volta che la squadra è stata formata, è importante ricordare che i team agile sono come individui: hanno bisogno di tempo per crescere. I teorici dell’Agile spesso citano “Le Fasi dello Sviluppo del Gruppo” di Tuckman.
I team Agile attraverserebbero quindi 4 fasi, man mano che progrediscono:
E’ con il raggiungimento dello stadio “Performing” che lo sviluppo diventa davvero interessante. I membri si fidano l’un l’altro, conoscono i reciproci punti di forza, e usano questa consapevolezza per ottimizzare il modo in cui sviluppano software.
Ma attenzione: raggiungere uno stadio davvero performante è impossibile se il team cambia costantemente conformazione
Mantenere un team agile invariato richiede una certa disciplina da parte dell’organizzazione, ma chiaramente proteggere la logica interna del team paga. Nel momento in cui viene introdotto un cambiamento (una nuova assunzione,l’abbandono da parte di un collega, ecc..) il team retrocede alla fase di formazione, per assorbire tale cambiamento.
Team agile altamente performanti inoltre si affidano a riconosciute pratiche ingegneristiche come code review, task branching, continuous integration, e release a cadenza regolare. Non potremo mai ripeterlo abbastanza: queste pratiche ingegneristiche sono fondamentali per per costruire grandi team. (Leggi di più sull’argomento alla sezione “Agile Developer”).
Ci sono poi due ulteriori pilastri per creare fantastici team agile: tutoraggio continuo e insieme di competenze condivise.
Uno dei grandi benefici del lavorare in team è che i colleghi imparano l’uno dall’altro e si affiancano a vicenda. Il tutoraggio non è solo un’attività rivolta ai componenti junior affinché apprendino dai senior. Ognuno impara dagli altri membri in modo che l’impatto del team nel suo complesso sia maggiore della somma dell’impatto dei singoli componenti.
Al tempo stesso, le abilità condivise rendono il team in grado di svolgere lavoro eterogeneo. Come ingegneri, è sempre importante apprendere nuove competenze perché questo ci rende più preziosi per l’organizzazione e in grado di supportare meglio il lavoro degli altri. Al tempo stesso condividere le abilità permette di evitare situazioni critiche in cui il singolo deve prendersi carico del lavoro degli altri.
| ProTip: i team agile non sono soltanto per tecnici. Nelle organizzazioni più grandi, team agile si formano in molteplici funzioni di business: marketing, HR, finance….e molte altre!
In che modo i team agile collaborano tra dipartimenti differenti
I software team moderni sono composti da Product Manager, designer, marketer, e operation, oltre che – naturalmente – da sviluppatori e tester.
In Atlassian, i nostri team agile si focalizzano su 3 fasi del prodotto: produzione, vendita, e operations.
Ciascuna di queste fasi del prodotto è supportata da 3 team (idealmente formati da 5 – 7 membri ciascuno) , che formano una triade. Ciascuna triade è agile nel suo approccio, in quanto con lo sviluppo progressivo del prodotto, i team lavorano costantemente in ogni fase apprendendo di più tanto sul prodotto quanto sul mercato.
Qui sotto riportiamo una ripartizione per ogni triade che individua il “chi, cosa, dove e perché” per ogni team all’interno del team di sviluppo ampliato.
A prescindere dalla triade di appartenenza del tuo team, l’Agile permetterà una delivery più rapida e più divertente.
di Dan Radigan, Senior Agile Evangelist, Atlassian
Traduzione di Davide Schillaci