Agile. mercoledì, 1 luglio 2015, 3:05 p. Prof. Tramontano docente Federico II ingegneria del software. Sviluppo Agile: metaprocesso



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

Da dove nasce l idea dei video

Che cos è un prototipo? Perchè creare prototipi?

Gestione dello sviluppo software Modelli Agili

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

A cura di Giorgio Sordelli

Concetti di base di ingegneria del software

COME SI ENTRA IN POSIZIONE

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

COME AVERE SUCCESSO SUL WEB?

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

IL MODELLO CICLICO BATTLEPLAN

Esercizi su. Funzioni

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

Mentore. Presentazione

11. Evoluzione del Software

Il concetto di Dare/Avere

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING

IPERCA. Il metodo a sei fasi Per gestire con successo progetti, incarichi e situazioni di vita e per accrescere continuamente l esperienza.

Le basi della Partita Doppia in parole Facile e comprensibile. Ovviamente gratis.

INSERIMENTO DATI BASILARI

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

REVISIONE-CORREZIONE. La Revisione è un momento molto importante nel processo della produzione scritta.

12. Evoluzione del Software

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

IL MIO PRIMO SITO: NEWS

Prova Finale Controllo delle versioni

ADEGUATEZZA O ADEGUAMENTO DEL SOFTWARE PRÊT-À-PORTER ALLE ESIGENZE DEGLI UTENTI PROF. FABIO A. SCHREIBER POLITECNICO DI MILANO

La progettazione centrata sull utente nei bandi di gara

Facciamo un analisi di tutti i vari Cicli a partire dall attuale Intermedio iniziato l 8 giugno.

Ingegneria del Software

Corso formazione su Sistema di gestione della qualità. Standard ISO 9001:2000/2008 Vision 2000

Le miniguide di Umberto Santucci. Come stabilire le priorità? Miniguida per l'uso del Diagramma di Pareto

I 12 principi della. Leadership Efficace in salone

leaders in engineering excellence

Mentore. Rende ordinario quello che per gli altri è straordinario

Information summary: La Gestione dei Reclami

Cosa ci può stimolare nel lavoro?

I social network. Intanto sfatiamo subito un po di miti: La sola pubblicità sui social non porta a grandi risultati. Non esiste il miracolo

Mondi che funzionano. Dall Odissea a Game of Thrones, pratica alla scrittura di ambientazioni solide e avvincenti per le vostre storie.

Primo contatto. Come rispondere alle richieste di contatto e preventivo su Internet e avere successo: linee guida per il professionista

Coordinamento e comunicazione

I documenti di Gli ingredienti per l allenamento per la corsa LE RIPETUTE

Creare una nuova spedizione personalizzata.

GRUPPO MY- social media solutions / Via G.Dottori 94, Perugia / PI

È possibile organizzare corsi e cicli presso la propria sede (Classi on-site)?

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

TNT IV. Il Diavolo è meno brutto di come ce lo dipingono!!! (Guarda il video)

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

Configuration Management

4.1 Che cos è l ideazione

STAKEHOLDER ENGAGEMENT

Ciclo di vita del progetto

Gestione del conflitto o della negoziazione

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Udine, 26 gennaio 2014 Alessandro Manzano

La valutazione nella didattica per competenze

ISTITUTO DI ISTRUZIONE SUPERIORE

DA IPSOA LA SOLUZIONE PER COSTRUIRE E GESTIRE IL SITO DELLO STUDIO PROFESSIONALE!

La Qualità il Controllo ed il Collaudo della macchina utensile. Dr. Giacomo Gelmi

INDAGINE SULLA PERCEZIONE DELLA SODDISFAZIONE DEI CLIENTI GECA. Rapporto di sintesi.

Descrizione dettagliata delle attività

Che cos è un prototipo? Prototipazione. Perchè creare prototipi? Insidie. I processi corrono in parallelo

Scenario di Progettazione

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Amministrazione gruppi (Comunità)

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

WORD 97 SCRIVERE UNA TESI DI LAUREA

Che Cosa È GlobalAdShare (GAS)

INTRODUZIONE I CICLI DI BORSA

Intervento Convegno Ascosim 9 giugno 2015 Roma Jonathan Figoli AD ProfessioneFinanza Jonatha.Figoli@ProfessioneFinanza.com

Iniziamo con l Indice Eurostoxx che, al momento di calcolo, valeva circa 3595 (indicato dalla freccia in figura):

INTRODUZIONE AI CICLI

DIMENSIONI CRITERI INDICATORI

Introduzione all Ingegneria del Software

ISO 9001:2015 e ISO 14001:2015

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

Cambiamenti nell'assicurazione invalidità

Il modello veneto di Bilancio Sociale Avis

Obiettivo Principale: Spiegare come la stessa cosa possa essere realizzata in molti modi diversi e come, a volte, ci siano modi migliori di altri.

Comprendere il Cloud Computing. Maggio, 2013

LANCIAMO UN DADO PER DECIDERE CHI DEVE INIZIARE IL GIOCO. PARTIRA IL NUMERO PIU ALTO

Il funzionamento di prezzipazzi, registrazione e meccanismi

Memory Fitness TECNICHE DI MEMORIA

come nasce una ricerca

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

IO NE PARLO. DIARIO DELLA TERAPIA per annotare i farmaci e i progressi

Generazione Automatica di Asserzioni da Modelli di Specifica

Server Galileo.

INVIO SMS

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale.

Esercitazione di Basi di Dati

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Come convincere qualcuno a finanziarmi? Sull arte della costruzione di un progetto di ricerca. Davide Viaggi Università di Bologna

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

!"#$%&%'()*#$"*'' I 3 Pilastri del Biker Vincente

mese richiesta

Una semplice visita in officina con intervista

Transcript:

Agile mercoledì, 1 luglio 2015, 3:05 p. Prof. Tramontano docente Federico II ingegneria del software Sviluppo Agile: metaprocesso Molti progetti software falliscono Sì parte dagli anni 2000 Millennium Bug Se il processo è ad alta qualità il software è ad alta qualità Ciò ha portato ad una tale rigidità che si ripercuote sul software stesso quindi spessissimo fallisce. Lo standard mi permette di stimare bene i costi e l'affidabilità ma è pericoloso Waterfall model Spesso siamo costretti a mettere una pezza (challenging) È l'opposto dell'agile È la più rischiosa Va bene per le grandi aziende Ciclo a cascata con validazione continua RUP Verificare: il software deve dare il risultato corretto Validare: deve fare quello richiesto dal cliente Se ci sono problemi torniamo indietro di una fase È un processo molto preciso Minimizza i rischi di un fallimento È iterativo: rilasciamo spesso qualcosa da mostrare al cliente Iper burocratizzazione Metodi Agili Non garantiscono la qualità Va bene per piccoli software Ad esempio software innovativi per i quali no conosciamo bene le caratteristiche Sviluppo di app Manifesto Agile Kent Beck Prima gli individui poi i tool. Non ci serve troppa standardizzazione Abbiamo il problema di non avere traccia di quanto DETTO tra le controparti. Non avendo una relazione approfondita Riduce i rischi di validazione Il software viene prima della documentazione Il problema è che la documentazione è importante per la manutenzione futura. https://www.evernote.com/home.action 1/5

Principi: Prima la collaborazione con il cliente che i contratti. Il cliente deve lavorare insieme agli sviluppatori: il prezzo si stabilisce a prodotto finito. Deve seguire i cambiamenti e no u piano preciso È inutile fare pianificazioni a lunghissimo tempo perché saremo sempre smentiti. Quindi Agile dice:non pianifichiamo proprio. Qualsiasi cosa facciamo dobbiamo valutare se l'abbiamo fatta bene Rapida, incrementale consegna del software Processo agile Story Card: ci scriviamo gli scenari. Deve essere piccolo. Non vogliamo affrontare troppe cose in un colpo solo. Cerchiamo di affrontare il problema un po alla volta. Mettiamo in salvo le piccole cose Ho prodotti con scarsa qualità Massimo orizzonte temporale: 2 settimane 3 mesi Funziona molto bene in ambienti non distribuiti. Idealmente sono affiatati e lavorano nella stessa stanza. Gruppi piccoli e tempo limitato Ci sono molti che hanno cercato di sviluppare i principi Agili Il cliente partecipa attivamente Definisce le priorità perché metto in conto di non riuscire a finire il progetto Consegna incrementale Lo devo evitare se devo fare software di altissima qualità Le persone devono fare i processi Devo limitate al massimo le imposizioni Accettiamo i cambiamenti DOBBIAMO ESSERE SEMPLICI: il software lo devono capire tutti e deve essere semplice da modificare Per Agile il software DEVE FUNZIONARE, per gli schemi classici deve essere QUALITATIVAMENTE VALIDO Agilità e Modellazione Modellazione: è un gradino oltre la progettazione. Serve ad individuare gli attori e stiamo già pensando in dettaglio al problema. Modello dei casi d'uso Modello concettuale Nel modello NON DEVE ESSERCI LA SOLUZIONE Nell'agro c'è il rischio di non fare la modellazione perché non ci interessa conoscere interamente il problema Spesso il cliente non riesce a spiegarci bene qual è il problema Processo: Identifichiamo le funzionalità che vogliamo rilasciare L'interazione va da 2 a 13 settimane: sviluppo e testo insieme al cliente Quando finisce l'interazione lo diamo al cliente finale e lo supportiamo Nel caso in cui c'è bisogno di fare delle modifiche bisogna capire se interrompere il progetto o prendere una risorsa e dedicata alle modifiche Quando definisco un requisito devo anche definire le metodologie di verifica Man mano che si sviluppa si scrivono i test https://www.evernote.com/home.action 2/5

Conviene fare test automatico: 1. Scrittura 2. Esecuzione 3. Risultati Per gestire al meglio i test utilizzo Junit (un frame con classi e metodi) Nel sistema agile il testing dovrebbe essere più semplice Con Junit posso rendere automatico anche la gestione dei risultati Dobbiamo fare test continui non accumulare troppo da testare. NON SI SALTANO I TEST Sarebbe opportuno che i test li faccia chi non ha creato la funzione Nell'agile si propone di alternare sviluppatori e testing TDD: prima scriviamo il test poi facciamo il programma Il test di sistema lo faccio da solo Il test di accettazione lo faccio con il cliente Ogni volta che aggiungiamo un pezzo rifacciamo tutti i test. Se sono automatici non abbiamo problemi. Magari li facciamo fare di notte. Junit è punto fondante della metodologia Agile VANTAGGI So quando posso consegnare il pezzetto Con pagamenti giorno per giorno ho una migliore monetizzazione Si evolve working progress Testiamo in continuazione Il cliente è soddisfatto EXTREME PROGRAMMING (XP) È la prima metodologia 1999 Concetto di storie: il cliente mi dice cosa vuole Creo degli scenari (requisiti) non ambigui, verificabili, coerenti e completi le ultime due sono spesso trascurate Se modifico qualcosa se ne creava una nuova versione di questo qualcosa. Inoltre faccio il test di queste versioni (controllo di versione) Si fonda su strumenti ben precisi come Junit Ho rilasci molto frequenti. Massimo un mese PRATICHE XP 1. Pianificazione: la facciamo tutti insieme sotto forma di GAME. Deve durare poco. 2. Small releases: piccoli rilasci quindi riesco meglio a gestire tutto 3. Metaphor: tutti devono sapere tutto dei progetti. Anche i nomi delle variabili e dei metodi devono essere comprensibili a tutti. Magari con metafore. 4. Simple Design: la semplicità porta facilità di gestione ma sono di bassa qualità. (Design Pattern) 5. Testing: mai evitare ed automatizzare 6. Refactoring: modifiche al codice del programma per migliorare la qualità. Questo perché il codice di XP è già di scarsa qualità. Ce lo dobbiamo imporre 7. Pair programming: programmazione a coppia. Si controllano a vicenda. 8. Collective ownership: tutti devono sapere tutto 9. SECONDA GIORNATA. Integrazione continua. Ad ogni nuova aggiunta è sempre presentabile https://www.evernote.com/home.action 3/5

10. Settimana di 40 ore: la stanchezza provoca errori. Dobbiamo stare bene. Bisogna avere meno paure per le scadenze anche perché ho sempre qualcosa che posso consegnare 11. Lavoriamo con il cliente. 12. Si deve scrivere con lo stesso stile Pianifico, disegno, scrivo il codice faccio il test ed il refactoring. Poi consegno e vado allo step successo I requisiti li faccio con le story Card: semplici foglietti dove scrivo cosa fare Punto debole di XP sono le modifiche. Il software non è longevo. Non ho documentazione. In teoria dopo il refactoring non dovrei fare I test. Ma di norma si fanno. Di norma il test NON VA SUBAPPALTATO. Ci sarebbero problemi di interazione e non abbiamo la possibilità di far loro capire cosa vogliamo I test vanno fatti ma non bisogna impegnare troppe risorse altrimenti è deleterio Vedi LA COPERTURA DEL CODICE L'ideale sarebbe fare i test contemporaneamente alla scrittura. Nel TDD il test va fatto addirittura prima. Con il pair programming si può anche pensare che uno scrive il codice ed uno scrive i test in contemporanea Ci possono essere problemi con i clienti: poca disponibilità o troppo coinvolgimento Il software che nasce DALL'Xp è sostanzialmente un software vecchio La validazione la faccio con le release brevi visto che il cliente può immediatamente convalidare ciò che abbiamo fatto TDD È un processo Agile Sviluppo guidato dai test. Devo TESTARE tutto L'idea è quella di supporre che il codice non funziona Prima scriviamo il test poi scriviamo il codice Lo svantaggio è che il test ci impone come deve essere il programma Potrei risolvere questo svantaggio con le Interface che definiscono le classi astratte TEST CODIFICA PROGRAMMO L'unico scopo è quello di far funzionare il programma Tra i vantaggi si hanno quello di avere codice funzionale e pulito Non sempre il codice ha qualità Agile verso il software di grandi dimensioni Di norma non è utile applicare Agile prr grossi progetti Va bene per progetti di piccoli e medie dimensioni Turnover quasi nullo nello sviluppo. In aziende mono progetto Eclettismo: condivisione del materiale Scaling up: scalo l'agile verso qualcosa di più grosso Scaling out Da un'azienda tradizionale creo un isola agile Posso anche rendere un progetto agile IBRIDO tenendo conto solo di alcuni paradigmi. Spesso i metodi Agili vanno contro i principi del valore legale perché lavoro in modo informale Ci potrebbero anche essere problemi di certificazione Ottimizzo lo sviluppo ma trascuro la manutenzione Con il metodo AGILE non realizzo software longevi Gli Skill devono essere molto alti ed eclettici: tutti fanno tutti e sono tutti allo stesso livello. https://www.evernote.com/home.action 4/5

Servono IDE! Vedi lo strumento DOS https://www.evernote.com/home.action 5/5