Insegnare Agile

download Insegnare Agile

If you can't read please download the document

Transcript of Insegnare Agile

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