Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... ·...

35
Sviluppo AGILE di una applicazione: dalle User Stories alla creazione collaborativa di un Mockup Giuseppe Chiazzese CNR - Istituto per le tecnologie didattiche Modulo: Introduzione agli strumenti web per la creazione e gestione di risorse in rete

Transcript of Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... ·...

Page 1: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Sviluppo AGILE di una applicazione: dalle User Stories alla creazione collaborativa di un Mockup Giuseppe Chiazzese

CNR - Istituto per le tecnologie didattiche

Modulo: Introduzione agli strumenti web per la creazione e gestione di risorse in rete

Page 2: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Premessa

Modulo: Introduzione agli strumenti web per la creazione e gestione di risorse in rete

Risorsa in rete (prodotto software) in senso più ampio come ambiente software accessibile via web creato per soddisfare una richiesta del cliente:

•  Un negozio elettronico •  Un ambiente didattico per l’apprendimento

della grammatica italiana •  Un ebook di matematica I per il primo anno

delle scuole medie •  Un ambiente sociale per la scrittura

collaborativa di una enciclopedia •  ……..

Page 3: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Premessa 2 Modulo: Introduzione agli strumenti web per la creazione e gestione di risorse in rete

Strumento web: Sistema software web based •  Supportano una metodologia per la gestione di un

progetto di sviluppo software. •  Accompagnano l’utente nella gestione e nel

monitoraggio del processo di sviluppo o parte di esso: dalla ideazione alla realizzazione del prodotto

•  Sistemi di supporto al processo di sviluppo software

Gestione dei requisiti Gestione dei team Creazione delle code di attività di sviluppo Assegnazione delle attività Monitoraggio delle attività ….

Page 4: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Focus ´  Esplorazione di alcune metodologie AGILE per la

gestione di un progetto di sviluppo software.

´  Dalla ideazione del prodotto alla realizzazione di un modello di interfaccia

´  Dalle «user stories» come metodo agile per l’analisi dei requisiti di un ambiente software alla realizzazione di un mockup (prototipo di interfaccia)

Page 5: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodologie di sviluppo: un po’ di storia

Modello a cascata (waterfall) (Metodologie pesanti)

Page 6: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodologie di sviluppo: un po’ di storia

Metodologie iterative

Page 7: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodologie iterative basate sul modello a spirale

Modello a spirale Boehm, 2000

Page 8: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodologie di sviluppo agile

Page 9: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodologie di sviluppo agile

´  Sono metodi di sviluppo software basati sui principi espressi dal Manifesto Agile.

´  L’uso della parola Agile risale al 2001 da una riflessione fatta da un gruppo di informatici che individua 12 principi cardine su cui fondare la realizzazione di un progetto di sviluppo di un software.

´ Manifesto Agile http://agilemanifesto.org/iso/it/

Page 10: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Manifesto agile ‘’ Stiamo scoprendo modi migliori di creare software, sviluppandolo e aiutando gli altri a fare lo stesso. Grazie a questa attività siamo arrivati a considerare importanti:

Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra ‘’

Page 11: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Obiettivo: Piena soddisfazione del cliente

Page 12: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

12 principi a supporto Gli individui e le interazioni

´  Fondare lo sviluppo del progetto su individui motivati, fiducia nella loro capacità di portare a termine il lavoro

´  Fornire l’ambiente e supporto agli individui

´  Conversazioni frequenti faccia a faccia con il team e all’interno del team

´  Ritmo e interazioni costanti

´  Ad intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza

La collaborazione col cliente

´  Collaborazione costante anche quotidiana tra committenti e sviluppatori

Il software funzionante

´  Rilascio funzionante del software

´  Rilascio continuo del software, in maniera incrementale e con cadenza variabile da bisettimanale a mensile

´  Software funzionante come misura del progresso di sviluppo

´  attenzione all'eccellenza tecnica e alla buona progettazione esaltano l'agilità

´  Ritmo di sviluppo costante

´  La semplificazione come l'arte per massimizzare la quantità di lavoro non svolto - è essenziale.

Rispondere al cambiamento

´  Sfruttare le richieste di cambiamento in itinere anche a stadi avanzati a vantaggio dello sviluppo competitivo del cliente

Page 13: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Sviluppo Agile

Page 14: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Metodi di sviluppo AGILE

´ SCRUM

´ XP-EXTREME PROGRAMMING

Page 15: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Scopriamo i due metodi ´  Che cosa?

´  SCRUM e XP

´  Come?

´  Peer Group learning:

´  Gruppo 1 (4) – SCRUM

´  Gruppo 2 (4) – XP

´  Ciascun gruppo realizzerà una presentazione sintetizzando in max 10 slides ciascun metodo

´  Ciascun gruppo espone all’altro gruppo il metodo in oggetto attivando una discussione

Page 16: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Scopriamo i due metodi Risorse didattiche Gruppo SCRUM

´ Video: https://www.youtube.com/watch?v=OJflDE6OaSc

´ Wikipedia: http://en.wikipedia.org/wiki/Scrum_%28software_development%29

Gruppo XP ´ Video:

https://www.youtube.com/watch?v=X_2PfTvXBeA

´ Wikipedia: http://en.wikipedia.org/wiki/Extreme_programming_practices#Whole_team

Page 17: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Scopriamo i due metodi To do list ´  Lettura dei contenuti 20 min (individuale)

´  Meeting di gruppo per la realizzazione presentazione 25 min

Schema di presentazione (max 10 slides)

Il modello

Le fasi della metodologia di progettazine

Attori, ruoli, teams

Eventi chiave caratterizzanti il processo

Meeting per la presentazione

´  Presentazione di gruppo (15 min)

Page 18: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

SCRUM

Page 19: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi
Page 20: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

XP (Extreme programming)

Page 21: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Strumenti di supporto allo sviluppo AGILE

´  AGILE web based tracking tools http://agilescout.com/best-agile-scrum-tools/

´  http://www.versionone.com

´  https://trello.com/

´  http://www.pivotaltracker.com

Page 22: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi
Page 23: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi
Page 24: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

User Stories 1

´  Le storie utente sono descrizioni delle funzionalità dell’applicazione scritte direttamente dal cliente.

´  Descrivono azioni che l’utente può compiere per ottenere qualcosa del sistema

Page 25: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

User stories 2 ´  Una descrizione di che cosa un utente fa o ha bisogno di fare utilizzando il sistema.

´  Ciascuna storia è consistente e non dovrebbe avere dipendenze nel senso che può essere subito sviluppata e testata.

´  Le storie sono prodotte dal cliente e spesso in maniera collaborativa

´  Le storie saranno discusse ad un meeting con il team di sviluppo, si raggrupperanno in moduli e daranno vita ad un primo modello base (low fidelity prototype) di applicazione.

´  Ciascuna storia è valutata in termini di tempo di sviluppo si stabilirà una coda di produzione da inviare al team di sviluppo.

Page 26: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

User stories 3

User  Story  [number]  

As a   [ROLE]  

I want to   [SOMETHING]  

So that   [BENEFIT]  

Conversation   [SHORT DESCRIPTION]  

Le  storie  uten+  solitamente  sono  scri0e  in  una  scheda  o  post-­‐it  con  la  seguente  stru0ura:

Page 27: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Un esempio di User stories  

User  Story  1    

As a   Studente  

I want to   Aggiungere una mia fotografia  

So that  Gli altri utenti possono conoscere il

mio volto  

Conversation  Foto*

Username*  

 User  Story  1  

 

As a   Cliente  

I want to   Prenotare una stanza dell’hotel  

So that  

Conversation  Nome*, Cognome*

Email* Note

Page 28: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Una collezione di storie

USER STORY 9  As a   Health Professional, Parent, Teacher  

I want to   Add, edit, view and delete a case  

So that   Collect information about case history  

Conversation  

Name Surname

Date of birth Sex

Siblings number  

Siblings data Sibling date of birth

Sibling name Sibling sex

   

USER STORY 10  

As a   Health Professional, Parent, Teacher  

I want to   View my Cases/Children  

So that      

Conversation  List of cases

   

Page 29: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Una collezione di storie USER STORY 11  

As a   Parent, Health Professional  

I want to   Add/edit/view/delete case events  

So that   Collect information about case history  

Conversation  

ADHD Diagnosis Diagnoses Date

Subtypes (hyperactive-impulsive, inattentive, combined)

Age of onset Comorbid disorders

ADHD secondary disorder (YES,NO)  

Medications Date

Medication Name Dosage

  School Information

Year School name

Grade Special need support teacher (YES/NO)

Individual Education Plan (YES/NO)  

Discipline referrals Type of referral

Date Description

  Other Event

Date Event Description  

USER STORY 12  

As a   Teacher  

I want to  Add/editview/delete case

events  

So that  Collect information about

case history  

Conversation  

School Information Year

School name Grade

Special need support teacher (YES/NO)

Individual Education Plan (YES/NO)

  Discipline referrals

Type of referral Date

Description  

Page 30: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Low fidelity prototype of WHAAM Application

Page 31: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Esercitazione

´  Risorsa: http://www.teatromassimo.it/index.php

Immaginate di essere il direttore del teatro Massimo al quale è stato dato il compito di descrivere le storie del sito web da sviluppare.

Gruppo 1: Creazione delle storie utente relative all’area «Home page»

Gruppo 2: Creazione delle storie utente relative all’area «Il teatro»

Tempo a disposizione: 40 minuti

Page 32: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Mockup 1/2 ´  Un modello di interfaccia utente caratterizzato da una

collezione di sketches (schizzi, bozzetti) che mostra le schermate di una applicazione utente.

Page 33: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Mockup 2/2

´  Esistono alcuni strumenti che facilitano e supportano la creazione anche collaborativa di un mockup.

´  http://www.balsamiq.com/

´  https://moqups.com

´  http://pencil.evolus.vn/

Page 34: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi

Balsamiq

Page 35: Sviluppo AGILE di una applicazionetgc.pa.itd.cnr.it/images/Lezioni/.../Sviluppo_AGILE... · Metodologie di sviluppo agile ´ Sono metodi di sviluppo software basati sui principi espressi