Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_3 V1.2 Gestione dello sviluppo software Modelli Agili Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale
INDICE Metodi agili XP SCRUM Utilizzo dei metodi agili Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 2
Metodi agili Il problema Tempi stretti e requisiti incerti Metodi (criteri gestionali, valori, euristiche, ) Importanza delle persone Adattamento vs pianificazione Poca documentazione.. A4 Gest sviluppo software Paolo Salvaneschi 3
Metodi agili Agile Modeling http://www.agilemodeling.com http://www.agilemanifesto.com extreme Programming (Kent Beck) http://www.xprogramming.com SCRUM http://www.scrumalliance.org/pages/what_is_scrum A4 Gest sviluppo software Paolo Salvaneschi 4
Metodi agili A4 Gest sviluppo software Paolo Salvaneschi 5
XP A4 Gest sviluppo software Paolo Salvaneschi 6
XP Criterio generale La produzione di un applicazione non è il risultato di un analisi precisa e di una pianificazione a priori. E il risultato di una successione di azioni di limitata durata temporale che vengono attuate sulla base della percezione dello stato corrente del progetto. Il lavoro dei programmatori procede organizzando quattro attività fondamentali che si ripetono nel corso del progetto: Osservazione dei desideri del committente Progetto dell applicazione Scrittura del codice Verifica delle funzionalità (testing) A4 Gest sviluppo software Paolo Salvaneschi 7
XP Whole team Il gruppo di lavoro include persone che, nell insieme, hanno competenze di analisi, progettazione, programmazione e test. L idea è che anche le singole persone abbiano più competenze specialistiche. Planning game Lo sviluppo dell applicazione è accompagnato dalla stesura di un piano di lavoro. Il piano è definito e, continuamente aggiornato, a intervalli brevi e regolari dai responsabili del progetto, secondo le priorità aziendali e le stime dei programmatori. A4 Gest sviluppo software Paolo Salvaneschi 8
XP Small releases Lo sviluppo dell applicazione prevede rilasci di versioni del prodotto funzionanti. Ogni rilascio realizza un insieme di casi d uso (storie di utilizzo che operano come specifica). Ogni rilascio è la conclusione di un iterazione di sviluppo e l inizio di una nuova pianificazione. Ogni iterazione dovrebbe durare non più di qualche settimana. Customer test Il committente deve essere coinvolto nello sviluppo. Partecipa alla stesura dei test di sistema e verifica periodicamente che il sistema realizzato corrisponda effettivamente alle proprie esigenze. A4 Gest sviluppo software Paolo Salvaneschi 9
XP Collective ownership Il codice dell applicazione può essere liberamente manipolato da qualsiasi sviluppatore (che deve essere messo nelle migliori condizioni di comprenderlo). Coding standard Il codice deve essere scritto sulla base di regole condivise. Tutti gli sviluppatori devono essere in grado di capire e modificare ogni linea di codice scritta da altri. A4 Gest sviluppo software Paolo Salvaneschi 10
XP Sustainable pace Lo sviluppo di applicazioni con i metodi dell extreme Programming è un attività che richiede grande concentrazione. Lo straordinario è da evitare per non provocare un deterioramento della qualità dell impegno. Metaphor Ogni progetto è guidato da una metafora condivisa da responsabili e sviluppatori. La metafora è una descrizione sintetica del sistema nel suo complesso e fornisce un vocabolario comune a tutte le persone coinvolte, senza scendere nei dettagli implementativi. A4 Gest sviluppo software Paolo Salvaneschi 11
XP Continuous integration Il codice sviluppato è frequentemente integrato in modo da avere una versione funzionante a disposizione di tutti i programmatori che cresce. Test driven development L applicazione è verificata sia a livello di sistema (test di sistema) sia a livello del singolo metodo (test di unità). I test di sistema sono basati su casi d uso. I test di unità sono rieseguibili automaticamente. L insieme di test per un modulo è rieseguito ad ogni modifica del modulo. A4 Gest sviluppo software Paolo Salvaneschi 12
XP Refactoring L applicazione è periodicamente ristrutturata per eliminare parti superflue o semplificare la struttura. Simple design L architettura dell applicazione deve essere la più semplice possibile. A fronte di nuove situazioni, saranno progettati nuovi componenti o riprogettati quelli esistenti. A4 Gest sviluppo software Paolo Salvaneschi 13
XP Pair programming La scrittura del codice è fatta da coppie di programmatori che lavorano al medesimo terminale. Le coppie non sono fisse, ma si compongono associando le migliori competenze per la risoluzione di uno specifico problema. Il lavoro in coppia permette, scambiandosi periodicamente i ruoli, di mantenere mediamente più alto il livello d attenzione. A4 Gest sviluppo software Paolo Salvaneschi 14
SCRUM Scrum Mischia (pacchetto di mischia del rugby). Metafora del team di sviluppo che deve lavorare insieme in modo che tutti gli attori del progetto spingano nella stessa direzione, agendo come un'unica entità coordinata Prevede di dividere il progetto in blocchi rapidi di lavoro (Sprint) alla fine dei quali consegnare una versione al cliente Indica come definire i dettagli del lavoro da fare nell'immediato futuro (Backlog), organizza riunioni giornaliere del team di sviluppo (Scrum Meeting) per verificare cosa si è fatto e cosa si farà A4 Gest sviluppo software Paolo Salvaneschi 15
SCRUM Processo A4 Gest sviluppo software Paolo Salvaneschi 16
SCRUM Processo Rethink Project Management Rethink what Scrum could mean for your complex project. Whether you're building the next ipad app, shipping dog food across the country, or running a charity event, Scrum can help Scrum is a way to prioritize large to-do items into manageable chunks of work A4 Gest sviluppo software Paolo Salvaneschi 17
SCRUM Differenza tra SCRUM e XP SCRUM è orientato alla gestione di un processo e non è strettamente legato ai processi IT XP è maggiormente focalizzato sugli aspetti tecnici legati allo sviluppo del software. A4 Gest sviluppo software Paolo Salvaneschi 18
Utilizzo dei metodi agili A4 Gest sviluppo software Paolo Salvaneschi 19
Utilizzo dei metodi agili Situated actions Plans A4 Gest sviluppo software Paolo Salvaneschi 20
Utilizzo dei metodi agili La collezione delle pratiche dei metodi agili di per sé non risolve i problemi della produzione ingegnerizzata del software Vi sono molti e diversi contesti di produzione La stabilità dell architettura software è un fattore chiave Le pratiche possono essere considerate utili strumenti da utilizzare (anche integrate in processi più strutturati) per: Ridurre la burocrazia e la produzione di documenti inutili Coinvolgere gli utenti nello sviluppo Migliorare la qualità del prodotto rilasciato A4 Gest sviluppo software Paolo Salvaneschi 21
Utilizzo dei metodi agili Si possono specificare, progettare, costruire in modo agile? Fift of Forth Bridge Edinburgh 1890 Toronto A4 Gest sviluppo software Paolo Salvaneschi 22
Utilizzo dei metodi agili Punti di attenzione Le applicazioni evolvono per lungo tempo Le architetture sono complesse I sistemi sono eterogenei Le conoscenze sono frammentate in gruppi diversi Sono utilizzati diversi outsourcer di sviluppo. La versione banale dei metodi agili (un piccolo gruppo molto competente lavora iterativamente con il cliente) può generare processi molto costosi e prodotti molto difettosi A4 Gest sviluppo software Paolo Salvaneschi 23
Aspetti positivi e negativi Bertrand Meyer: Agile! The Good, the Hype and the Ugly Springer-Verlag, 2014 A4 Gest sviluppo software Paolo Salvaneschi 24
Aspetti positivi e negativi In che modo gli elementi agili (principi, regole organizzative, tecniche, ) si sostituiscono/integrano con processi più strutturati (specifica-architettura-..)? Gli elementi agili includono: Aspetti dannosi per il processo software Aspetti indifferenti e poco usati Aspetti buoni e utilizzabili con profitto integrati in processi strutturati A4 Gest sviluppo software Paolo Salvaneschi 25
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 26
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 27
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 28
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 29
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 30
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 31
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 32
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 33
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 34
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 35
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 36
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 37
Aspetti positivi e negativi A4 Gest sviluppo software Paolo Salvaneschi 38