Una didattica Agileper la programmazioneDidamatica 2016 Universit di Udine20.04.2016Marcello [email protected] [email protected] [email protected]
Programmare difficile!
una conoscenza tacita acquisita nel tempo, con pratica e non (solo) con lo studio sui libri
Insegnare a programmare lo ancora di pi
Segnali positivi
Modalit morbide per iniziareI Social Nuovi toolsStereotipi sdoganati
Tuttavia...Tendiamo a insegnare in modo molto tradizionale
Lezione frontale, esercizi artificiosi, studio a casa da soli, verifica individuale
Realizzazione di progetti a lungo respiro rara (una volta l'anno?)
Enter Agile
Manifesto AgileStiamo scoprendo modi migliori di creare software,sviluppandolo e aiutando gli altri a fare lo stesso.Grazie a questa attivit siamo arrivati a considerare importanti:Gli individui e le interazioni pi che i processi e gli strumenti
Il software funzionante pi che la documentazione esaustiva
La collaborazione col cliente pi che la negoziazione dei contratti
Rispondere al cambiamento pi che seguire un piano
Ovvero, fermo restando il valore delle voci a destra,consideriamo pi importanti le voci a sinistra. interesse e successo nel mondo del lavoro
Manifesto Agile (in pratica)Team autonomi e auto-organizzati
I clicli di sviluppo frequenti e rapidi
Propriet condivisa del codice
Frequenti contatti con il cliente
Favorire la comunicazione interna ed esterna
Adattabilit ai cambiamenti
Gestione del fattore tempo
Accento sulla testabilit e flessibilit del codice
Movimento AgileGrande interesse e successo nel mondo del lavoro
Affinit con le moderne teorie didattiche (cooperazione, collaborazione, auto-organizzazione, comunicazione)
In Italia, poco diffuso e/o sconosciuto e/o misconosciuto
Idee di fondo Sperimentare le modalit di lavoro agile nella scuola
Esporre i ragazzi a una nuova metodologia di lavoro (vantaggio competitivo nel mondo del lavoro)
Verificarne l'impatto in modo scientifico e replicabile
LimitazioniRigidit della scuola: il programma un totem intoccabile.
Necessaria cooperazione dei colleghi
LimitazioniRigidit della scuola: il programma un totem intoccabile.
Necessaria cooperazione dei colleghi
Esperimento di breve durata
Contributo concreto di conoscenze agli studenti Experiential Learning
Il primo esperimentoMisura l'efficacia di alcune pratiche agili.
Target: studenti di 4 e 5, ITIS, ITC, LSSA
Durata: 3 o 6 ore
Periodo: Dicembre 2014 Maggio 2015
Ragazzi coinvolti: 84 (su 4 classi)
Pratica 1: Pair ProgrammingProgrammazione in coppia
Alternanza stretta , scandita temporalmente
Pratica 1: Pair ProgrammingCoppie di 6 tipologie di studenti (omogenee ed eterogenee)
Gruppo di controllo
Valutazione predittiva basata sul voto corrente
Pratica 2: TimeboxingGli orari di consegna sono definitivi e immutabili
Piuttosto, sacrificare altri aspetti
Nessuna eccezione
Pratica 3: Test-Driven DevelopmentPrima scrivere il test, poi il codice
Quindi, rifattorizzare.
Richiede l'uso di test automatici (JUnit o simile)
Pratica 4: User storiesRequisti in formato compatto
Descrittive, non ultimative
Condizioni di verifica oggettive
Da sviluppare una per volta
I dati raccoltiNumero di feature o test realizzati
Analisi statica del codice, confrontata con codice preesistente
Feedback studenti
Intervista docenti coinvolti
Survey territoriale
GruppoBlu (M-M)Magenta (M-S)Ciano (B-M)Verde(B-B)Giallo (B-S)Rosso(S-S)Solo
Media4 (-2)5 (-0,5)8,14 (+1,64)7,5 (0,5)7,4 (+1,4)5(+0)5,7 (-0,5)
Varianza3,55,52,484,30,84,56,8
Prestazioni
GruppoBlu (M-M)Magenta (M-S)Ciano (B-M)Verde(B-B)Giallo (B-S)Rosso(S-S)Solo
Media4 (-2)5 (-0,5)8,14 (+1,64)7,5 (0,5)7,4 (+1,4)5(+0)5,7 (-0,5)
Varianza3,55,52,484,30,84,56,8
Prestazioni
Analisi statica del codiceTest breveTest lungo
Complessit ciclomaticaForte peggioramentoLieve peggioramento
Quantit codice prodottoLieve miglioramentoMiglioramento
Linee di commento (1)Forte miglioramentoUguale
Linee duplicateUgualeMiglioramento
Problemi (issues)Pair: miglioramentoSolo: peggioramentoPair: miglioramentoSolo: peggioramento
SQALE (2)PeggioramentoPeggioramento
(1) Le righe di commento sono comunque molto poche(2) I solo programmers hanno ottenuto risultati lievemente migliori
Gradimento (studenti)PairSolo
Pair ProgrammingEsperienza positiva(++)Imparato
qualcosa(++)Codice peggiore(-)Meno codice (-)Esperienza
positiva(=)
Imparato qualcosa(=)Codice peggiore(-)Meno codice(=)
Test-First DevelopmentCodice pi corretto(+), Aderenza alle specifiche(+)Sviluppo pi rapido (=), Trovare errori (=), Lo user in futuro(=)
User Stories &TimeboxingUtilit condizioni di accettazione(-), Valido strumento di progettazione(-) Fonte di stress(+)
(+) D'accordo, (++) Forte accordo, (-) Disaccordo (), Forte disaccordo (=) Indeciso
Interviste docentiTest 2 considerato utile, Test 1 meno
Pair programming utile, facile da applicare
Effetti positivi sulla motivazione, e sull'insegnamento in generale e perfino sui voti
TFD peggiora le prestazioni
Indecisi su Timeboxing e User Stories
Sanno poco di Agile, frequenterebbero anche corsi sull'argomento
Esperimento confermativoLimitato al Test 1 (TFD, 4)
Altri studenti ed altre scuole
Senza gruppo di controllo
Lievi modifiche ai test
In corso (finir a Maggio)
I primi risultati in effetti, confermano i dati
ConclusioniConsigliamo una introduzione, anche graduale, di alcune pratiche tipiche dello sviluppo agile. Il Pair programming, in particolare, ma in misura minore anche le User Stories. La TFD ha una implementazione pi complessa, e richiede ulteriore preparazione e studio
Secondo esperimentoEsperimento sulla efficacia didattica della metodologia progettuale Agile rispetto alla tradizionale (Scrum vs. Waterfall)
Ricalca il test lungo, ma senza limitazioni metodologiche
Una dozzina di scuole coinvolte tuttora in corso.
Ricerche futureEffetti della cooperazione e della competizione
nella didattica dell'informatica
Olimpiadi dell'informatica
Olimpiadi a squadre
Olimpiadi problem solving
GRAZIE DELL'ATTENZIONE
Paolo CiancariniProfessore OrdinarioDISI - Universit di [email protected] RussoDottorando in CS&EDISI - Universit di [email protected] Marcello MissiroliDottorando in ICTDIEF - Universit di Modena e Reggio [email protected]
Slide design base by Saqib Javed John
LinksManifesto Agile
I dodici principi Agili
Dati e sorgenti dell'esperimento
ICSE 2016
Universit di Modena e Reggio Emilia Universit di Bologna
Universit di Modena e Reggio Emilia Universit di Bologna
Universit di Modena e Reggio Emilia Universit di Bologna
Universit di Modena e Reggio Emilia Universit di Bologna
Top Related