Svigruppo. Monga. Svigruppo. Monga
|
|
|
- Regina Venturi
- 9 anni fa
- Просмотров:
Транскрипт
1 Sviluppo software in gruppi di complessi 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia [email protected] Lezione IV: Gruppi di (cont.) Anno accademico 2016/17, I semestre 1 cba 2016 M.. Creative Commons Attribuzione Condividi allo stesso modo 4.0 Internazionale I veri punti chiave Semplicità e minimalismo Team piccoli e auto-organizzati, senza manager tradizionali, ma facilitatori Rifiuto di azioni e decisioni big upfront, sviluppo iterativo aperto alle variazioni in corso d opera (rigorosamente regolate) Misura e controllo del processo di sviluppo, con pianificazioni con orizzonti temporali e funzionali ridotti Enfasi sul testing: non solo come verifica & convalida, ma come supporto alla progettazione, allo sviluppo e alla gestione variazioni You aren t gonna need it (YAGNI): non pensare né implementare una funzionalità finché non è davvero necessaria; realizzare la cosa più semplice che può funzionare. È in esplicito contrasto con il principio dell ingegneria del sw classica Design for change : se il cambiamento/adattabilità non è adeguatamente progettato costerà troppo. La parte più problematica è la partecipazione della committenza, che infatti è interpretati in maniera molto diversa dai vari approcci
2 User stories e test I team Scrum As a... I want <business functionality> so that <business justification> assert equal(fizzbuzz(1),1) Invece di requisiti, si usano storie d uso, senza casi eccezionali, evidenza dipendenze... Invece di specifiche, si usano casi di test, con descrizioni estensive anziché intensive... AgileResources/ScrumGuidelines.pdf 7 ± 2 membri, product owner, scrum master Riunioni periodiche con scopi diversi, daily stand-up Il product owner: interfaccia col cliente/committente, fissa le priorità in base opportunità e rischi di business, gestisce il backlog Lo scrum master: cura il supporto al del gruppo, elimina gli impedimenti, fa rispettare le regole Gli altri: stimano la complessità del, identificano i rischi, dimostrano il progresso del prodotto Le modalità di Le riunioni Il è frazionato in epopee, fatte di storie, rilasciate con sprint di 1-3 settimane closed window rule: durante uno sprint non si possono aggiungere funzionalità (se proprio è necessario, lo sprint ricomincia) Nelle riunioni di pianificazione i membri stimano la complessità con il planning poker, facilitato dallo scrum master, usando una storia di riferimento come unità di misura: 1 2, 1, 2, 3, 5, 8, 13, 20, 40, 100 Nelle riunioni si identificano pigs (direttamente coinvolti) e chicken (solo interessati) che danno pareri solo se richiesto dai pigs Daily stand-up (15 min.) Cosa abbiamo fatto ieri, cosa facciamo oggi, ci sono impedimenti? Planning (1-5 giorni) Pianificazione di uno sprint, definizione dello sprint backlog con la stima per ogni epopea/storia Retrospettiva (30 min.) Alla fine di uno sprint, per migliorare Review (1 ora) Alla fine di uno sprint, presentazione del agli stakeholder 38 39
3 programming Ogni metodologia agile ne ha di specifiche, le più famose sono: programming (di proprietà collettiva) Test Driven Development () tracking Si programma a coppie, con una sola tastiera. Obbliga a rendere espliciti i ragionamenti Aiuta a mantenere il focus sull obiettivo Diffonde la conoscenza totale della codebase (riducendo anche i rischi in caso di assenza di un collaboratore) Questa (e ) è fra le tecniche maggiormente studiate sperimentalmente: nessuna evidenza che faccia differenza sulla qualità dei prodotti. La produttività, apparentemente dimezzata, rimane simile Tutto il team è responsabile di tutto il codice e può modificarlo a piacimento. Un unica codebase Si lavora tutti sulla stessa branch senza specifici momenti di merge Continuous integration (possibile grazie a ) Il codice è una forma di comunicazione broadcast La proprietà collettiva non è una buona ragione per rinunciare all information hiding refactoring Martin Fowler, 2000: is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Sono piccole trasformazioni che non cambiano la semantica del codice, spesso attuabili automaticamente con un editor consapevole del linguaggio di programmazione. Fowler mantiene un catalogo:
4 Esempi di refactoring Test-driven Development Fattorizzazione di codice ripetuto in una funzione/metodo Campi attributo in metodi getter/setter Eliminazione di condizionali, sostituendoli con opportuni collegamenti dinamici (sottoclassi) Fattorizzazioni di comportamenti complessi in superclassi (eventualmente astratte) Il test di unità viene scritto prima dell unità stessa, servendo come specifica (ma senza la necessaria generalità!) 1 Aggiungi un test 2 Ripeti tutti i test assicurandoti che il nuovo test fallisca 3 Scrivi il codice dell unità 4 Ripeti i test (questa volta dovrebbero passare) 5 mantenendo il superamento dei test 6 Da capo Ogni bug dovrebbe essere esaminato attentamente e diventare un nuovo caso di test Supporto al test: testing frameworks Supporto al test: mock objects Librerie xunit (JUnit, Kent Beck, 2002) import static org.junit.assert.assertequals; import org.junit.test; public class CalculatorTest public void evaluatesexpression() { Calculator calculator = new Calculator(); int sum = calculator.evaluate("1+2+3"); assertequals(6, sum); 46 Librerie che permettono di fare behavior verification, con oggetti collaboratori. public class OrderInteractionTester extends MockObjectTestCase { public void testfillingremovesinventoryifinstock() { Order order = new Order("car", 50); Mock warehousemock = new Mock(Warehouse.class); warehousemock.expects(once()).method("hasinventory").with(eq("car"),eq(50)).will(returnvalue(true)); warehousemock.expects(once()).method("remove").with(eq("car"), eq(50)).after("hasinventory"); order.fill((warehouse) warehousemock.proxy()); warehousemock.verify(); asserttrue(order.isfilled()); 47
5 La task-board Non è veramente una velocità, semmai uno spazio percorso in un tempo dato per fisso. In una iterazione (sprint) è la somma degli item in stato Done Se ne tiene traccia giornaliera con la burn down chart Inizialmente stimata riferendosi a 1 3 del tempo a disposizione; con 6 programmatori e uno sprint di 2 settimane: = Burn down chart (By I8abug - Own work, CC BY-SA 3.0, 50
Sviluppo software in gruppi di lavoro complessi 1
Sviluppo software in gruppi di complessi 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia [email protected] Anno accademico 2016/17, I semestre 1 cba 2016 M.. Creative Commons
Sviluppo software in gruppi di lavoro complessi 1
Sviluppo software in gruppi di lavoro complessi 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia [email protected] Anno accademico 2017/18, I semestre 1 cba 2017 M.. Creative Commons
Sviluppo software Agile
Sviluppo software Agile Cesare Gallotti 2017-01-30 Cesare Gallotti Opera rilasciata sotto la Creative Commons Attribuzione 4.0 Internazionale (http://creativecommons.org/licenses/by/4.0/deed.it). Bisogna
Roberto Garrucciu Software Product Vargroup
Roberto Garrucciu Software Product Manager @ Vargroup «Agilità nei progetti» cultura, esperienze, approcci lean & devops nei progetti di sviluppo software 9 Maggio 2019 13 gennaio 2018 Branch Day PMI-NIC,
Introduzione al TDD. Test Driven Development: Quando, Come, Perchè Facoltà di Ingegneria Pavia 27 Novembre 2015. Marco Fracassi Roberto Grandi
Introduzione al TDD Test Driven Development: Quando, Come, Perchè Facoltà di Ingegneria Pavia 27 Novembre 2015 Marco Fracassi Roberto Grandi Chi siamo? 8 team sviluppo in 7Pixel: Nautilus Nimbus -> Marco
AGENDA SECTION n. 11. 1. Approccio Agile al PM. 2. Il metodo SCRUM
AGENDA SECTION n. 11 1. Approccio Agile al PM 2. Il metodo SCRUM 288 OBIETTIVO DEL PM AGILE L approccio Agile è uno dei più recenti ed è specificamente pensato per lo sviluppo di sistemi informatici di
I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo
Luca Cabibbo Analisi e Progettazione del Software Capitolo 3 marzo 2016 Agilità:1, ogni altra cosa: 0. Tom DeMarco 1 *** AVVERTENZA *** I lucidi messi a disposizione sul sito del corso di Analisi e progettazione
Agile Principles Agile People. Gaetano Mazzanti Gama-Tech
Agile Principles Agile People Gaetano Mazzanti Gama-Tech > Hello, I m Agile and I m not alone project product Agile is about change culture people organization Processes and Tools Comprehensive Documentation
Ingegneria del Software
Ingegneria del Software Processi di Sviluppo Agile Origini dello Sviluppo Agile Proposta di un gruppo di sviluppatori che rilevava una serie di criticità degli approcci convenzionali: Troppa rigidità dei
Agile e Scrum in pratica
GRUPPO TELECOM ITALIA TIM Progettando a NO Torino, 04/05/2017 Agile e Scrum in pratica Senior Program Manager, TIM Fabio Ricciato, PMP, PSM I @fabioricciato Agility: Lesson Leaned #01 #02 #03 #04 #05 Se
Sviluppo software guidato dal testing. metodologie e strumenti
Sviluppo software guidato dal testing metodologie e strumenti Sommario Testing, software a oggetti Metodologie di sviluppo Test-Driven Development Customer Test-Driven Development Strumenti Open-Source:
Echi da Amsterdam. Titolo: Sintesi presentazioni Metodologia Agile. Sintesi del Leadership Meeting e dell EMEA Congress 2009. Relatore: Bruna Bergami
Echi da Amsterdam Sintesi del Leadership Meeting e dell EMEA Congress 2009 Titolo: Sintesi presentazioni Metodologia Agile Relatore: Bruna Bergami PMI NIC - Tutti i diritti riservati Milano, 19 Giugno
PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:
PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del Processo Sommario 1. Prodotto e processo 2. Ciclo di vita del 3. Modelli del processo di sviluppo 1. Modelli a processo prescrittivo 2.
TECNOLOGIA E BUSINESS AGILITY L APPROCCIO AGILE DI ALTEA UP MASSIMILIANO LENZI, PMP
TECNOLOGIA E BUSINESS AGILITY L APPROCCIO AGILE DI ALTEA UP MASSIMILIANO LENZI, PMP Metodologia Tradizionale (waterfall): dimensioni di progetto Project Management: utilizzo delle risorse a disposizione
OEC630 Agile PM Foundation
Tel. +39 02 365738 [email protected] www.overneteducation.it OEC630 Agile PM Foundation Durata: 3 gg Descrizione Il corso ha la durata di tre giornate, con questi obiettivi: fornire ai partecipanti
A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
Un team agile allo sprint. 28 Febbraio 2013 Emiliano Soldi
Un team agile allo sprint 28 Febbraio 2013 Emiliano Soldi una questione di leggerezza COMPLESSITÀ VARIABILITÀ SPRECHI SOVRA-ALLOCAZIONI COLLI DI BOTTIGLIA DEBITO BUSINESS/TECNICO RIDURRE TEMPI ATTESA RIDURRE
Agile Project Management - LC90.99B. Team Scrum (gruppo di progetto)
Che Cosa è SCRUM L interesse verso il project management Agile è unanimemente condiviso. Anche chi non è direttamente committed dovrà avvicinarsi alla nuova terminologia e la filosofia sottostante. Per
Gestione dello sviluppo software Modelli Agili
Università di Bergamo Facoltà di Ingegneria GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_3 V1.1 Gestione dello sviluppo software Modelli Agili Il contenuto del documento è liberamente utilizzabile dagli
Sistema di gestione integrata dei beni culturali
Sistema di gestione integrata dei beni culturali Le Radici: Da Minerva a MetaFAD M&W Dal 2005 Internet Culturale Dal 2010 Cultura Italia Dal 2012 MOVIO Dal 2014 M&W 3.0 e FAD edition Dal 2015 METAFAD I
TOMMASO BECCA AREA CORPORATE - DIGITAL TRANSFORMATION
TOMMASO BECCA AREA CORPORATE - DIGITAL TRANSFORMATION INDICE 01 IL GRUPPO CAMAC 02 STORIA 03 CAMAC SRL: ORGANIZZAZIONE 3.1 ORGANIZZAZIONE: area corporate 3.2 ORGANIZZAZIONE: area fashion 3.3 area fashion:
Ingegneria del Software L-A
Ingegneria del Software L-A Corso di Laurea Triennale in Ingegneria Informatica III anno A.A. 2009/2010 Docente: Giuseppe Bellavia Collaboratore: Gabriele Zannoni Premessa Una domanda fondamentale Che
Sviluppo Agile. Prof. Filippo Lanubile. Processo software
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
INGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
Test e collaudo del software Continuous Integration and Testing
Test e collaudo del software Continuous Integration and Testing Relatore Felice Del Mauro Roma, Cosa è la Continuous Integration A software development practice where members of a team integrate their
Seminario Metodi Agili per la gestione dei progetti per Decision Makers
Seminario Metodi Agili per la gestione dei progetti per Decision Gestire la complessità, adattarsi al cambiamento. Velocemente. Questa è la sfida quotidiana di ogni manager, sia in campo IT che in tutti
Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: 1.0. www.analisi-disegno.com. Pag. 1
Scrum Caratteristiche, Punti di forza, Limiti versione del tutorial: 1.0 Pag. 1 Scrum è uno dei processi agili (www.agilealliance.com) il termine è derivato dal Rugby, dove viene chiamato Scrum il pacchetto
Certified ScrumMaster
Obiettivo del corso L obiettivo del corso è quello di imparare Scrum utilizzandolo all interno di un corso organizzato con Scrum! Con questo corso ufficiale di 2 giorni sarà possibile sostenere l esame
Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Ingegneria del Software II
Ingegneria del Software II Prof. Evelina Lamma Anno accademico 2017-16 Obiettivi del corso l Illustrare modelli, tecniche e strumenti disponibili nelle varie attività/fasi del processo di sviluppo software:
I Modelli Organizzativi Agile Scalati: il caso Tagetik Software
DIPARTIMENTO DI INGEGNERIA DELL ENERGIA, DEI SISTEMI, DEL TERRITORIO E DELLE COSTRUZIONI RELAZIONE PER IL CONSEGUIMENTO DELLA LAUREA MAGISTRALE IN INGEGNERIA GESTIONALE I Modelli Organizzativi Agile Scalati:
3. Ciclo di Vita e Processi di Sviluppo
3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per
METODI AGILI IL CONTROLLO DI GESTIONE PER. Loredana G. Smaldore
METODI AGILI PER IL CONTROLLO DI GESTIONE 1 Fonte: Smaldore, L.G. (2014), Metodi «Agili» per il Controllo di Gestione, in Busco C., Giovannoni E. e Riccaboni A. (a cura di), Il controllo di gestione. Metodi,
The Hitchhiker's Guide to testable code
The Hitchhiker's Guide to testable code semplici regole per scrivere codice semplice da testare Davide Cerbo - [email protected] - JUG Roma Nicola Raglia - [email protected] - JUG Roma Non parleremo
La Guida a Nexus. La guida definitiva a Nexus: L esoscheletro dello sviluppo in scala con Scrum. Sviluppata e mantenuta da Ken Schwaber e Scrum.
La Guida a Nexus La guida definitiva a Nexus: L esoscheletro dello sviluppo in scala con Scrum Sviluppata e mantenuta da Ken Schwaber e Scrum.org Agosto 2015 Sommario Introduzione a Nexus...2 Scopo della
Introduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
