extreme Programming in un curriculum universitario



Похожие документы
Gestione dello sviluppo software Modelli Agili

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

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

4.1 Che cos è l ideazione

Ingegneria del Software

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

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

Configuration Management

Rapporto dal Questionari Insegnanti

Esercizi su. Funzioni

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012


Metodi statistici per le ricerche di mercato

Laboratorio in classe: tra forme e numeri Corso organizzato dall USR Lombardia. GRUPPO FRAZIONI SCUOLA SECONDARIA DI I GRADO-CLASSE I a.s.

La prima piattaforma per chi insegna e per chi impara l italiano

liste di liste di controllo per il manager liste di controllo per il manager liste di controllo per i

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

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

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

Mentore. Rende ordinario quello che per gli altri è straordinario

Una risposta ad una domanda difficile

Olga Scotti. Basi di Informatica. File e cartelle

Guida Compilazione Piani di Studio on-line

IV. TEMPI E RISORSE: STRUMENTI DI PIANIFICAZIONE E CONTROLLO

Il corso di italiano on-line: presentazione

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

Aspettative, consumo e investimento

Coordinamento e comunicazione

Lo Sportello Informativo on line La tua Regione a portata di mouse

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

Non è un problema! Esperienze in atto per guardare senza timore il problema

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

Elementi di Psicometria con Laboratorio di SPSS 1

1. I titoli conseguiti presso le Università consigliate vengono riconosciuti?

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

Articolo 1. Articolo 2. (Definizione e finalità)

MAUALE PIATTAFORMA MOODLE

Intelligenza Artificiale

COME COMPORTARSI E RAPPORTARSI CON ALLIEVI E GIOCATORI DURANTE LE LEZIONI E GLI ALLENAMENTI.

GUIDA DI APPROFONDIMENTO LA GESTIONE DELLA CONTABILITÀ SEMPLIFICATA

15 volte più veloce. per ridurre TCO e time-to-market

Servizio Tirocini di Orientamento e Formazione. Come scrivere un curriculum vitae e la lettera di accompagnamento

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

Analisi e diagramma di Pareto

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

Il modello di ottimizzazione SAM

Il Programma Operativo. Mentore. Rende ordinario quello che per gli altri è straordinario

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO!

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

In questa lezione abbiamo ricevuto in studio il Dott. Augusto Bellon, Dirigente Scolastico presso il Consolato Generale d Italia a São Paulo.

AUTOREGOLAZIONE PER IL COMPITO

IL RENDICONTO FINANZIARIO

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

CP Customer Portal. Sistema di gestione ticket unificato

Da dove nasce l idea dei video

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

Inventare problemi di matematica. ins. Carmelo Stornello

Il sistema monetario

Come fare una scelta?

IL BUDGET 04 LE SPESE DI REPARTO & GENERALI

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Quaderno d'allenamento G+S Calcio

IL MODELLO CICLICO BATTLEPLAN

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

ProSky Progettare una facciata continua non è mai stato così semplice.

L USO DELLA PNL IN AZIENDA: COME, QUANDO E PERCHE

Generazione Automatica di Asserzioni da Modelli di Specifica

Manuale NetSupport v Liceo G. Cotta Marco Bolzon

Progetto breve: Programmazione informatica

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

A. S. 2014/2015 A U T O V A L U T A Z I O N E

Guida all utilizzo del CRM

STAKEHOLDER ENGAGEMENT

LEZIONE: Pensiero Computazionale. Tempo della lezione: Minuti. - Tempo di preparazione: 15 Minuti.

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

ANNO SCOLASTICO

COSTRUIRE UN TEAM VINCENTE DENTRO E FUORI DAL CAMPO

Autore: Luca Masi Versione: 8/3/2012. Capire le caratteristiche di un bando e valutare se preparare il progetto: appunti, domande e riflessioni.

Descrizione dettagliata delle attività

Test di Autovalutazione

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Studio o faccio i compiti?

Ricerca Automatica. Esercitazione 3. Ascensore. Ascensore. Ascensore

Formazione Zanichelli in rete Così gli insegnanti imparano la didattica digitale

CALCOLO COMBINATORIO

Modulo didattico sulla misura di grandezze fisiche: la lunghezza

Software Gestionale per alberghi e strutture ricettive

MAGAZZINO. Il magazzino all interno della struttura aziendale. per il servizio al cliente

Lezione 1 Introduzione

Che volontari cerchiamo? Daniela Caretto Lecce, aprile

La piattaforma e-learning Informazioni e strumenti principali

Транскрипт:

extreme Programming in un curriculum universitario Lars Bendix Department of Computer Science Lund Institute of Technology Sweden Università di Bologna, 18 giugno, 2002 Extreme Programming On-site customer Small releases Planning Metaphor Simple design Pair programming Collective code ownership Continuous integration Coding standard Testing Refactoring Forty-hour week On-site customer Se vale la pena farlo vale la pena farlo al 110% Il codice è al centro Il cliente è dio Qualità prima di tutto Il cliente dev essere sempre presente nel progetto. La sua responsibilità è di: creare le storie mettere priorità sulle storie continuamente guardare le storie rispondere a tutte le domande dei programmatori Small releases Il primo rilascio dev avere tutto la funzionalità! Ci dev essere rilasci a brevi intervalli (ogni mese) Aiuta al cliente di valutare lo sviluppo del progetto Planning Tienelo semplice Pianifica la prossima iterazione combinando: le priorità del cliente le stime tecniche Aggiornare il piano continuamente Il cliente decide: il contenuto/la funzionalità le priorità le date dei rilasci I programmatori decidono: le stime tecniche la pianificazione detagliata Basato su stories e tasks

Metaphor Simple design Un metaforo può facilitare: una visione comune del sistema la comprensione tra cliente e programmatori Il metaforo può aiutare a creare l architettura Un disegno che basta: passa tutti i tests non duplica funzionalità ha meno classi e metodi possibile states every intention important to the programmers rimanda a domani il futuro embrace change - abbraccia il cambiamento Pair programming Uno crea: scrive il codice spiega tutto che sta facendo ascolta i consigli/domande del partner L altro segue e legge: funzionerà? ci sono i test? si capisce il codice? è ora di semplificare il disegno? Collective code ownership Ognuno può modificare dove gli pare. Ognuno deve correggere gli errori che trova. Tutti non possono essere esperti di tutto Si può scegliere/cambiare partner a volontà Non sono professore/studente! Continuous integration Coding standard Integrazione del codice e testing più volte al giorno Buttare se ci sono tanti errori nel codice Meno problemi di integrazione se fatto spesso È necessario quando il codice è collettivo Facilita la lettura del codice da tutti

Testing Refactoring Tutto gira intorno ai test: i programmatori scrivono i test di unità il cliente scrive i test di accettanza i test vengono scritti prima del codice i test di unità vengono eseguiti automaticamente non esiste funzionalità senza test automatico da sicurezza - e coraggio di cambiare il codice Restrutturazione non aggiunge funzionalità Migliora il disegno semplificandolo Viene fatto in piccoli passi Forty-hour week Qualità richiede attenzione: la concentrazione dev esserci sempre lo straordinario ritorna come cattiva qualità Non fare lo straordinario due settimane di fila Pressione tende a redurre l attenzione: si aumenta la quantità di lavoro la qualità soffre consequenza: lavorare di meno! Le preparazioni Requisiti degli studenti: secondo anno algoritmi e strutture dati programmazione (Java) analisi e disegno (UML++) Staffing: Hedin + Magnusson + ospiti assistenti per i laboratori 16 coaches per 12 gruppi Corso per i coaches Le preparazioni Le preparazioni Sette lezioni (2 ore): Introduction Overview of XP Testing and Pair-programming Configuration management Design and architecture Planning and Estimation Exam and project start Tre laboratori (2 ore) - obbligatori: Extreme hour Testing and Pair-programming Configuration management Letteratura: Extreme Programming Installed + articoli

Il laboratorio Progetto di sei settimane (presenza obbigatorio): il prodotto - gestire gare di enduro sei iterazioni - cinque in realtà - tre rilasci Ogni iterazione: riunione dei coaches pianificazione (2 ore - in gruppo) spikes (6 ore) - esperti, analisi, restrutturazioni programmazione (8 ore di fila - in laboratorio) riflessione (? ore) Finale: demostrazione e valutazione - round-robin gara di enduro On-site customer Non hanno usato il cliente (perché non c era sempre?) Ha creato 30-35 storie Il cliente è sembrato molto confuso/indeciso Il cliente non scriveva e faceva i test di accettanza Small releases Il primo rilascio doveva essere largo - i seguenti andavano in profondità Il secondo - e terzo - rilascio per gli eridi Importante che il codice nel repository funziona Richiedeva (molto) più tempo del previsto Alcuni gruppi sono riusciti a automatizzare il processo - altri no Planning Venivano usati sia ore perfette che unità di difficoltà/grandezza per misura 80/40 ore diventavano 25-30 ore Il tempo reale dipendeva molto dalla coppia La prima iterazione è stato utile per togliere il troppo ottimismo L estimazione sembrava più inutile verso la fine Metaphor Simple design Non veniva usato/capito (poco esperienza di patterns?) Architetture/metafore venivano suggerite al inizio Il sindromo Ferrari/Volkswagen Il sindromo Bombay

Pair programming Collective code ownership Prima il compito - poi il partner Coppie fisse e non fisse Communicazione all interno del gruppo Aiutare gli altri - e chiedere aiuto da altri Grandi differenze di capacità/esperienze Spezzare coppie in crisi Continuous integration A volte problemi di definire task abbastanza piccoli da permettere di lavorare in parallelo Coding standard Veniva adottato da alcuni - ma per lo più era informale Qualche problema di integrazione per lavoro parallelo sulle stesse classi (merge conflicts) L uso di edit nel CVS Problemi quando veniva fatto checkin di codice non funzionante (utilizzare i branch nel CVS) Testing Refactoring Test-first non sempre veniva seguito Non è facile fare i test di unità in maniera giusti I test di accettanza venivano fatti dai programmatori Problemi con i test a causa di cambiamenti di formati In alcuni casi i test di accettanza venivano automatizzati Spesso passava troppo tempo a rimediare prima di ristrutturare Problemi quando la ristrutturazione durava troppo tempo (bloccava gli altri) Ristrutturazioni grosse dovrebbere essere fatte in gruppo (e non in coppia)

Forty-hour week Esperienze In generale: richiede iniziativa da parte degli studenti pure il coach dev essere attivo non interrompere le iterazioni il ruolo del coach è importante (stressare/coccolare) gli esperti devono disseminare CVS è stato indispensabile stand-up meetings non sempre veniva utillizzato in tempo per gli spikes avevano difficoltà a capire come fare gli spikes usare time-out quando necessario usare la lavagna per coordinare i tasks repository a posto per gli spikes ci vogliono tante risorse e preparazione Conclusione Positivo: molto entusiasmo da parte di tutti ha funzionato - abbiamo raggiunto gli obiettivi Negativo/da migliorare: poca riflessione + no teaching focus poca flessibilità tra programmazione e spike mancano strumenti disciplinari ci vuole un laboratorio su test di unità fare/sfruttare meglio gli spikes Vale veramente la pena farlo - ma è un grosso lavoro