di Antonio Marino
In ambito Scrum, Il team in sé, rappresenta il fulcro di tutti i progetti ben riusciti, e visti gli scenari in cui si sviluppano, risulta di fondamentale importanza saper scegliere solo e unicamente le persone più adatte da inserire nel contesto del gruppo.
In questi anni di maggior diffusione, abbiamo appreso che i membri dello “Scrum team” hanno delle particolari caratteristiche:
- sono generalisti specialisti (generalizing specialist) – è risaputo che Scrum preferisca sviluppatori con un certo livello di conoscenza in vari campi (anche non spinta), ma profondamente esperti in uno in particolare; queste skill sono spesso sintetizzate facendo riferimento alla lettera T, dove la testa rappresenta la componente “generalista” e la gamba la componente “esperta” tra le varie competenze (T-shaped skills);
- hanno lodevoli abilità interpersonali (interpersonal skills) – cioè, qualità che consentono di lavorare collaborativamente con gli altri membri del team.
Ma precisamente, parlando sempre di interpersonal skills, mi riferisco alle seguenti abilità.
- Conflict management – L’Agile crea molte e continue situazioni di confronto con il team (es. presentare i problemi nei daily meeting, ossia questioni su cui si dovrà necessariamente dibattere; stimare le user story attraverso gli story points; …) quindi se i membri del team hanno spiccate abilità interpersonali, si potrà trarre beneficio anche dalle situazioni di conflitto, frutto dei vari confronti, in modo che esse possano essere percepite come esperienze positive oltre che utili opportunità di apprendimento e crescita.
- Cultural awareness – Questa abilità, se padroneggiata dai membri del team, consente di comprendere le differenze tra tutti gli individui, gruppi ed organizzazioni coinvolte nel progetto. Al contempo permette di definire una strategia di comunicazione che consideri le “differenze”. Questa consapevolezza, e le eventuali azioni conseguenti, consentono di ridurre al minimo le incomprensioni e i problemi di comunicazione, che solitamente derivano sia dalle divergenze quanto dalle convinzioni culturali dei membri del team e dei stakeholder di progetto.
- Decision making – La capacità decisionale riguarda il saper scegliere la linea d’azione più valida tra le varie disponibili; il team deve poter e soprattutto saper decidere. Questo però coinvolge anche altre abilità, come saper “negoziare” e “influenzare”, sempre basandosi sul saper attuare la risoluzione dei problemi (problem solving), in quanto l’atto del decidere, evidentemente, presuppone la capacità di ricercare soluzioni a questioni e/o sfide. Dunque, il saper prendere decisioni (soprattutto in modo partecipativo e collaborativo) è cruciale per un Agile team, a cui si chiede anche di essere auto-organizzato (self-organized).
- Facilitation – Questa abilità denota di sapere guidare efficacemente un evento di gruppo, per ottenere una decisione di successo, una soluzione o comunque una conclusione positiva. Non v’è dubbio che il project manager debba conoscere questa abilità, ma durante un progetto, anche i membri stessi del team affronteranno discussioni sia tra loro che con gli altri stakeholder, dove occorrerà giungere a soluzioni o conclusioni che risultino costruttive: si pensi ad esempio quando un Agile team deve definire con uno stakeholder o un product owner, gli item del backlog, decidendo cosa mettere in sviluppo nell’iterazione che sta per avviarsi.
- Leadership – La leadership implica spingere e guidare gli altri ad ottenere i risultati voluti. Questa capacità si acquisisce attraverso l’esperienza, la costruzione di relazioni e l’assunzione di iniziative. I membri del team dovrebbero padroneggiare questa abilità, perché in qualunque progetto occorre relazionarsi con altre persone, dalle quali si desiderano dei risultati o contributi. L’Agile spinge molto sulla Servant leadership, declinazione che consiste nell’auto-definizione, la scoperta di sé stessi, la comprensione basata sull’ascolto di ogni membro del team, il coaching e in ultimo consente la creazione di un ambiente che permette alle persone di crescere.
- Meeting management – In un progetto Agile, è fondamentale saper coinvolgere i diversi membri del team oltre a tutti gli stakeholder, particolarmente quando si realizzano le riunioni: tutti i progetti ricorrono a saltuari incontri per varie necessità, ma gli Agile team, in particolare, ne hanno davvero tanti.
- Negotiation – Questa abilità viene utilizzata tra i membri stessi del team, per raggiungere il consenso su un accordo o una risoluzione, e contribuisce alla costruzione di un ambiente di fiducia e armonia per il gruppo. Tale abilità sarà utile ai membri del team in varie situazioni, come negoziare risorse con fornitori, risolvere i conflitti all’interno del team o con altri stakeholder e per condividere ground rules all’interno del team.
- Networking – Questa abilità consiste nel saper semplicemente interagire con le altre persone, efficacemente! Scambiando informazioni e sviluppando contatti, al fine di ampliare le proprie conoscenze su argomenti utili allo sviluppo del progetto. Le reti di relazione forniscono un facile accesso a interazioni informali, che per un motivo o per un altro permettono sia di risolvere problemi, sia di influenzare le azioni degli stakeholder e sia proficuamente di aumentare il sostegno di questi ultimi al lavoro e ai risultati del progetto.
- Observation/conversation – È un’abilità che prevede l’osservazione delle persone mentre svolgono i loro compiti (task) quotidiani, al fine di ottenere una conoscenza aggiornata ed immediata della situazione d’interesse o sul progredire di un processo.
- Team building – Costruire un “team forte” può essere impegnativo, ma attraverso il supporto continuo e il lavoro in collaborazione con il team stesso, rende possibile lavorare insieme per risolvere problemi, attenuare questioni interpersonali, condividere informazioni, e affrontare gli obiettivi del progetto come se il team fosse un’unica entità. Una mentalità di squadra diffusa nel team è estremamente efficace e può costituire un potente strumento per il raggiungimento degli obiettivi di progetto.
Riepilogando, i membri ideali dello Scrum Team sono: indipendenti, auto-motivati, incentrati sul cliente, lavorano con responsabilità condivise e dovrebbero essere in grado di promuovere un ambiente di pensiero indipendente e critico. Tutto per poter prendere decisioni “in team”, in modo da massimizzare i benefici tratti dal metodo Scrum.
Tenendo conto di quanto appena detto, ossia delle caratteristiche dei progetti Agile (vedasi l’articolo recentemente pubblicato su questo blog dal titolo “Complessità dei progetti”) e delle abilità che devono possedere i membri del team che sviluppano il progetto; alcuni autori (Cockburn, Boehm, Turner) hanno analizzato la questione e sono giunti infine alla modellazione di una scala, distinguendo 5 diversi profili di sviluppatori. Gli studi si riferiscono al mondo dei progetti di sviluppo software ma possono essere estesi anche ad altre “industry”.
La trattazione che segue è stata esemplificata numerando i suddetti profili con un logico numero progressivo.
- Profilo 1. Si tratta di sviluppatori che dovrebbero essere rapidamente intercettati e riassegnati a lavori diversi da quelli Agile, poiché le persone in questo profilo, nonostante abbiano qualche utile competenza tecnica, non possono o non sono comunque disposti a collaborare con gli altri, o ancor peggio non intendono seguire i metodi condivisi del team. I team Agile non dovrebbero avere a bordo persone del genere.
- Profilo 2. Le persone di questa categoria sono sviluppatori di media abilità, poco esperti. Possono lavorare bene nello sviluppo di un progetto, ma la situazione che prediligono è permeata da caratteristiche di stabilità. Agendo con il training, queste persone sarebbero in grado di eseguire le fasi lavorative a loro assegnate in maniera standard (ad es. codificare un metodo semplice, attuare un refactoring, eseguire test). Poi con l’esperienza potrebbero addirittura passare al livello successivo. Tuttavia, i team Agile, non possono contare su sviluppatori che siano per lo più di questo livello, siccome sono individui che si limitano a “seguire le indicazioni” e non hanno le abilità giuste per innescare lo spirito d’iniziativa. Se il team fosse composto prevalentemente da queste persone, il progetto rallenterebbe, dato che questi profili, non riescono a dare la velocità indispensabile per poter gestire i rapidi cambiamenti, tipici dei progetti Agile.
- Profilo 3. Queste persone possono inizialmente lavorare bene nei team Agile solo se sono presenti persone di profilo superiore che le guidino. Sono in grado di sviluppare il lavoro in modo autonomo, di stimare le user story e adattarle agli incrementi, di effettuare un refactoring complesso e sanno integrare componenti standard. Col tempo, l’esperienza e la pratica possono innescare il passaggio al livello successivo.
- Profilo 4. Queste persone possono lavorare autonomamente nella gestione di un progetto Agile seppur con dimensioni e complessità limitata, portando però a casa importanti performance; invece, se il progetto fosse grande e complesso, avrebbero bisogno della guida di persone appartenenti al livello successivo. Questi sviluppatori sono in grado di personalizzare soluzioni impiegate in precedenti esperienze allo scopo di adattarle alla nuova situazione del progetto dove ora sono allocati; si tratta quindi di persone che hanno spirito d’iniziativa e abilità tecniche tanto da muoversi in autonomia con responsabilità e professionalità consone alla situazione.
- Profilo 5. L’esperienza consente alle persone del livello precedente di poter atterrare su questo profilo, ma non è un traguardo raggiungibile per tutti; questi sviluppatori sono in grado, infatti, di risolvere nuovi problemi con innovative soluzioni mai praticate prima; sanno rivedere autonomamente una soluzione adottata in passato, considerando le regole già collaudate ma rivoluzionandole in modo da adattarle alla nuova circostanza che non è stata mai vissuta prima. Nella mia esperienza professionale, ho avuto il piacere di incontrare profili di questo tipo, ma, ahimè, sono davvero pochi!
Gli autori, alla fine, hanno suggerito dei precisi range di “presenza” per i diversi profili, preferibili per comporre un team efficace. Premesso che il profilo 1 non è utile in nessun tipo di progetto, per gli altri tipi vengono suggeriti i seguenti intervalli percentuali:
Come si può notare da questi dati, l’Agile richiede chiaramente sviluppatori appartenenti ai profili più alti!
Antonio Marino
Antonio Marino è un ingegnere che avvia la sua carriera nel project management nel 1996 lavorando all’Agenzia romana per la preparazione del Grande Giubileo del 2000 SpA nella pianificazione e controllo degli interventi di preparazione della città di Roma e il Lazio all’evento.
Attualmente è business developer e competence leader sul project management in ELIS (elis.org) ma dal 2000 ha formato migliaia di persone sul project management con particolare focus alle certificazioni del PMI®, tema sul quale ha scritto diversi libri.
Membro del PMI® e revisore della Guida al PMBOK® (ed. 5, 6 e 7), dal 2005 è certificato PMP®, nel 2011 è stato il primo italiano ad acquisire la certificazione PMI-ACP® sui metodi Agile, è Project manager e ICT PM ai sensi, rispettivamente, delle norme UNI11648 e UNI11506, oltre ad essere un facilitatore certificato FranklinCovey.
Riferimenti social:
Scrivi un commento