2012-07-Agile-Project-Management
2012-07-Agile-Project-Management
Project Management:
L’Avvento delle Metodologie Agile
Le metodologie Agile riscuotono un grande successo presso le aziende più evolute.
Il PMI propone una nuova certificazione Agile PMI-ACPsm. Significa che i tempi sono maturi?
Forse si anche se non mancano gli scettici. Tu da che parte stai?
I Tool Agile
L’industria dello sviluppo software ovviamente per prima cosa produce tool per lo se stessa. Ne esistono
di molto semplici a molto sofisticati o esclusivi per determinati ambienti proprietari.
I principali, almeno dal punto di vista del gradimento, sono quelli indicati nel seguente survey.
Cosa è SCRUM
Scrum,è uno schema di project management "general-purpose” dove i progetti procedono con
una serie di iterazioni della durata da 2 a 4 settimane, dette sprint. Il team, formato da 5 a 9 risorse,
in alcuni casi da centinaia di persone o anche da una sola persona, non prevede le figure tradizionali
(analista, programmatore, etc.), ma una serie di nuovi ruoli, ben definiti, che collaborano nel cercare di
soddisfare tutte le richieste dell’utente. Tutte le decisioni vengono prese a livello basso in un clima di
auto governo.
L’approccio Scrum prevede regole precise per le riunioni iterative e la gestione del backlog del lavoro,
sviluppando un senso di cameratismo che favorisce creatività, collaborazione e produttività.
Il backlog si alimenta gradualmente, man mano che l’utente propone altre stories, dando origine al
product backlog , dal quel viene estratto lo Sprint backlog di ogni iterazione.
Lo Scrum Master e lo Scrum Architect intervengono rispettivamente per verificare l’utilizzo appropriato
dei processi Scrum e l’aderenza alle architetture disponibili o da acquisire.
Il team si incontra ogni giorno in una breve riunione detta “Daily Scrum” dove ogni partecipante
risponde alle seguenti domande:
Alla fine di ogni sprint, il team tiene una demo, detta sprint review meeting , per esporre ciò che ha
realizzato durante lo sprint. Dopo la demo in un’altra riunione, detta sprint retrospective , si esamina
cosa cambiare per lavorare meglio.
Mike Cohn rappresenta Scrum con il seguente grafico di notevole eleganza:
A sinistra vediamo la product backlog con le relative priorità stabilite dal product owner con tutto ciò che si
sa del prodotto alla data, al centro lo sprint tipo di 2-4 settimane. All’inizio di ogni sprint, il team decide lo
sprint backlog, la lista di task con le rispettive stime da completare nello sprint. Alla fine di ogni sprint, il
team produce un rilascio parziale, mentre ogni giorno inizia con il Daily Scrum Meeting.
Un team Agile si muove velocemente nel contesto con questa nuova terminologia, rilasciando continuamente
incrementi di applicazione. Il team si auto governa demandando le decisioni a chi è effettivamente commesso
e non a chi è solo coinvolto, motivo per cui durante il Daily Scrum, alcune figure possono assistere alle
riunioni ma non possono parlare o proporre soluzioni.
Chi è lo ScrumMaster
Lo ScrumMaster è l’allenatore, il coach del team come in una squadra di rugby. Si preoccupa di far
utilizzare le prassi Scrum traendone il meglio in termini di produttività e di coesione del team. Viene chiamato
anche process owner in contrapposizione al product owner con il quale negozia il contenuto del product
backlog, specie per le stories che entrano negli sprint successivi.
Questo ruolo viene ricoperto, di solito, da un project manager di esperienza con lo scopo di proteggere il
team dalle pretese del product owner o dalla compiacenza.
Il team potrebbe accontentarsi di facili successi e smettere di cercare il miglioramento continuo. Lo
ScrumMaster previene questi rischi, frenando la pressione del product owner quando il team è troppo
carico e richiedendo più lavoro quando il team è più scarico. Questa figura, non ha potere sul team, ma ne
ha tanto sui processi, per cui può determinare come lavorare meglio per raggiungere gli obiettivi del
progetto. Questi scenari sono descritti in Fondamentali di Scrum
(http://www.tenstep.it/Agile/Download/WP/Fondamentali-di-Scrum.pdf ) e sintetizzati in Introduzione a
Scrum (http://www.tenstep.it/Agile/Introduzione-SCRUM.pdf ) di Mike Cohen.
Approccio Sashimi
Il “Sashimi” è un piatto di pesce crudo tagliato a fette sottili ed infilzato per dare l’idea del pesce intero,
una specie di spiedino.
I primi ad utilizzare il termine “sashimi” nell’industria furono gli ingegneri della Fujitsu negli anni ’80 per
indicare “una serie di task correlati scelti per una iterazione”. Agile ha mutuato questo concetto di
velocità decisionale delle iterazioni di un progetto di sviluppo Agile.
Anziché disegnare tutta l’architettura ai vari livelli, ci si concentra sulla minima quantità di codice necessaria
per legare le parti indispensabili a realizzare le funzionalità. Quest’approccio minimale consente a
sviluppatori e utente di valutare immediatamente la qualità del software prodotto, concentrandosi subito
sull’iterazione successiva per migliorarlo. Le iterazioni successive aggiungono altre funzionalità
architetturali in base alle esigenze dell’utente. L’approccio Sashimi, di tipo incrementale, fa affidamento
su un valido sistema di interfacce che garantiscano il legame tra le varie iterazioni. In realtà, in ambiente
SCRUM, con il termine Sashimi si intende anche il report di ciò che è stato realizzato (done), ossia il
resoconto delle iterazioni realizzate, di quelle restanti e la stima a finire.
Dal report Sashimi nasce anche il concetto di “velocità di iterazione: la produttività del team di progetto
per singola iterazione o sprint, sulla base delle iterazioni già realizzati.