Agile Project Management Methods per progetti IT The difference between failure and success is the difference between doing something almost right and doing something right. − Benjamin Franklin Le metodologie di Agile project management sono sempre più presenti nel vocabolario delle moderne organizzazioni per affrontare progetti nell’ambito dell’Information Technology. Queste metodologie nascono per snellire i processi High ceremony come il PMBOK o il CMM tradizionalmente associati a domini della software engineering e si concentrano sulle attività legate al software piuttosto che sulle persone. Le organizzazioni con processi affermati definiscono e controllano le attività in maniera molto rigorosa, spesso usando esperienza diretta. Si parla di metodi agili nel contesto di un insieme di attività leggere (lightweight) che gestiscono tutte le fasi di sviluppo o acquisizione del software. Le attività sono indirizzate in parte ad aspetti manageriali, ma principalmente alla creazione degli artefatti software. Gli approcci agili sono la naturale evoluzione dello sviluppo del software, ma come possono essere applicati alle tradizionali attività di project management? Quali semplificazioni sono appropriate per ogni specifico dominio? Weight vs Agility Lightweight e Agile non sono termini intercambiabili. Lightweight descrive la pesantezza del processo e dei suoi artefatti: la quantità di artefatti che non hanno un valore aggiunto. Agility descrive il comportamento dei partecipanti e la loro abilità nel muoversi e modificare l’attività in situazioni impreviste. Weight vs Agility Rendere un processo più leggere eliminando il “peso indesiderato” è una pratica standard in molte discipline ingegneristiche, ma nel contesto del project management questa pratica è inappropriata e possibile fonte di fallimenti nei progetti. Project Management Framework In accordo con la Software Engineering Institute (SEI), una metodologia deve possedere certi attributi in modo da rispettare i requisiti per essere chiamata tale. Gli attributi sono in relazione tra loro mentre l’approccio è basato sulla comunicazione e sugli aspetti centrati sulle persone del project management. Con questa metodologia è possibile costruire un project management Agile. Project Management Framework Relazioni tra le attività del Project Management Agile Project Management L’applicazione di una metodologia Agile in un’organizzazione già esistente e strutturata incontra alcuni ostacoli: • I processi legacy devono far posto ai nuovi processi agili. • Le lacune dei processi legacy devono essere riempite con i nuovi processi mantenendo l’integrità fornita dai vecchi. Agile Project Management Elementi comuni tra i metodi E’ possibile definire una lista di passi comuni tra i vari metodi di Agile Project Management, usando la figura precedente come framework. Thread Compliance Raccolta dei requisiti E’ necessario un metodo di raccolta dei requisiti Sviluppo o recupero del software Sviluppare o reperire il software come da requisiti Testing Test strutturato del software Gestione del personale Metodi per la gestione del personale Project Management Metodi per la definizione di procedure, misurazione di progressi, feedback e cambiamenti Agile Project Management Agile come tassonomia Prima di scegliere una metodologia di sviluppo è utile capire che tipo di software si sta per sviluppare. Quale metodologia di project management è più appropriata per il particolare problema di dominio? Tipo Attributi Management Information Systems Software di supporto al business Sistemi in appalto Sviluppo per organizzazioni Systems software Sistemi di controllo di device ed embedded Software commerciali Software venduto su ampi mercati Software militari Servizi per militari End User Software Piccole applicazioni per usi personali Web Applications Applicazioni di migrazione, multimedia, transazioni o interfacce web in generale Agile Project Management Fondamenti Un framework per sviluppare processi agili di project management dovrebbe fornire linee guida più che regole. Questo framework fornisce infatti una larga serie di raccomandazioni e si basa su due fondamenti: • The Software Program Managers Network Nine Best Practices – che forniscono linee guida per le attività giornaliere. • Il framework Agile Modeling di Scott Ambler – un vasto framework per processi agili in ambito di sviluppo del software. Agile Project Management Linee guida Le linee guida affrontano due aspetti fondamentali dell’Agile Project Managment: • Valori dell’Agile Project Mangement. • Applicazione dei principi dell’Agility. Agile Project Management Linee guida Valori dell’Agile Project Mangement • Comunicazione: deve essere continua, all’interno e all’esterno, tra tutti gli stakeholders. • Semplicità: le soluzioni devono essere facili e facilmente misurabili. • Feedback: usare il feedback come strumento principale per l’Agility. Agile Project Management Linee guida • Coraggio: decisioni e cambiamenti vanno affrontati con coraggio perché parte di ogni progetto. • Umiltà: i migliori project manager sanno di non essere a conoscenza di tutto; ogni stakeholder porta un valore aggiunto al progetto. Agile Project Management Linee guida Applicare i principi agili • Assumere semplicità: creare solo artefatti utili per l’immediato beneficio degli stakeholder. • Adattarsi ai cambiamenti: i requisiti possono evolvere nel tempo, cambiare quindi i punti di vista e i criteri di successo del progetto. • Pensare al prossimo sforzo: dopo la consegna, un progetto può ancora essere un fallimento. Agile Project Management Linee guida • Cambiamenti incrementali: affrontare il sistema a piccole porzioni. • Massimizzare il valore degli stakeholder: investono risorse e si aspettano che il risultato incontri i loro requisiti. • Gestire con criterio: per ogni artefatto identificare per chi ha valore e crearlo secondo questo proposito. Agile Project Management Linee guida • Visioni multiple del progetto: fornire differenti visioni del progetto per differenti ascoltatori. • Feedback frequenti: minimizzare il tempo tra l’azione e il suo feedback. • Creare software è il goal principale: tralasciare documentazione, modelli o artefatti estranei alle specifiche dei requisiti; pesare ogni attività non connessa ai goal del progetto. Agile Project Management Linee guida • Viaggiare leggeri: ogni artefatto va mantenuto per tutto il ciclo di sviluppo, quindi bilanciare lo sforzo per mantenerlo con il suo valore. Agile Project Management Raccomandazioni • Cambiamenti, project plan e artefatti devono essere votati all’agilità. • Sforzarsi di ottenere feedback frequenti per assicurarsi che il progetto segua i bisogni degli stakeholder. • Gestire con criterio e fare solo azioni con valore aggiunto. • Viaggiare leggeri scaricando artefatti senza valore. Riferimenti • The story of managing projects, Greenwood Press • The Software Program Managers Network Nine Best Practices, www.spmn.com • Agile Modeling, Scott Ambler, www.agilemodeling.com • www.agilemanagement.net