Sviluppo Agile. Prof. Filippo Lanubile. Processo software

Documenti analoghi
Ingegneria del Software

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

Approcci agili per affrontare la sfida della complessità

Poca documentazione: uso di Story Card e CRC (Class Responsibility Collabor) Collaborazione con il cliente rispetto alla negoziazione dei contratti

Introduzione all Ingegneria del Software

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

Un team agile allo sprint. 28 Febbraio 2013 Emiliano Soldi

Ciclo di vita dimensionale

The Scrum Guide. La Guida Definitiva a Scrum: Le Regole del Gioco. Ottobre Sviluppata e sostenuta da Ken Schwaber e Jeff Sutherland

QUESTIONARIO 1: PROCESSO DI AUTOVALUTAZIONE

Innovazione di processo e di prodotto in un azienda del settore domotica

Il Processo Software

Agile in tough economic times. Agile in tough. Slide 1 30 April 2009

Ciclo di vita del software

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

11. Evoluzione del Software

Gestione dello sviluppo software Modelli Agili

Il modello di ottimizzazione SAM

Coaching. Nicola Moretto

La Formazione: elemento chiave nello Sviluppo del Talento. Enzo De Palma Business Development Director

La Guida a Scrum. La Guida Definitiva a Scrum: Le Regole del Gioco. Luglio Sviluppata e mantenuta da Ken Schwaber Jeff Sutherland

METODI AGILI IL CONTROLLO DI GESTIONE PER. Loredana G. Smaldore

Il sistema di automazione nelle Raffinerie di olio alimentare

Concetti di base di ingegneria del software

4.1 Che cos è l ideazione

Echi da Amsterdam. Titolo: Sintesi presentazioni Metodologia Agile. Sintesi del Leadership Meeting e dell EMEA Congress Relatore: Bruna Bergami

Configuration Management

Introduzione all Agile Software Development

Agile Principles Agile People. Gaetano Mazzanti Gama-Tech

Coordinamento e comunicazione

Il Processo Software

Rational Unified Process Introduzione

7. Esigenze informative e FAQ. 8. Allegati. Repository documentale.

12. Evoluzione del Software

I I SISTEMI INFORMATIVI INTEGRATI. Baan IV IV - Enterprise e Orgware NOTE

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Una fugace occhiata al Test Driven Development

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Ciclo di vita del progetto

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Agile e Scrum in pratica

Il catalogo MARKET. Mk6 Il sell out e il trade marketing: tecniche, logiche e strumenti

La gestione della qualità nelle aziende aerospaziali

Mantenere il piano. Il piano guida il lavoro permettendo di misurare il progresso

Certified ScrumMaster

Trasformazioni Agili: l importanza di un partner qualificato

Revenue & Pianificazione strategica. Revenue Management Datawarehouse Forecasting Business Intelligence

Processi principali per il completamento del progetto

Appendice III. Competenza e definizione della competenza

Il marketing dei servizi

Perfare MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI

Metodologia TenStep. Maggio 2014 Vito Madaio - TenStep Italia

Database. Si ringrazia Marco Bertini per le slides

Corso di Amministrazione di Sistema Parte I ITIL 1

Seminario Metodi Agili per la gestione dei progetti per Decision Makers

V. RISORSE PER IL PROGETTO

Valorizzazione della professionalità di SW Quality Assurance

CP Customer Portal. Sistema di gestione ticket unificato

ORGANIZZAZIONE E PIANIFICAZIONE DEL PROCESSO DI SVILUPPO PRODOTTO

Sistemi Informativi I

MILESTONES E DELIVERABLES

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

UML e (R)UP (an overview)

10. IL DEPLOYMENT ORGANIZZATIVO - GESTIONALE

Descrizione dettagliata delle attività

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

La Metodologia adottata nel Corso

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

Leading Initiative for Value and Efficiency. Interventi di formazione presso organizzazioni pubbliche e private 2012-L2 PROJECT MANAGEMENT

ISO/IEC 2700:2013. Principali modifiche e piano di transizione alla nuova edizione. DNV Business Assurance. All rights reserved.

Master Universitario di I livello in Gestione dei Processi di Vendita

IS Governance. Francesco Clabot Consulenza di processo.

IL PROJECT MANAGEMENT

AMMINISTRARE I PROCESSI

PROGETTAZIONE DI UN SITO WEB

EUROPEAN PROJECT MANAGEMENT QUALIFICATION - epmq. Fundamentals. Syllabus

Che cos è un prototipo? Perchè creare prototipi?

Stai impaginando manualmente centinaia di pagine?

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Big Data e IT Strategy

Cos è. Insieme di: struttura organizzativa (equipe di qualità + capo progetto) responsabilità. procedure. procedimenti. risorse

Project Management & Innovazione

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)


Guida Compilazione Piani di Studio on-line

Valutazione del potenziale

MANUALE DELLA QUALITÀ Pag. 1 di 6

La gestione manageriale dei progetti

Internet e social media per far crescere la tua impresa

La Pianificazione Operativa o Master Budget

Istituto Comprensivo di Positano e Praiano C.A.F. 2014

Il sistema di gestione dei dati e dei processi aziendali. Il sistema di controllo interno dal punto di vista del revisore

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

AGILE IL TEAM, MA IL CLIENTE? Trasmettere al cliente valori, vantaggi e necessità dello sviluppo agile

L uso della Balanced Scorecard nel processo di Business Planning

La progettazione centrata sull utente nei bandi di gara

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO!

Development & Assessment Tools

Transcript:

Sviluppo Agile I processi (di sviluppo) del software bisogni nuovi o modificati Processo software Prodotto software nuovo o modificato Un processo software descrive quali sono le attività che concorrono a sviluppare un prodotto software e come le attività sono collegate tra loro Assunzione: la qualità del processo implica la qualità del prodotto 1

Attività tipiche nello sviluppo ed evoluzione del software Attività tecniche Analisi dei requisiti (requirements analysis) Progettazione (design) Realizzazione (implementation) Collaudo (testing) Messa in esercizio (deployment) Conduzione operativa (operation) Manutenzione (maintenance) Attività organizzative Gestione del progetto (project management) Gestione della configurazione (configuration management) Assicurazione della qualità (quality assurance) Stile di processo a cascata (waterfall) Suddivide il progetto in base alle attività tecniche Le fasi coincidono con le attività Si passa a una fase successiva solo se si completa l attività e si supera il punto di controllo Tornare indietro è possibile ma come eccezione Problemi Rischio elevato: difficile Analysis Design Implementation Testing stabilire che tutto procede veramente bene Difficile da applicare se i requisiti sono poco noti o volatili Time to market ritardato 2

Stile di processo iterativo Anche conosciuto come incrementale, a spirale, evolutivo Suddivide il progetto in base a sottoinsiemi di funzionalità (iterazioni) L inizio delle iterazioni è preceduto da una fase esplorativa Ogni iterazione produce codice (build) testato e integrato nel sistema complessivo Le iterazioni messe in produzione sono dette release Time boxing: le release sono rilasciate a intervalli di tempo regolari Iterazione 1 Iterazione 2 Iterazione 3 Testing Implementation Implementation Testing Analysis Design Analysis Design Non esiste un modo unico per strutturare lo sviluppo del software Sviluppo hoc (build and fix) Conoscenza tacita Documentazione inesistente o quasi Approccio non ripetibile e trasferibile solo con apprendistato Sviluppo pianificato (plan-driven) Piano dettagliato delle attività creato a monte Molta documentazione come forma di comunicazione indiretta Stile di processo a cascata Adatto per progetti con requisiti noti a priori e stabili nel tempo Sviluppo agile Fortemente adattivo rispetto ai cambiamenti in corso d opera Poca documentazione: enfasi sulla comunicazione diretta tra persone Stile di processo iterativo: iterazioni corte e di durata costante (time-boxed) Esempio: Scrum 3

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http://agilemanifesto.org Kent Beck - Mike Beedle - Arie van Bennekum - Alistair Cockburn - Ward Cunningham - Martin Fowler - James Grenning - Jim Highsmith - Andrew Hunt Prof. - Filippo Ron Jeffries Lanubile- Jon Kern - Brian Marick - Robert C. Martin - Steve Mellor - Ken Schwaber - Jeff Sutherland - Dave Thomas Un processo tipico di sviluppo agile del sw Selezione Incremento del prodotto Product Backlog Iterazione (Time-boxed) Modifica backlog Raccolta del feedback 4

Metodi agili Extreme Programming (XP) Scrum Kanban Extreme Programming (XP) http://www.xprogramming.com/xpmag/whatisxp.htm 5

Kanban Visualizzazione del flusso di lavoro Limitazione del Work in Progress (WIP) Rilascio continuo Scrum 6

Sprint I progetti Scrum fanno progressi in una serie di iterazioni dette sprint Il prodotto è progettato, realizzato e testato durante lo sprint La durata tipica è in genere di 2 4 settimane o un mese di calendario Una durata costante permette una migliore cadenza Durante uno Sprint non sono accettate richieste di modifiche ai requisiti Scrum framework * Ruoli Product owner ScrumMaster Team Eventi Sprint planning Sprint review Sprint retrospective Daily scrum meeting * Questa parte riadatta materiale tratto da - Mike Cohn, Introduction to Scrum - Ken Schwaber and Jeff Sutherland, The Scrum Guide Artifact Product backlog Sprint backlog Burndown charts 7

Scrum framework Ruoli Product owner ScrumMaster Team Eventi Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifact Product backlog Sprint backlog Burndown charts Product Owner È responsabile del valore del prodotto Ha la responsabilità esclusiva di gestione del Product Backlog Definisce le caratteristiche funzionali e non funzionali (feature) del prodotto Assegna le priorità alle feature in base al valore di mercato Adatta le feature e le priorità a ogni iterazione Accetta o rifiuta i risultati del lavoro del Team di Sviluppo In base a una definizione di Done (lavoro completo) compresa da tutto il Team di Sviluppo

Scrum Master È una guida al servizio del Team di Sviluppo e del Product Owner Aiuta a creare gli elementi del Product Backlog in modo chiaro e conciso Aiuta a ordinare gli elementi del Product Backlog per massimizzare il valore Facilita gli eventi Scrum Rende trasparente il processo di sviluppo mediante visualizzazione delle informazioni chiave Team di Sviluppo Soltanto i membri del Team di Sviluppo creano l incremento da rilasciare alla fine di ogni Sprint Dimensione: da 3 a regola delle 2 pizze (americane) Autogestione all interno di uno Sprint I singoli membri possono avere competenze specialistiche e aree di interesse ma è il Team di Sviluppo nel suo complesso ad avere la responsabilità finale 9

Scrum framework Ruoli Product owner ScrumMaster Team Eventi Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifact Product backlog Sprint backlog Burndown charts Sprint planning Valutazione delle priorità nel Product Backlog Scelta dello Sprint Goal Selezione degli item da completare nello Sprint Creazione dello Sprint Backlog Identificazione dei Task e stima (1-16 ore) Anche il design di alto livello è considerato Come pianificatore di vacanze, voglio vedere le foto degli alberghi. Scrivere lo strato business ( ore) Scrivere l interfaccia utente (4) Scrivere le test fixtures (4) Scrivere la classe pippo(6) Aggiornare i performance tests (4) 10

Daily scrum meeting Parametri Tutti i giorni 15-minuti In piedi Tre domande: Cosa hai fatto ieri? Cosa farai oggi? Ci sono problemi? Sono tutti invitati ma solo i membri del team, lo Scrum Master e il Product owner hanno diritto di parola Sprint review Il team presenta i risultati raggiunti durante lo Sprint Demo delle nuove funzionalità o dell architettura sottostante Informale Regola: 2 ore di preparazione Niente slide Riunione aperta Tutto il team partecipa Esterni benvenuti 11

Sprint retrospective Periodicamente si analizza cosa sta funzionando e cosa no Si discute cosa introdurre cosa evitare cosa continuare nel prossimo sprint Tipicamente da 15 a 30 minuti Fatta al termine di ogni sprint Partecipa tutto il team Possibilmente anche i clienti ed altri ruoli coinvolti Scrum framework Ruoli Product owner ScrumMaster Team Eventi Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifact Product backlog Sprint backlog Burndown charts 12

Product Backlog Una lista di tutto il lavoro richiesto sul progetto L unica fonte di requisiti per le modifiche da apportare al prodotto È dinamico e cambia continuamente Nella prima stesura contiene solo i requisiti inizialmente conosciuti e meglio compresi Le priorità sono stabilite dal Product Owner e aggiornate all inizio di ogni sprint Le stime degli item pronti per uno Sprint sono stabilite dal Team di Sviluppo Esempio di product backlog Backlog item Stima Permettere ad un ospite di effettuare una prenotazione Come ospite, voglio cancellare una prenotazione. 5 Come ospite, voglio cambiare le date di una prenotazione. Come impiegato dell hotel, posso lanciare i report RevPAR (Revenue Per Available Room = Fatturato per camera disponibile) Migliorare la gestione delle eccezioni... 30... 50 3 3 13

Requisiti funzionali nello sviluppo agile Descrizione di una user story Template Esempio In qualità di <ruolo utente>, voglio <obiettivo> [in modo tale da <motivo>] In qualità di cliente occasionale, voglio visualizzare le foto dell'albergo selezionato in modo tale da decidere se effettuare la prenotazione 14

Sprint goal Una breve indicazione dell obiettivo principale dello Sprint Cambio Database Fare girare l applicazione anche su SQL Server oltre che su Oracle. B Servizi finanziari Supportare più indicatori tecnici di quanto faccia ABC con dati in tempo reale. 15

Sprint backlog L'insieme degli elementi del Product Backlog selezionati per lo Sprint più un piano per fornire l'incremento del prodotto e realizzare lo Sprint Goal La gestione è di esclusiva pertinenza del Team di Sviluppo Il lavoro non è assegnato da un project manager Quando del nuovo lavoro risulta necessario, il Team di Sviluppo lo aggiunge allo Sprint Backlog Se alcuni elementi del piano non sono più ritenuti utili, sono rimossi La stima del lavoro rimanente è aggiornata nel daily meeting Uno sprint backlog Tasks Lun Mar Mer Gio Ven Codificare la UI 4 Codificare il middle tier 16 12 10 4 Testare il middle tier 16 16 11 Scrivere l help online 12 Codificare la classe foo Logging degli errori 4 16

Scrum board Una Scrum board fisica 17

Una Scrum board digitale Uno sprint burndown chart Hours 1

Tasks Codificare la UI Codificare il middle tier Testare il middle tier Scrivere l help online Lun 16 12 Mar Mer Gio Ven 4 12 10 7 16 16 11 50 40 Hours 30 20 10 0 Lun Mar Mer Gio Ven Riepilogo 19

Adattare un processo a un progetto I progetti software differiscono al variare di molti fattori tipo di sistema software, natura dei rischi, tecnologie usate, numero e competenze dei partecipanti, distribuzione geografica del gruppo, Non ci sono processi che siano adatti per tutti i progetti Scelto un processo base è necessario modificarlo per farlo funzionare al meglio Valutazione retrospettiva (di progetto o di iterazione) Cose da tenere ciò che ha funzionato bene e che si intende ripetere in futuro Problemi aree in cui qualcosa non va come dovrebbe Cose da provare cambiamenti che potrebbero migliorare il processo 20