Il processo collaborativo di sviluppo del software: Jazz e ... · metodologie agili come eXtreme...
-
Upload
nguyenthien -
Category
Documents
-
view
217 -
download
0
Transcript of Il processo collaborativo di sviluppo del software: Jazz e ... · metodologie agili come eXtreme...
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica
Elaborato finale in Programmazione I
Il processo collaborativo di sviluppo del software: Jazz
e percorsi didattici di apprendimento
Anno Accademico 2011/2012
Candidato: Relatore:
GRILLO ABELE Prof. Paolo Maresca matr. N46/000774
III
Indice
1. Sviluppo cooperativo del software 5
1.1 Introduzione …………………………………………………………………………………………………………………5
1.1.1 Metodologie SCRUM …………………………………………………………………………………………. 6
1.2 Servizi e strumenti ………………………………………………………………………………………………………..9
1.3 Piattaforma Jazz ……………………………………………………………………………………………………………10
1.4 Rational Team Concert (RTC) ………………………………………………………………………………………..11
1.4.1 Interfaccia Web-based ………………………………………………………………………………………. 13
1.4.2 Interfaccia Eclipse-based …………………………………………………………………………………….14
1.5 Rational Quality Manager (RQM) ………………………………………………………………………………….15
1.6 Rational Requirements Composer (RQM) ……………………………………………………………………. 16
2. Formazione degli studenti: e-learning 17
2.1 L’importanza del problema ……………………………………………………………………………………………17
2.1.1 “Sapere, fare, insegnare, diffondere” ………………………………………………………………….18
2.2 Approccio ufficiale: materiale IBM ………………………………………………………………………………..19
2.2.1 Problematiche …………………………………………………………………………………………………….20
2.3 Approccio dinamico-visivo: le mappe ……………………………………………………………………………22
2.3.1 Percorso di realizzazione …………………………………………………………………………………….23
2.3.2 Glossario e parole chiave …………………………………………………………………………………….28
2.4 Analisi comparativa ………………………………………………………………………………………………………29
2.4.1 Concetti ……………………………………………………………………………………………………………..30
2.4.2 Tempi di ricerca ……………………………………………………………………………………………......31
2.4.3 Tempi di apprendimento …………………………………………………………………………………… 33
3. Considerazioni finali 35
3.1 Conclusioni ……………………………………………………………………………………………………………………35
3.2 Sviluppi futuri ……………………………………………………………………………………………………………….36
3.3 Sitografia ………………………………………………………………………………………………………………………38
3.4 Bibliografia ……………………………………………………………………………………………………………………38
Appendice 39
Intervista studente ………………………………………………………………………………………………………………….39
Questionario di valutazione …………………………………………………………………………………………………….41
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
5
Capitolo 1
Sviluppo cooperativo del software
1.1 Introduzione
Lo sviluppo del software è un argomento ormai di assoluta importanza nell’informatica attuale: le
richieste spasmodiche del mercato, l’agguerrita concorrenza tra le case produttrici e il bisogno
sempre più stringente di avere prodotti e materiale utilizzabile in tempi rapidi e in modo
efficiente, spingono analisti ed ingegneri a ricercare le metodologie migliori per ottimizzare e
personalizzare le numerose fasi che vanno dal lavoro commissionato dal cliente al rilascio della
prima versione del software.
Figura 1.1 – Modello a cascata sequenziale dello sviluppo software
Con il corso degli anni, l’approccio basato su fasi sequenziali (Figura 1.1), senza ricicli per
controllare meglio costi e tempi di lavoro, si è rivelato poco flessibile alle problematiche moderne
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
6
e troppo statico. L’idea di fissare le cosiddette milestones alla fine di ogni passo e non poterle più
modificare si scontra, infatti, pesantemente con la dinamicità dell’idea di software: il prodotto di
un processo di interscambio continuo, ricco e di confronto, tra cliente e team di sviluppo, un
corpo plasmabile e modificabile in ogni momento del suo ciclo di vita in maniera sempre efficiente
senza perdere di vista le funzionalità da seguire.
Il concetto di base su cui poggia tutto lo sviluppo, infatti, è la condivisione di informazioni, dati e
strumenti tra le persone dello stesso team di lavoro che, grazie alle ormai numerose tecnologie di
comunicazione, possono interagire e confrontarsi anche da posizioni lontanissime tra loro,
distanti migliaia di chilometri. Questo nuovo scenario rende la presenza di grandi sistemi di
interazione all’interno del processo di sviluppo software necessaria per poter realizzare nei
migliori dei modi la cooperazione. Le operazioni di gestione e progettazione all’interno del team
diventano di importanza pari, e spesso anche superiore, alle effettive capacità tecniche di
programmazione e creazione codice.
Va così delineandosi un processo di sviluppo iterativo ed incrementale in cui i sottoprocessi di
specifica, progettazione, testing e manutenzione viaggiano su binari paralleli. Questa tipologia di
metodi viene definita “agile” o “leggera” in quanto punta ad adattarsi il più possibile ai
cambiamenti dei requisiti utente. Questi ultimi, infatti, sono soggetti spesso ad una profonda
evoluzione, dalla loro prima stesura all’atto della commissione del lavoro fino alla sua
conclusione, che non può essere predetta. L’iterazione delle attività in parallelo renderà possibile
il soddisfacimento delle richieste degli stakeholders: alla fine di ogni ciclo, infatti, gli artefatti
realizzati dal team verranno discussi, analizzati e se necessario corretti per avere così nelle fasi
successive un risultato ottimizzato alle loro esigenze. Trovando il giusto compromesso tra la
tempistica delle fasi e la suddivisione del lavoro nei cicli, si potrà avere un prodotto finale
efficiente, coerente al progetto iniziale ed in tempi molto più brevi rispetto all’approccio
sequenziale.
Risulta evidente, infine, che la figura dello sviluppatore software cambia radicalmente rispetto
all’idea tradizionale: con lo sviluppo agile e cooperativo, esso dovrà essere competente anche e
soprattutto in campi come il testing, l’analisi e la progettazione, oltre che ad avere una necessaria
predisposizione alla collaborazione ed al lavoro di gruppo.
1.1.1 Metodologie SCRUM
Le prime metodologie agili hanno visto la luce tra la fine degli anni ’80 e l’inizio degli anni ’90, ma
è nell’ultimo decennio che si è avuta una diffusione su ampia scala di questa tipologia di sviluppo
software; in particolare, dopo la stipulazione del cosiddetto “Manifesto agile” che ha fissato i
principi generali di tale approccio (2001). Da quel momento sono state presentate decine di
metodologie agili come eXtreme Programming, Feature Driven Development, DSDM, Crystal e
Lean Software Development che hanno trovato numerose applicazioni nell’industria del software
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
7
mondiale. Quella, però, più utilizzata ad oggi resta la SCRUM ormai largamente alla base dei
processi di sviluppo di aziende del calibro della IBM, Nokia, Google e Yahoo.
Ideata e sviluppata da Ken Schwaber e Mike Beedle e distribuita da Advanced Development
Methods, tale metodologia prende il nome dall’omonimo termine utilizzato nel rugby: “scrum”,
infatti, letteralmente vuol dire “mischia” ed in ambito sportivo indica il pacchetto di otto giocatori
che si contrappone a quello avversario per conquistare il possesso della palla ovale. E’ chiara la
metafora tra questa situazione di gioco e lo scenario agile, in particolare, tra lo scrum e il team di
sviluppo che deve lavorare insieme in modo che tutti gli attori del progetto spingano nella stessa
direzione, agendo come un'unica entità coordinata. Grazie infatti ad una serie di regole, metodi e
ruoli ben prefissati, lo SCRUM si pone l’obiettivo di sfruttare nella maniera più efficiente e
corretta possibile le risorse strumentali ed umane a disposizione del team di lavoro per poter
arrivare al risultato finale nella maniera più rapida e funzionale possibile.
Il concetto alla base di questa metodologia è l’iterazione: il processo di sviluppo infatti viene
suddiviso in cicli scrupolosamente pianificati all’atto dell’analisi del lavoro (i cosiddetti Sprint) che
permettono di giungere in maniera incrementale al rilascio del prodotto finale. Proprio questa
natura dello SCRUM ha permesso il suo utilizzo non solo in ambito informatico, ma anche in molti
altri settori dell’industria. Al termine di ogni Sprint verrà controllato il lavoro fatto da ogni singolo
membro del team e confrontato con i programmi prestabiliti in modo da poter in breve tempo
adattare il lavoro futuro all’evolversi in tempo reale dello sviluppo (Figura 1.2).
Figura 1.2 – L’iterazione nello SCRUM
Un punto fondamentale infatti è rappresentato dalle riunioni che scandiscono la fine di ogni
iterazione e l’inizio della successiva. A seconda del momento e dei problemi affrontati possono
distinguersi varie tipologie di incontro: il Daily Scrum in cui si valutano i progressi e si stabilisce il
lavoro fino al prossimo Daily; gli Sprint Review e gli Sprint Planning Review in cui si controlla
l’avanzamento verso il rilascio del prodotto e si organizza il prossimo Sprint; lo Sprint
Retrospective in cui si studiano gli adattamenti da introdurre nel prossimo Sprint. Le
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
8
considerazioni fatte durante questi meeting vertono sull’analisi di tre principali artefatti, che
aiutano il team a tenere sempre un rapporto chiaro su ciò che è stato fatto e su ciò che va fatto. Il
concetto di backlog svolge un ruolo considerevole all’interno dello sviluppo come strumento
essenziale per la gestione dei carichi di lavoro: il Product Backlog elenca per priorità tutti i
requisiti del prodotto da realizzare; lo Sprint Backlog tiene traccia di ciò che si deve implementare
durante un preciso Sprint. Per avere, invece, un sunto grafico del lavoro mancante al rilascio
vengono utilizzati i cosiddetti Burn-Down Charts. L’organizzazione all’interno dello stesso team,
invece, avviene affidando a ciascun membro un ruolo ben preciso che fissa univocamente le
funzioni che gli spettano: il Product Owner ottimizza il lavoro del team ed assegna i compiti a
tutti; lo Scrum Master risolve le problematiche affinché il programma di lavoro fissato nelle
riunioni sia rispettato; il Team Member è colui che compie praticamente il lavoro assegnatogli.
Una struttura così rigorosa e precisa (Figura 1.3), porta a vantaggi notevolissimi se confrontata
con le vecchie metodologie. In primo luogo il rapporto tra cliente e team di sviluppo ne esce
rafforzato e rinnovato: il primo può controllare il lavoro che finanzia giornalmente e
scrupolosamente apprezzandone da subito, già dopo pochissimi giorni, l’avanzamento e la qualità
e potrà intervenire in ogni istante del processo indicandone modifiche da apportare e
miglioramenti. Il cliente è il primo progettista e gestore del software ed effettuerà il primissimo
testing ancor prima del rilascio del prodotto: risulta evidente l’attenzione rivolta alla tempistica
del tutto. Inoltre, grazie alle interazioni cicliche, ogni problematica viene subito identificata,
isolata e risolta entro la fine dello Sprint e ciò rende il fallimento globale del sistema molto raro.
Figura 1.3 – Schema riassuntivo struttura SCRUM
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
9
1.2 Servizi e strumenti
In un ambiente di sviluppo collaborativo del software la presenza di una infrastruttura di
strumenti che permette la condivisione delle informazioni e dei dati risulta necessaria. La
diffusione di Internet ormai in ogni angolo del pianeta ha certamente aiutato le metodologie agili
e il loro concetto di cooperazione tra persone anche a migliaia di chilometri di distanza: non è un
caso che questo tipo di sviluppo si è evoluto in maniera sostanziale soprattutto con la nascita e la
crescita del Web e delle reti di calcolatori (inizi anni ’90). Essendo numerose le attività di gestione
e di controllo dell’intero sistema, infatti, sono altrettanto numerosi i servizi che devono essere
forniti dall’insieme di strumenti utilizzati:
• Dovrà essere possibile gestire facilmente i membri all’interno del team attraverso
l’utilizzo di ruoli che specificano in maniera precisa le mansioni di ciascuno e le proprie
qualifiche.
• Ogni compito all’interno dello sviluppo deve poter essere pianificato con chiarezza sia nel
breve che nel lungo termine in modo da avere sempre ben fissato l’obiettivo parziale e
finale.
• La comunicazione nel team deve essere immediata, in tempo reale ed efficiente per poter
permettere lo scambio di informazioni e la condivisione di prodotti.
• Tutto deve potersi svolgere in completa sicurezza e regolato attraverso diritti di accesso
diversi per ogni ruolo di ogni membro.
• Data la ovvia concorrenza con cui si avrà accesso agli artefatti ed ai prodotti di ogni fase
dello sviluppo, dovranno essere presenti sistemi di controllo di versione, i cosiddetti CVS
(Concurrent Versioning Systems), che regolano e tengono traccia di ogni rilascio di ogni
prodotto e che gestiscono e risolvono gli eventuali conflitti tra modifiche contemporanee
dello stesso file. In questo modo è possibile tenere sempre una visione chiara
dell’evoluzione delle modifiche di uno specifico prodotto e poter quindi programmare al
meglio gli sviluppi futuri.
• Dovranno essere gestiti, catalogati ed identificati tutti i tipi di bug che possono fare la loro
comparsa durante una qualsiasi delle iterazioni. Ogni difetto deve essere memorizzato e
descritto dettagliatamente per aiutare il team alla sua risoluzione anche in tempi
successivi.
• Per un corretto bilanciamento dei carichi di lavoro da assegnare ad ogni membro e per
una valida gestione delle attività da svolgere, si dovranno avere sempre a disposizione
strumenti in grado di dare un’idea immediata del lavoro svolto e da svolgere; grafici,
tempi di sviluppo, percentuali di attività concluse e dati simili dovranno accompagnare gli
sviluppatori durante tutto il processo in modo che abbiano sempre tutte le informazioni
utili a portata di mano.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
10
1.3 Piattaforma Jazz
Il nuovo approccio collaborativo ed iterativo introdotto dalle metodologie agili, come ad esempio
quella SCRUM, ha permesso un riutilizzo ottimizzato di tutto ciò che in ambito di sviluppo
software era già stato ampiamente regolarizzato nei decenni precedenti: cambia ora il modo di
svolgere quelle stesse attività in nome dell’integrazione, della condivisione e della cooperazione.
L’approccio cosiddetto C/ALM (Collaborative Application Lifecycle Management) punta ad
automatizzare tutte le operazioni di processo ripetitive e che non hanno necessità dell’intervento
diretto dell’uomo, al fine di snellire considerevolmente la gestione delle attività che altrimenti
crescerebbe in maniera esponenziale con l’aumento del numero di membri nel team. Ciò
permette in sostanza l’impiego efficiente delle metodologie agili e su questi stessi concetti si basa
la piattaforma Jazz: un’infrastruttura solida, monolitica e soprattutto accentrante in grado di
racchiudere in un’unica architettura tutte le applicazioni e le attività automatizzate dello sviluppo
software (platform) con la possibilità di operare in ingresso ed in uscita per integrazioni e
condivisioni su ampissima scala attraverso l’utilizzo della rete e delle interfacce definite dalla Jazz
Integration Architecture (JIA), il tutto implementato sul sistema software Jazz Team Server che
fornisce i primi servizi agli utenti.
La piattaforma Jazz punta all’innovazione dello sviluppo software e ad assumere una funzione
d’avanguardia per il futuro, il tutto open source e completamente gratuito: da qui il nome per
richiamare lo stesso spirito che spinse la comunità afroamericana ad introdurre sonorità nuove e
variegate negli Stati Uniti di inizio ventesimo secolo.
Jazz introduce concetti chiari e ambiziosi: separa l’implementazione degli strumenti dall’accesso ai
dati; condivide questi ultimi su database indipendenti usando protocolli Internet, non
ammettendo quindi la presenza di tutti i dati in un unico luogo fisico; permette l’accesso a
qualsiasi informazione direttamente nel luogo in cui si risiede; utilizza strumenti progettati e
realizzati in codice fruibile facilmente ed efficacemente dalla rete Web; supporta molteplici
tecnologie client (Web-based, Eclipse-based, Visual Studio-based) permettendo così un uso vasto
e semplificato delle proprie funzionalità; in tre semplici parole Jazz introduce un modello aperto,
flessibile e distribuito.
Con esso vengono poste le fondamenta per l’integrazione di molti tipi di applicazioni lifecycle:
oltre, infatti, al lato architetturale della piattaforma, Jazz introduce anche un ampio set di
frameworks e toolkits che permettono un utilizzo più efficace, semplice ed armonico degli
strumenti che andranno a lavorare in questo ambiente e di cui parleremo a breve. La prima
applicazione che lavora sulla piattaforma è la Jazz Foundation che realizza i primi servizi
riguardanti la gestione del server e la regolazione degli accessi ad esso attraverso un’interfaccia
web. E’ proprio attraverso questa prima application che l’utente può visionare i dati effettivi del
database condiviso ed il loro livello di memorizzazione e, da tale interfaccia, utilizzare lo specifico
strumento da uno dei tipi di client “accettato” dall’architettura. Inoltre è seguita la norma di
realizzare ogni applicazione utilizzante Jazz con il framework Jazz Foundation Application SDK in
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
11
modo da rendere la variegatissima famiglia di tools esistenti più omogenea agli occhi dell’utente
(Figura 1.4).
Figura 1.4 – Piattaforma Jazz (da www.jazz.net)
1.4 Rational Team Concert (RTC)
Tra le numerose applicazioni jazz-based in commercio, IBM® Rational Team Concert è ormai
quella maggiormente diffusa nel mondo dello sviluppo agile. Essa racchiude in un unico ambiente
di lavoro i concetti principali delle metodologie agili puntando sulla semplificazione, gestione,
ottimizzazione, visibilità e trasparenza delle attività C/ALM e dei processi finalizzati alla
produzione del software. Inoltre completa le funzionalità di regolazione dell’accesso ai dati già
introdotte dalla Jazz Foundation con precise ed efficienti politiche di sicurezza che però non vanno
ad appesantire oltremodo il complesso sistema.
RTC introduce una serie di funzionalità che vanno a toccare tutti gli aspetti dello sviluppo software
moderno: dal concetto di tempo reale nella collaborazione tra membri e nella valutazione
dell’avanzamento del processo, alla flessibilità dell’utilizzo della piattaforma, dalla qualità del
software all’incremento della produttività globale. L’utente che andrà ad agire in questo ambiente
può facilmente andare a svolgere tutte queste attività grazie agli strumenti che mette a
disposizione l’RTC (Figura 1.5).
Infatti è possibile creare i propri progetti collaborativi ex novo o utilizzare i vari modelli presenti
nell’ambiente e configurarli a seconda delle proprie esigenze; inoltre è possibile pianificare il
lavoro (work items) e controllarlo attraverso degli specifici obiettivi dati ad ogni membro del team
(task). I prodotti e le release parziali saranno poi condivisi su particolari spazi di lavoro
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
12
(repository) messi a disposizione dell’intero team e su cui potranno realizzarsi facilmente analisi di
ogni tipo e creare i primi report del lavoro svolto.
Figura 1.5 – Funzionalità del Rational Team Concert
Le procedure per gestire il tutto sono lineari ed intuitive grazie alle varie viste grafiche disponibili
in RTC che aiutano il cliente ad avere sempre chiara la sua posizione all’interno del processo e ad
agire di conseguenza: innanzitutto l’utente dovrà scaricare una versione client del programma
IBM® specifica per l’utilizzo che vuole farne (Visual Studio o Eclipse per esempio) ed installarla sul
suo terminale. Dopo questa operazione dovrà registrarsi presso la community di Jazz in modo da
poter accedere a tutte le funzionalità dell’RTC. Avute tutte le credenziali e con la propria copia del
programma già installata e pronta per l’uso, l’utente potrà aggregarsi ad un progetto già
esistente, accettando uno specifico invito, o crearne uno nuovo per le proprie esigenze. In
entrambi i casi potrà creare in poche mosse il proprio repository, che può essere pubblico, privato
o ambito, per essere sempre aggiornato e sincronizzato in tempo reale con le modifiche apportate
da qualsiasi membro del suo progetto a qualsiasi file. Grazie poi al gioco di viste e schermate del
client RTC, lo stesso utente può addirittura modificare nella pratica il codice in formato java, o in
qualunque altro formato di programmazione, nello stesso ambiente di sviluppo del software. La
conferma della modifica viene “ufficializzata” dall’operazione di check-in che avverte il team
dell’avvenuto salvataggio.
Un ambiente così complesso, ma allo stesso tempo completo, può essere inevitabilmente
soggetto a conflitti di vario genere, soprattutto in ambito di modifiche ai file: può capitare, infatti,
che una modifica in locale da parte di un membro risulti all’atto del check-in più “vecchia” di
un’altra effettuata da un altro membro. E’ possibile a questo punto seguire varie scelte sul da
farsi, ma si preferisce attuare la cosiddetta unione delle modifiche, un accorgimento tanto
semplice quanto funzionale. In caso di conflitti l’RTC unirà, nel senso letterale del termine, la
copia locale del file del membro con la copia presente nel repository pubblico del progetto in
modo da non buttare via niente che potrebbe compromettere il lavoro futuro. Solo in un secondo
momento, dall’analisi di tale nuova risorsa, si deciderà se confermarla e quindi salvarla nello
spazio di lavoro (commit) o scartarla.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
13
Tra i vari client supportati dalla piattaforma Jazz, ad oggi, quello più utilizzato è quello basato su
Eclipse, molto efficiente per operazioni di programmazione pura e progettazione, che così va ad
accompagnarsi all’altra interfaccia messa a disposizione degli utenti e spesso preferita per
operazioni di project management e di valutazione del lavoro: la web-based.
1.4.1 Interfaccia Web-based
L’interfaccia Web-based nasce per venire incontro alle esigenze dell’utente di gestire e controllare
il proprio progetto. Con essa è possibile avere sempre una panoramica facile da visionare e
semplice da utilizzare per avere ogni sezione del processo software sempre a portata di mano.
Tramite essa si può accedere al Jazz Team Server attraverso il normale browser web presente sul
proprio terminale senza dover installare del software aggiuntivo. Tale vista è rivolta soprattutto
agli stakeholders, non interessati ai dettagli dell’implementazione, ma che invece hanno tutte le
intenzioni e gli interessi a seguire passo passo l’evoluzione del proprio prodotto ed a verificare che
le richieste siano di volta in volta seguite e soddisfatte.
La pagina web principale di questo tipo di interfaccia permette all’utente di inserire i propri dati
per effettuare il login e poter così avere accesso al Jazz Team Server ed entrare nell’area progetto
di interesse. Si aprirà così una prima dashboard di progetto (Figura 1.6), un contenitore che
presenterà informazioni globali riguardanti i singoli membri del team, i compiti a loro assegnati e
lo stato d’avanzamento del lavoro. Tutta la pagina sarà personalizzabile a seconda delle proprie
esigenze: sarà possibile aggiungere o eliminare campi ed oggetti (widgets). Ogni componente
presente sulla dashboard è il risultato di precise richieste query effettuate dall’utente in cerca di
un particolare aspetto riguardante il progetto: l’interazione tra il visionatore e le informazioni è
massima e, con essa, anche la snellezza delle procedure.
Figura 1.6 – Dashboard interfaccia web RTC
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
14
In alto alla dashboard un menù permette l’accesso ad ulteriori viste di controllo in base ai
permessi che si hanno per quel particolare progetto. Cliccando su Work Items sarà possibile
osservare e gestire le attività del processo ed accedere a singoli elementi di lavoro attraverso
specifiche richieste; oppure aggiungere nuovi items, catalogarli e completarli con file uml, grafici
ed altro codice. Sempre dallo stesso menù è possibile visionare anche i piani (Plans) che regolano
il lavoro assegnato, raccolgono informazioni su percentuali di sviluppo e stabiliscono collegamenti
tra i singoli items. Nella sezione Report si potranno analizzare tutti i progressi del progetto. Si può
tenere sotto controllo anche il repository comune contenente i dati e i prodotti realizzati nel corso
delle attività attraverso la voce Source Control e gestirli invece nell’area Build.
1.4.2 Interfaccia Eclipse-based
L’ambiente di sviluppo di programmazione Eclipse fornisce agli utenti vari plugin per poter
lavorare con le funzionalità di Rational Team Concert direttamente al suo interno, unendo così le
attività di realizzazione software con quelle di gestione e controllo. Il gioco di prospettive di
questo client permette di lavorare su diversi livelli in base alle attività da svolgere. In questo modo
è possibile configurare il proprio plugin Eclipse e i propri strumenti per ottimizzare il lavoro di
particolari aspetti del processo come il testing, la progettazione, il debugging o
l’implementazione.
Oltre alle viste e prospettive già intrinseche nell’ambiente, il Rational Team Concert per Eclipse
IDE ne introduce altre per gestire operazioni come il planning, l’accesso in concorrenza ai
repository condivisi, la gestione del server e molte altre (Figura 1.7).
Figura 1.7 – Prospettive in RTC per Eclipse IDE
Dall’interfaccia, infatti, è possibile scegliere tra varie schede procedendo da sinistra a destra: la
Package Explorer mostra cartelle e sottocartelle caricate sul server e contenenti i files; la My Work
tiene traccia dell’avanzamento del lavoro personale; la Team Artifacts visualizza tutti i dati
presenti sul server ed appartenenti a quel progetto attraverso i vari flussi a livelli; la Process
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
15
Templates mostra i vari modelli di processo utilizzabili dall’ambiente per il proprio progetto; la
Team Organization elenca tutti i membri costituenti il team di lavoro di quel progetto. Ogni vista,
inoltre, presenterà ulteriori sottoschede (Problems, Javadoc, Declaration, Work Items, Team
Advisor, Pending Changes, Builds, Repository Files, Change Explorer) contenenti altre informazioni
sui singoli files, il codice, i componenti realizzati e bug riscontrati nel corso dello sviluppo.
1.5 Rational Quality Manager (RQM)
IBM® Rational Quality Manager permette la gestione facilitata delle fasi di testing e delle
problematiche relative alla individuazione dei rischi durante la fase di sviluppo ed alle
conseguenze che questi ultimi possono portare. RQM, come il già citato RTC, sfrutta le enormi
potenzialità della piattaforma Jazz per realizzare un ambiente di lavoro per la creazione di report
di controllo, gruppi di lavoro, piani di testing finalizzati ad un completo e continuo monitoraggio
del processo software.
E’ possibile provare le versioni demo e trial di durata 60 giorni, scaricandole direttamente dal sito
ufficiale Jazz e così testare con le proprie mani le potenzialità di questo strumento che si integra
ottimamente con gli altri tool della grande famiglia delle applicazioni jazz-based IBM® Rational.
Come prevedibile, l’entità centrale di un’istanza RQM è il test. Esso può riferirsi ad un particolare
artifact o all’intero progetto e dovrà, in entrambi i casi, essere superato bene dal software per far
si che le proprietà di qualità e incorruttibilità del software siano rispettate a dovere.
L’organizzazione gerarchica dei test introdotta dall’applicazione RQM, permette di agglomerare i
singoli controlli in veri e propri piani di test spesso anche complessi ed incrociati tra loro, in modo
da verificare ogni aspetto, anche il più nascosto, del prodotto che si sta realizzando. Sarà
possibile, naturalmente, pianificare i testing durante tutto il corso della produzione o farli scorrere
in cascata seguendo rapporti di ereditarietà di tipo padre-figlio.
Di enorme importanza sarà gestire e valutare i risultati di tali test in modo da poter apportare
modifiche giuste e coerenti al sistema. RQM valuta il risultato di un singolo test in base ad
operazioni matematiche di media tra tre specifici valori: Verosimiglianza, Impatto e Impatto
corrente. Nel conto finale del risultato di un intero piano di test entra in gioco anche la cosiddetta
Gravity (tra 1 e 5), che definisce il peso in termini di importanza per il committente di quello
specifico artifact: lo stesso rischio, e quindi lo stesso test, può avere, infatti, conseguenze diverse
a seconda di cosa si sta analizzando.
Negli ultimi tempi la IBM®, in integrazione all’RQM, ha introdotto la suite Worksoft Certify che
punta ad ottimizzare le funzionalità già introdotte dallo strumento Rational e soprattutto ad
automatizzare tutto il ciclo di vita del testing, così da velocizzare i tempi di valutazione dei rischi e
di rilascio del software finale (si parla di un incremento fino al 60%) e ridurre notevolmente i costi.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
16
1.6 Rational Requirements Composer (RRC)
L’applicazione jazz-based IBM® Rational Requirements Composer fornisce numerose funzionalità
per la gestione dei requisti di progetto. Grazie ad essa il team di sviluppo può definire, gestire e
documentare ogni requisito ricavato dai vari confronti tra l’analizzatore ed il committente. Come i
precedenti strumenti Rational, anche l’RRC sfrutta ampiamente il Web per realizzare e soddisfare
le caratteristiche delle metodologie agili. Utilizza processi leggeri ed iterativi riducendo costi ed
inutili rielaborazioni delle analisi delle specifiche.
Rational Requirements Composer consente di gestire:
• I rapporti tra interlocutori molteplici (per esempio utenti, responsabili marketing,
sponsor, legali, analizzatori, stakeholders) distribuiti in aree geografiche lontanissime tra
loro attraverso la rete Internet.
• Il ciclo di vita dei requisiti che ora, grazie alla flessibilità del sistema, è più chiaro ed
immediato; con questo approccio sarà possibile una maggiore collaborazione tra
domanda e team e in tempi brevi si potranno fissare precisamente i requisiti.
• L’intero processo software che risulta ottimizzato in ogni suo aspetto, dallo studio dei
requisiti allo sviluppo codice, dalla gestione della qualità al testing, tutto in un ambiente
integrato.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
17
Capitolo 2
Formazione degli studenti: e-learning
2.1 L’importanza del problema
Con un panorama di strumenti così ampio ed articolato, di cui le tre applicazioni Rational appena
viste rappresentano solo la punta dell’iceberg, risulta di notevole importanza fornire allo
studente, interessato a conoscere il mondo agile, una guida chiara per assimilare i concetti base
ed una certa manualità con i tools.
Come accennato anche in precedenza, lo sviluppo cooperativo del software è un argomento
relativamente recente rispetto all’evoluzione dello sviluppo del software, quindi non è stata
formalizzata ancora una documentazione completa, in termini di manuali, libri o siti internet, in
grado di trattarlo a dovere. Oltre a qualche articolo scientifico pubblicato in rete c’è poco altro a
riguardo e questo non aiuta lo studente alle prime armi a capire sia gli aspetti generali che quelli
più dettagliati.
In particolare tutta la parte tecnica del nuovo processo software, dalla piattaforma Jazz ai singoli
strumenti di lavoro, è trattata essenzialmente solo dai siti ufficiali (come https://jazz.net) e in
generale da materiale IBM®, l’azienda informatica che in prima persona si occupa dello sviluppo
dell’intera piattaforma e del rilascio periodico dei toolkits da applicare in questo ambiente.
Essendo così ancora scarno il materiale da studiare ed analizzare, lo studente può trovarsi in
chiara difficoltà nel ricercare i testi che possono essergli utili per una ricerca personale
sull’argomento.
Quello che stiamo vivendo, in ambito di sviluppo informatico, è un periodo di transizione: è chiaro
infatti ormai da tempo che lo sviluppo cooperativo assumerà sempre maggiori consensi con il
passare del tempo e sarà sempre più adoperato nei vari settori industriali; dall’altro lato, però, ci
troviamo di fronte ad una documentazione la cui realizzazione è ancora in corso e che procede di
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
18
pari passo con l’evoluzione concettuale. E’ un aspetto questo da non sottovalutare in alcun modo:
la formazione dello studente di oggi assume un’importanza notevole. Essi, infatti, rappresentano
gli sviluppatori del futuro, gli ingegneri del domani, e sarebbe un bene se potessero assimilare con
facilità e in tempi brevi i concetti di collaborazione e cooperazione già nel periodo universitario in
modo da farli propri ed applicarli in futuro in ambito lavorativo.
2.1.1 “Sapere, fare, insegnare, diffondere”
Ispirandoci alla teoria dei tre livelli formativi da seguire per prepararsi a dovere alla professione,
vogliamo ampliare tale idea ed adeguarla al nostro scenario di sviluppo agile. Passiamo così dal
famoso equilibrio virtuoso (sapere, saper fare, saper essere) di stampo soprattutto medico, ad un
quartetto di azioni da seguire per la formazione corretta dello studente: sapere, saper fare, saper
far fare e far sapere. Rendendo ancora più conciso questo paradigma potremmo usare
alternativamente quattro semplici verbi: sapere, fare, insegnare e diffondere.
Il primo passo della formazione è sicuramente il conoscere la tematica a livello concettuale: senza
sapere l’argomento non sarà possibile acquisire la manualità necessaria per migliorare la tecnica
personale e procedere nel soddisfacimento degli obiettivi professionali. In questo livello ricade
l’importanza della documentazione e del materiale che deve essere a disposizione dello studente
e di facile reperibilità.
Assimilati i concetti base del problema, si dovrà passare all’aspetto pratico riuscendo a mettere in
atto (fare) le numerose procedure richieste dall’ambiente di lavoro collaborativo. Qui sarà di
grande importanza la chiarezza con cui tali operazioni vengono trattate nei manuali e nei testi
adoperati e l’esercizio personale ripetuto.
Ottenuta una buona esperienza in ambito teorico e pratico, lo sviluppatore software del futuro
possiederà tutti i crismi per poter insegnare tali apprendimenti a nuovi studenti che così, oltre
allo studio personale, potranno affiancare esperienze reali didattiche. Si punta così a far cadere il
celebre stereotipo del “chi non sa, insegna” andando, invece, a formare per l’immediato futuro
una figura di sviluppatore completo in ogni sua sfaccettatura ed in grado, quando necessario, di
agire in prima persona nel processo software, ma anche gestire eventuali gruppi di lavoro e
guidarli con la propria esperienza e conoscenza. Tutto ciò è chiaramente coerente con la nuova
figura di developer dello sviluppo cooperativo di cui abbiamo parlato in precedenza.
A conclusione di tutto il processo di formazione forse il passo più importante per gli scenari futuri:
la possibilità per lo studente di avere chiaro luogo e modo con cui recuperare testi ed
informazioni per lo studio personale. La capacità del materiale di essere diffuso su ampio raggio e
con pochi passi, mantiene vivo lo stimolo dei giovani all’apprendimento: avere un binario chiaro
da seguire per poter arrivare a ciò che si cerca e poterlo fare attraverso poche, ma precise fonti,
evita allo studente sensazioni di spaesamento e confusione che lo potrebbero portare a rinunciare
ad affacciarsi a questo nuovo mondo ancor prima di iniziare a conoscerlo.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
19
2.2 Approccio ufficiale: materiale IBM®
Per anni e anni le uniche informazioni accessibili allo studente riguardanti lo sviluppo cooperativo
del software, sui concetti di base, sulla piattaforma Jazz e sugli strumenti Rational, sono state
quelle fornite direttamente dalla IBM®.
In particolare nella sezione “Prodotti” del sito ufficiale della IBM® è possibile trovare informazioni
dettagliate sui prodotti Rational (http://www-01.ibm.com/software/it/rational/): per ognuno è
presentata una panoramica dei servizi offerti, i vantaggi e i requisiti di sistema necessari per
poterlo utilizzare. Inoltre si può controllare il prezzo del software per un eventuale acquisto
direttamente online o richiedere una licenza di prova (Figura 2.1).
Figura 2.1 – Pagina introduttiva all’RTC sul sito della IBM
Nella sezione “Supporto (US)” sarà possibile trovare guide sull’installazione del particolare
software, sulla risoluzione di eventuali problemi, drivers da scaricare per ottimizzare il proprio
prodotto e documentazione varia, come link ad articoli correlati ed ai manuali ufficiali rilasciati
con quella versione del programma.
Altra fonte ufficiale a disposizione dello studente è il sito della Jazz Community accessibile
creandosi un rapido account di ingresso ed in cui è disponibile tutto il materiale trattante la
piattaforma Jazz ed ogni tipo di tools che sia possibile applicare su di essa. Nel menù in alto, nella
sezione “About Jazz”, è possibile cominciare a prendere conoscenza con l’ambiente attraverso
due pagine totalmente in lingua inglese come l’intero sito: in Platform vengono spiegati
dettagliatamente i concetti che hanno portato alla creazione della piattaforma e i servizi offerti da
essa; in Product, invece, vengono trattati gli strumenti e da qui è possibile accedere direttamente
alle pagine trattanti i singoli prodotti Rational. Queste ultime sono facilmente raggiungibili anche
dalla home.
Ogni pagina specifica di un particolare strumento presenta una introduzione panoramica
(Overview) in cui compaiono una serie di videotutorial che fanno visionare il prodotto prima
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
20
dall’esterno e poi negli aspetti più dettagliati (Figura 2.2). Questo approccio didattico e di
diffusione delle informazioni è ampiamente utilizzato dalla IBM® che comprende le complessità di
questi sistemi e prova così a semplificare il lavoro agli utenti alle prime armi. Scendendo più in
basso nella pagina altri videotutorial permettono un rapido tour (Take a tour) tra le procedure di
base del tool. Altre sezioni laterali, come Features, Learn more, What’s new, Integration,
evidenziano al lettore le funzionalità, gli articoli correlati, le innovazioni introdotte dello specifico
strumento. Non mancano, inoltre, i link per il download di tutte le versioni del programma e di
plugin integrativi.
Figura 2.2 – Pagina Overview dell’RTC dal sito Jazz
Intorno a questi due siti, in rete, compare una nuvola di articoli riguardanti lo sviluppo
cooperativo del software: soprattutto testi di organi ufficiali informatici e pagine da Wikipedia in
inglese (http://en.wikipedia.org ).
Per un approccio, invece, più tecnico sono sempre disponibili online, sempre sul sito ufficiale della
IBM®, i manuali per ogni prodotto Rational: si tratta di una documentazione anche qui in lingua
inglese basata sui requisiti di sistema per un utilizzo ottimale dello strumento e su aspetti molto
dettagliati riguardo le sue potenzialità. Vengono evidenziate le note di rilascio del programma e i
riconoscimenti per lo sviluppo; si curano gli aspetti di connessione al server e di interfacciamento
con la piattaforma Jazz da entrambi i lati, sviluppando un’analisi tecnica completa. Spesso sono
anche diffusi read paper e white paper per un uso più specifico del prodotto.
2.2.1 Problematiche
Il materiale IBM® appena visto offre allo studente un approccio formale ed efficiente, di assoluta
sicurezza riguardo la correttezza dei contenuti, ma con varie problematiche tutte da affrontare e
risolvere.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
21
In primo luogo occorre evidenziare la necessità di possedere una certa capacità linguistica in
inglese per poter leggere e studiare senza problemi tutta questa documentazione. Anche se ormai
ad oggi l’inglese viene letto sufficientemente bene dalla maggior parte dei ragazzi, la sua
conoscenza non deve essere data per scontata. Inoltre uno studio in lingua madre occupa di
sicuro meno tempo rispetto ad uno in lingua straniera a prescindere dal livello di capacità di
comprensione. Infatti possono comunque incorrere problemi di concetto in inglese o di
incomprensione di alcune terminologie più tecniche e di minor uso comune. Se ciò avvenisse,
quindi, al tempo di studio effettivo dovremmo aggiungere anche quello necessario alla traduzione
simultanea, attraverso l’utilizzo di vocabolari cartacei o in rete, del testo letto. Questo iniziale
problema di comunicazione potrebbe annoiare lo studente che si ritrova davanti ad un doppio
lavoro e distogliere la sua mente dall’effettivo scopo di assimilare i concetti ricercati.
Inoltre tale materiale spesso risulta essere troppo tecnico per un ragazzo alle prime armi: testi
come i manuali o i videotutorial contengono procedure e dettagli riservati a chi ha già una ottima
base concettuale riguardo lo sviluppo cooperativo del software. Essi, infatti, nascono soprattutto
come documenti di supporto a chi riscontra alcuni problemi nell’utilizzo di un qualche strumento
o a chi desidera approfondirne gli aspetti più particolari e i vari casi d’uso. La prima lettura o
ascolto di tali elementi, quindi, costringe ad iniziare una ricerca personale su termini e concetti
sconosciuti allargando la finestra temporale di apprendimento. Questo, naturalmente, non vuole
togliere potenzialità a questo tipo di trattazione che risulta essenziale soprattutto per esperti e
sviluppatori.
Non bisogna poi trascurare il fatto che l’insieme delle pagine e dei testi è distribuita su più siti e da
più fonti sparse in rete: questo rende l’intero sistema statico in quanto il ricercatore, una volta
giunto volutamente ad un indirizzo, si ritrova in un vicolo cieco, senza alcun link che lo porti in un
nuovo sito che tratti l’analogo argomento. Per fare un esempio, i due siti sopramenzionati
dell’IBM® e della Jazz Community compaiono agli occhi del lettore come due entità
profondamente separate, anche se trattano praticamente argomenti strettamente correlati.
Manca quindi la possibilità di agire in maniera dinamica nella propria ricerca e di interscambiare le
fonti in modo da poter ottimizzare il proprio studio e limitarne i tempi.
Ad integrare questo insieme di problemi, si aggiungono le difficoltà in cui uno studente può
imbattersi nella ricerca del materiale per le sue esigenze: mancando, infatti, un "binario guida"
egli potrebbe ritrovarsi tra le mani un manuale tecnico ancor prima di aver imparato i concetti
base. Tutti i testi, infatti, sono a disposizione di tutti tramite la rete e nell’enorme calderone di
internet chiunque può trovare qualsiasi cosa (non necessariamente di qualità) in base al tipo di
ricerca che effettua con qualsiasi motore. Ci ritroviamo così di fronte ad una struttura orizzontale
e non gerarchica della documentazione che lascia troppo libero l’interessato di turno di svariare
ovunque gli capiti, da “cos’è la piattaforma Jazz?” a “quali operazioni compiere per creare un
piano di testing?”, da “cosa si intende per RTC?” a “come limitare in lettura uno specifico file
nell’area progetto?”. In questo caso la troppa libertà provoca solo confusione, imprecisione e
difficoltà.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
22
Per la corretta formazione a questo argomento, quindi, sarebbe necessario un approccio guidato,
semplificato e coerente che porti per mano lo studente dalle basi iniziali ai dettagli senza mai fargli
perdere l’idea generale ed il binario da seguire. Un approccio visivo e mnemonico che faccia
balzare alla mente di chi lo adopera il punto in cui si trova rispetto all’intero corso didattico, che
permetta di sapere cosa è stato imparato e cosa manca ancora da imparare in ogni istante del
percorso.
2.3 Approccio dinamico-visivo: le mappe
Questo tipo di formazione necessita di uno strumento che possegga intrinsecamente tutte queste
caratteristiche. Occorre un mezzo in grado di rendere il percorso didattico dinamico,
interconnesso, astratto, riusabile, intuitivo e chiaro, capace di recuperare tutte le informazioni e i
concetti dalla confusione della rete e delle formali fonti ufficiali, stenderle su un piano, liberarle
dai tecnicismi e renderle a misura di studente alle prime armi.
Lo strumento più adeguato a tali scopi si è rivelato essere la mappa. Essa presenta grandi
potenzialità e si presta a vari utilizzi a seconda delle esigenze:
• Può riportare sottoforma di lista tutti gli argomenti riguardanti lo sviluppo cooperativo del
software permettendo così una navigazione completa tra le macro aree trattate e fornire
così una prima visione generale del problema (mappa a binario guida).
• Attraverso una struttura di collegamenti ipertestuali (per esempio html) può sfruttare al
massimo la rete internet offrendo all’utente la possibilità di aprire pagine e testi per ogni
voce e raggiungere rapidamente gli articoli correlati a quel tema rendendo il sistema
dinamico e lasciando libertà di scelta allo studente (mappa interattiva).
• Può essere sviluppata con una struttura più specifica, a più livelli (mappa ad albero) in
grado di effettuare una stesura di tutti gli argomenti a loro volta collegabili gli uni agli altri
con simboli semplici ed intuitivi.
• Può realizzare facilmente una rete semantica, una forma di rappresentazione della
conoscenza, costituita da un grafo orientato o non orientato formato da vertici, che
rappresentano i concetti, e archi, che rappresentano le relazioni semantiche tra i concetti
(mappa semantica). In questo modo è possibile unire graficamente più tematiche dello
stesso argomento senza complicare eccessivamente la struttura e rendendo l’analisi più
completa.
Uno degli obiettivi primari di tale approccio è di coltivare l’interesse dello studente per
l’argomento offrendogli un modo di apprendere più informale e chiaro, ma che mantenga gli
stessi concetti delle fonti formali: in ogni ambito di insegnamento, dalle scuole primarie
all’università, la possibilità di prefissare il lavoro da compiere per uno studio ed avere sempre
l’idea del carico di attività da svolgere, rappresenta già un enorme passo avanti per rendere utile,
soddisfacente e stimolante ogni lavoro di comprensione del nostro cervello.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
23
Inoltre è essenziale il concetto di guida: chiunque utilizza le mappe come strumento didattico sa
perfettamente che sta per intraprendere un percorso supportato che esclude a priori ulteriori
ricerche personali per la comprensione dei testi. Anche gli approfondimenti verranno trattati
all’interno dello stesso sistema e potranno essere raggiunti facilmente navigando la mappa scelta
per il livello di apprendimento necessario in quel momento.
A portata di click si avrà a disposizione tutto ciò che riguarda lo sviluppo cooperativo del software
ben strutturato e diviso per argomenti via via più particolari e specifici. Ogni nodo della mappa
intraprende un argomento e lo conclude, fornendo atomicità al singolo pezzo e rimandando poi a
link correlati per proseguire il percorso e giungere a tematiche successive.
Tutto ciò comporta un notevole lavoro di progettazione precedente la stesura grafica: suddividere
un macro tema in più sottotemi spesso è molto più difficile dell’inverso. Si deve puntare a rendere
ogni tassello ovviamente unito a tutti gli altri, ma in grado di scrollarsi da dosso lo stretto legame
con l’argomento precedente e successivo. Ogni nodo non dovrà riferirsi strettamente ai nodi di un
preciso percorso didattico, ma dovrà incastrarsi con qualsiasi scelta. In questo modo il testo in
questione potrà essere trattato facilmente e con chiarezza anche in tutte le altre direzioni che non
siano quella sequenziale: se il percorso seguito dallo studente fa giungere per qualche motivo,
magari con collegamenti da macro aree esterne, a quel nodo, quest’ultimo dovrà potersi ben
inserire in quel preciso percorso e dovrà soddisfare le richieste di apprendimento amalgamandosi
bene con qualsiasi passo prima e dopo.
Un altro importante aspetto che differenzia questo tipo di didattica dalla precedente è quello
grafico-visivo: la possibilità di avere a disposizione strumenti che evitano alla propria analisi ore e
ore di apprendimento stagnante su un testo, ma che invece permettono di approfondire con
metodi e percorsi alternativi, aiuta ad aumentare la qualità del proprio lavoro. L’argomento
trattato, infatti, di teorico ha solo i passi iniziali, quindi il classico studio “da libro” risulterebbe a
volte uno spreco di forze e tempo. La possibilità di interagire, invece, attraverso l’uso delle
mappe, tra i concetti base e le procedure da applicare direttamente sul tool permette di
accrescere il proprio livello di apprendimento in parallelo su entrambi i binari.
L’importanza di utilizzare questo diverso approccio per la formazione ai nuovi concetti
collaborativi dello sviluppo software, ha spinto il professor Paolo Maresca e il suo team del corso
di Ingegneria del software e basi di dati ad intraprendere due progetti in parallelo riguardanti
questo tema: da una parte quello rivolto allo sviluppo di componenti tecnici ed implementativi del
plugin del client Eclipse e dall’altra quello che punta a mettere ordine alla documentazione
esistente riguardo gli strumenti Rational e quindi si pone come scopo finale la realizzazione di tutti
i tipi utili di mappe concettuali. Quest’ultimo è il progetto Sviluppo Corsi Jazz.
2.3.1 Percorso di realizzazione
Il progetto è stato strutturato in varie fasi che hanno portato ad un prodotto finale fruibile e
distribuibile facilmente. Le mappe che sono state realizzate sono utilizzabili da chiunque fosse
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
24
interessato all’argomento e a seconda del livello di conoscenze che questo già ha. Ognuna, infatti,
punta ad un utilizzo diverso e approfondisce i temi in maniera differente in termini di quantità di
concetti e qualità.
Raccolta delle informazioni
Come prima fase del progetto, è stato necessario ricercare tutti i dati e i concetti presenti in giro
soprattutto in rete in modo da aver tutto il materiale necessario per affrontare il lavoro di sintesi
ed organizzazione della documentazione. I ragazzi del team hanno dovuto utilizzare le guide
preesistenti per prendere manualità con gli strumenti Rational in quanto solo conoscendo tutta la
tematica era possibile poi passare alla realizzazione pratica dei testi. Sono state così consultate le
fonti ufficiali IBM® e Jazz, tradotte dall’inglese all’italiano ed assimilate in tutti i suoi aspetti teorici
e pratici. Sono state, inoltre, provate e testate tutte le procedure principali di prodotti come il
Rational Team Concert (RTC), il Rational Quality Manager (RQM) e il Rational Requirements
Composer (RRC). Prima, infatti, di ricopiare con metodologie diverse i concetti formali esistenti,
era importante, qualora fosse stato necessario, correggere imperfezioni soprattutto tecniche
dovute magari a versioni del software rilasciate successivamente alla realizzazione della
documentazione e che quindi potevano presentare piccole differenze in alcuni passi.
Organizzazione e realizzazione dei testi
Con tutto il materiale a disposizione, il team ha intrapreso uno dei passi più complessi dell’intero
processo: studiare il tutto e impostare l’intero scenario della documentazione. Vista la grande
mole di dati, infatti, non si rivelava conveniente realizzare un unico binario, ma è stato necessario
dividere tutto in tre macro capitoli (quelli che saranno gli effettivi Corsi Jazz). In questo modo è
stato possibile approfondire singoli temi in ognuno di essi ed indicare facilmente i contenuti al
lettore senza creare troppe confusioni. I tre corsi sono stati impostati così:
• Nel Corso 1 lo studente viene introdotto ai concetti base dello sviluppo cooperativo del
software dal generale fino ad arrivare al mondo Jazz. Viene inoltre presentata una guida
all’installazione del Rational Team Concert (RTC) in cui compaiono tutte le indicazioni su
dove trovare il materiale per un suo corretto utilizzo. Infine, dopo una panoramica
generale sullo strumento, vengono riportate le principali procedure per una corretta
configurazione dell’RTC e per le prime operazioni collaborative da svolgere all’interno
dell’ambiente.
• Nel Corso 2 l’attenzione viene rivolta alle modalità di realizzazione del project
management negli ambienti Rational. Prima viene trattato approfonditamente il concetto
di progetto all’interno della famiglia dei tools: si enfatizza il significato di ciclo di vita di un
progetto e si descrivono i meccanismi di amministrazione delle aree collaborative e di
gestione dei membri del team di lavoro. Nella seconda parte del testo, che in un momento
successivo è stato deciso di separare dando vita al Corso 2-b per semplificare la
realizzazione delle mappe e la comprensione agli occhi dei lettori, sono stati trattati gli
aspetti riguardandi la gestione della qualità all’interno di un progetto (con riferimento al
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
25
Rational Quality Manager) ed all’amministrazione dei requisiti (con riferimento al Rational
Requirements Composer).
• Il Corso 3 è stato dedicato alle metodologie agili ed in particolare a quella SCRUM che
viene presentata prima a livello concettuale e poi a livello pratico mostrando come l’RTC
tratta con procedure apposite tale metodo. Vengono spiegate le procedure per lo start-
up, il planning e la gestione dei progetti. Alla fine del testo poi viene proposta
un’esercitazione completa per aiutare lo studente a prendere pienamente visione della
tematica e capire praticamente come applicarla.
Tutti e tre i corsi sono stati completati da sezioni apposite contenenti un sommario, gli sviluppi
futuri e i related works in modo da creare una certa connessione con gli altri testi e permettere al
lettore di approfondire successivamente gli argomenti con articoli correlati.
Creazione standardizzata del sito wiki
A questo punto del processo, quindi, i testi dei corsi sono già a disposizione degli studenti che
possono iniziare la loro formazione alla tematica avendo un materiale coerente e compatto dei
concetti principali da dover imparare e lo possono fare passo dopo passo senza trovarsi subito di
fronte a problemi fuori dalla loro portata. Già in questo modo è stato fatto un importante lavoro
per introdurre chiarezza alla documentazione, ma manca ancora l’aspetto dinamico e visivo della
questione, manca ancora lo strumento mappa in grado di chiudere il cerchio. A questo fine i Corsi
Jazz appena visti vanno ulteriormente destrutturati e suddivisi in modo da creare le singole pagine
(i singoli nodi) che andranno a formare la gerarchia delle tavole finali. Per questo è stato deciso di
usufruire delle potenzialità di un sito wiki che, alla stregua della classica Wikipedia, è in grado di
realizzare da zero, attraverso un completo ed intuitivo editor, pagine web contenenti un qualsiasi
testo o immagine voluta assegnandole titoli, sottotitoli e strutture desiderate. Attraverso poi il
collegamento fra link e back link è possibile creare una vera e propria rete di pagine. Nel nostro
caso, all’interno del progetto Sviluppo Corsi Jazz, il professore Maresca ci ha fornito un personale
wiki direttamente dal sito del suo corso di Ingegneria del software e basi di dati (ISBD) all’indirizzo
http://maresca.dis.unina.it/mod/wiki/view.php?id=350&page=Sviluppo+corsi+Jazz (Figura 2.3) a
cui è possibile accedere con le opportune credenziali.
Figura 2.3 – Pagina iniziale del sito wiki
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
26
Con questo ulteriore strumento abbiamo potuto concentrarci sul problema della suddivisione dei
testi puntando a realizzare le pagine con una certa coerenza e omogeneità nei contenuti.
Scompattati così i testi, siamo passati alla progettazione teorica di una mappa concettuale per
ogni corso in modo da creare i collegamenti direttamente sul wiki. Come l’intero progetto, anche
il lavoro sul wiki appena descritto ha presentato intrinsecamente gli stessi problemi che possono
interessare qualsiasi progetto collaborativo di tipologia agile: avendo infatti a che fare con un
team, è stato necessario accordarsi per bene sulle azioni da compiere per evitare risultati diversi
su uno stesso componente e per avere così un prodotto finale con uno stile uniforme. Questo, nel
caso del wiki, si è rivelata essere una priorità in quanto la struttura e l’organizzazione grafica e del
testo di ogni pagina ricade, come vedremo a breve, direttamente sulla creazione delle mappe. E’
stato essenziale, così, trovare un accordo unico sullo stile e la dimensione del carattere da
utilizzare nel testo, nei titoli, nei sottotitoli e in ogni altra sezione. Inoltre ogni pagina di uno
specifico corso contiene un’etichetta che permette di discriminarla dalle altre pagine degli altri
corsi e di riconoscerne l’appartenenza anche da terzi (nel nostro caso da un programma da
eseguire) (Figura 2.4).
Figura 2.4 – Esempio di struttura pagina wiki
Implementazione programma spider
Per facilitare ed automatizzare l’implementazione grafica delle mappe noi del team abbiamo
pensato di prefigurarci come obiettivo la realizzazione di un programma spider (Figura 2.5) in
grado di raccogliere i dati contenuti nelle singole pagine del wiki realizzato, riconoscerle grazie ai
formalismi scelti in precedenza e creare le mappe finali con il minimo sforzo umano.
Essenzialmente lo spider effettua tre operazioni:
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
27
1. Esplora dalla prima all’ultima tutte le pagine wiki estraendone i collegamenti in base a dei
criteri di selezione inseriti nel codice e inserendo di volta in volta la pagina scelta in un
database SQLite effettuandone una copia locale.
2. Esporta il database di pagine salvato in un formato grafico, in modo che la rete realizzata
sia utilizzabile come mappa. A seconda delle esigenze dell’utente sarà possibile la
realizzazione in vari formati:
• SubwayMap (mappa di Beck): mappa sullo stile di quelle della metropolitana che
sviluppa i tre corsi come binari paralleli distinti, adatta a chi vuole avere una
visione di insieme del tema ed osservare il susseguirsi degli argomenti.
• HyperMap (mappa iperbolica): una rete in cui i nodi di interesse sono trascinati
dall'utente al centro della mappa e gli altri appaiono tanto più grandi quanto più
strettamente sono collegati a quelli sotto il focus. Può essere usata da chi cerca
un argomento specifico e desidera esplorare quelli correlati.
• Graphml per editor di diagrammi yEd: questo formato permette in sé la
realizzazione di vari tipi di mappe, da quelle ad albero a quelle ortogonali.
• SocNetV (mappe di Pajek): programma opensource che consente analisi di reti e
grafi; questa mappa è indicata per l'analisi della struttura dei corsi più che per
l'accesso ai corsi stessi.
• Altri tipi di mappe mentali/concettuali fruibili con programmi esterni specifici
come MindManager, VUE - Visual Understanding Environment e FreeMind.
3. Lancia alcuni dei programmi per la visualizzazione delle mappe esportate o apre le mappe
di tipo html nel proprio browser integrato.
Grazie alle potenzialità dello spider siamo riusciti ad avere a disposizione una moltitudine di
mappe diverse con pochi click e poche accortezze durante la stesura del wiki.
Figura 2.5 – Interfaccia comandi dello spider
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
28
Controllo ed adattamento mappe
Terminata la fase di realizzazione pratica delle mappe, parte quella di testing: ogni prodotto
ottenuto è stato navigato e controllato. Sono state aperte tutte le singole pagine dei singoli
collegamenti per constatare che effettivamente al semplice click dell’utente su un nodo si apra
realmente la corrispondente pagina sul sito wiki. In caso di errori sono state apportate modifiche
manuali e, quando necessario, anche allo stesso spider in modo da ottimizzare il suo lavoro. Infine
si è voluta realizzare una mappa finale che racchiuda le principali caratteristiche ed esigenze in
modo da creare un compendio generalmente utilizzabile. Lo spider, infatti, realizza tutte le mappe
con molteplici livelli di approfondimento e crea spesso fin troppe ramificazioni. E’ risultato
necessario, quindi, avere un prodotto finale che riportasse quantomeno i collegamenti di livello
superiore in modo da snellire graficamente la mappa. Una piccola legenda aiuterà lo studente alla
lettura efficiente di una mappa abbastanza complessa ma molto utile per il lavoro.
Rilascio documentazione
A questo punto il lavoro del progetto Sviluppo Corsi Jazz volge al termine e la nuova
documentazione può essere finalmente rilasciata. Sono ora disponibili in rete tutte le mappe
interattive prima descritte e quella finale e, alle spalle, sono sempre consultabili i tre Corsi Jazz
che contengono in file unici tutte le informazioni accessibili direttamente dalle mappe. Inoltre è
possibile navigare direttamente sul wiki e creare il proprio personale percorso didattico attraverso
i collegamenti e le sezioni Voci correlate presenti in ogni pagina. L’intero materiale sarà a breve
disponibile sul sito del Prof. Maresca sotto il titolo “The use of Jazz-Hub in University courses” e
fruibile da chiunque fosse interessato (Figura 2.6).
Figura 2.6 – La copertina della documentazione.
2.3.2 Glossario e parole chiave
In parallelo alla stesura dei tre Corsi Jazz ed alla realizzazione pratica delle mappe appena
descritta, è stato deciso di lavorare anche su ulteriori collegamenti all’interno delle pagine e dei
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
29
nodi. Nasce così un quarto canale che può essere sempre consultato per chiarimenti ed
approfondimenti: il glossario. In tale sezione vengono raccolti i termini più importanti ed utilizzati
all’interno dei testi e spiegati in maniera concisa, chiara e completa con riportati anche i
riferimenti ai numeri delle pagine in cui si può trovare ogni parola all’interno dei tre corsi.
Anche in questo caso, oltre ad aver curato l’aspetto testuale di tale parte, è stato caricato il tutto
anche sul sito wiki creando una pagina per ogni parola chiave trovata. Inoltre in ognuna delle
pagine dei tre corsi sono stati inseriti i collegamenti alle parole che contengono (Figura 2.7),
mentre nelle pagine del glossario lo stesso wiki inserisce automaticamente i back link nella
direzione opposta.
Figura 2.7 – La sezione Glossario all’interno di una pagina wiki
Al momento questo quarto capitolo non è stato inserito nelle mappe realizzate in quanto si è
verificato che i numerosissimi collegamenti tra le centinaia di parole contenute nel glossario e le
pagine dei tre corsi teorici creavano confusione a livello grafico con sovrapposizioni multiple di
linee di rapporto e di etichette di nomi. Tale problema non è superabile mantenendo l’aspetto
automatico che l’utilizzo dello spider offre: si potrebbe pensare di realizzare i collegamenti a
mano in modo tale da mantenere la chiarezza e la pulizia della mappa, ma tale lavoro, considerato
che stiamo parlando di centinaia di nodi e centinaia di link, sarebbe dispendiosissimo. Nonostante
il glossario non è stato inserito nelle mappe è facilmente consultabile in rete sul wiki o come file di
testo analogamente ad uno qualsiasi dei tre corsi.
2.4 Analisi comparativa
Grazie ai progetti portati avanti e conclusi dal team di lavoro del prof. Maresca ora abbiamo a
disposizione una documentazione alternativa a quella ufficiale e siamo in grado di mettere a
confronto le due metodologie di didattica per la formazione dello studente allo sviluppo
cooperativo del software.
E’ possibile così portare avanti una comparazione tra i due approcci e valutare gli aspetti
quantitativi e qualitativi che li contraddistinguono. Le differenze sono notevoli anche se i concetti
di base, come ovvio, sono i medesimi. Più che sui contenuti, quindi, ci focalizzeremo su altri
parametri fondamentali per giudicare la corretta formazione didattica.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
30
Faremo riferimento ai tempi di recupero delle informazioni e quindi allo sforzo che lo studente
deve svolgere per reperire tutto ciò che gli serve, al grado di complessità dei testi utilizzati, al
tempo di apprendimento che il ragazzo deve spendere avendo a disposizione quella
documentazione ed al livello di chiarezza della sua struttura generale.
2.4.1 Concetti
In primo luogo in un’analisi del genere vanno valutati i metodi con cui vengono trattati i concetti
all’interno dei testi. Da tali considerazioni è possibile stabilire quale approccio sia più adatto ad
uno studente alle prime armi che, in entrambe le documentazioni, dovrebbe essere l’obiettivo da
tenere sempre presente: concetti chiari, ma allo stesso tempo completi nei contenuti sono l’unico
modo per offrire una formazione corretta.
Prenderemo ora in esame come esempio due concetti, uno teorico e uno tecnico, tra i molteplici
appartenenti alla problematica in questione e valuteremo come essi vengono sviluppati da
entrambi gli approcci didattici.
Esempio 1 – Piattaforma Jazz
Con l’approccio IBM® si può accedere alle informazioni riguardanti la piattaforma Jazz
direttamente dal sito della community aprendo la pagina Platform nel menù a tendina nella parte
superiore della home. Si aprirà cosi la sezione riferita ai concetti base della piattaforma, come
sempre completamente in lingua inglese. Si tratta di una trattazione completissima in contenuti,
ma abbastanza impegnativa da apprendere. Inoltre i collegamenti con le voci correlate in questo
caso sono minimi e lo studio assume caratteri davvero troppo statici. Il lettore si trova di fronte a
termini fino ad allora mai trattati e senza alcuna guida da poter seguire. Con l’approccio visivo,
invece, basta consultare il testo del corso 1 direttamente nel pdf o sul wiki, ricercando nell’indice
l’argomento (Figura 2.8). Dalla mappa, invece, l’etichetta del nodo Piattaforma Jazz permette di
trovare subito la pagina cercata con tutte le informazioni contenute. Le varie mappe permettono
la visione globale di tutti i collegamenti a quell’argomento e ciò conferisce dinamica allo studio. Il
concetto viene trattato dal semplice al complesso permettendo al lettore di prendere confidenza
con l’argomento non in maniera brusca.
Figura 2.8 – Esempio di trattazione dell’argomento Piattaforma Jazz dal pdf del corso 1
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
31
Esempio 2 – Planning e gestione di un progetto
Utilizzando l’approccio IBM® ufficiale, lo studente dovrà accedere al sito della community Jazz e,
navigandolo senza alcuna guida, dovrà entrare nella pagina inerente ai prodotti (Products) dalla
home oppure entrare nella sezione Download e prendere visione così della pagina riferita al
prodotto Rational Team Concert. Una volta giunti qui il ragazzo si troverà di fronte a testi
completamente in inglese ed ai videotutorial già descritti in precedenza. Scorrendo la pagina
troverà il video riguardante il planning e lo aprirà (Planning and Tracking) (Figura 2.9): l’ostacolo
dell’inglese ora passa dallo scritto all’orale e la difficoltà aumenta. Inoltre ogni video della
community è stato realizzato da un membro diverso, persone differenti per origini, cultura e modi
di fare che spiegano l’argomento a loro modo. Oltre a ciò c’è da evidenziare che in questi tutorial
non si fa alcun riferimento alla versione dell’RTC utilizzata e quindi lo studente potrebbe trovarsi
di fronte a differenze anche sostanziali tra ciò che vede e ciò che invece trova nella realtà. Con
l’approccio visivo, invece, lo studente può iniziare la sua ricerca indifferentemente sia dalla mappa
che dai testi veri e proprio in formato pdf o dal wiki. Andrà a scegliere il tipo di mappa più
consono alle proprie esigenze, magari osservando la panoramica generale dei concetti
consultando quella in stile metropolitana. Trovato l’argomento nel binario del corso 3, potrà
utilizzare un altro tipo di mappa per evidenziare magari i collegamenti correlati e con un semplice
click accedere alle informazioni riguardanti la pianificazione e la gestione dei progetti. Inoltre a
differenze di prima, qui lo studente è guidato sin dai primi passi all’installazione univoca di una
specifica versione dell’RTC e quindi ogni procedura risulterà coerente con tutte le altre e con
quello che effettivamente troverà sul suo computer.
Figura 2.9 – Un frame del videotutorial Planning and Tracking dal sito Jazz
2.4.2 Tempi di ricerca
Altro parametro di notevole importanza nella comparazione è il tempo di recupero delle
informazioni necessarie alla formazione personale. Almeno in principio esso dovrebbe essere il
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
32
minore possibile dato che un bene prezioso come il tempo dovrebbe essere speso per
l’apprendimento effettivo dei concetti.
Per “recupero di informazioni” intendiamo il tempo che lo studente impiega dall’inizio della sua
ricerca all’ottenere il testo fruibile, leggibile e studiabile.
Riprendiamo a tale scopo l’esempio teorico già trattato nel precedente paragrafo per confrontare
tale parametro.
Esempio – Piattaforma Jazz
L’approccio IBM® offre spunti tecnici e di complessità notevoli, ma rallenta considerevolmente lo
studio del lettore. Come detto già in precedenza, la mancanza di una linea guida comporta il non
accesso diretto alla pagina ricercata (Platform), ma spesso occorre una navigazione quasi
completa del sito della community Jazz. Inoltre la presenza di termini e concetti di livello più
specifico porta obbligatoriamente lo studente ad accedere ad altro materiale on line che gli faccia
chiarezza prima sui fondamenti dell’argomento. La necessità quindi di aprire ricerche parallele
dilata notevolmente il tempo di ricerca dei contenuti. A sugello di tutto, infine, c’è il solito
problema con l’inglese che, anche per chi legge correttamente la lingua, può portar via altro
tempo prima di ottenere il fatidico testo pronto per essere studiato. Il parametro tempo globale
così, considerato tutte queste problematiche, può variare da qualche decina di minuti fino ad
arrivare all’ora a seconda dei casi. Le mappe e l’approccio visivo, invece, permettono l’accesso
diretto ai contenuti: dalla visione del lucido scelto per la propria analisi alla possibilità di leggere il
testo possono passare anche solo poche decine di secondi. Si tratta praticamente del tempo che
intercorre tra la ricerca dell’argomento Piattaforma Jazz nel binario Corso 1 all’interno della
mappa e l’apertura della corrispondente pagina wiki. La prima operazione di ricerca è possibile
effettuarla facilmente con la funzione di ricerca all’interno del browser stesso o con analoghe
funzioni fornite dai programmi esterni (come Mind Manager, Free Mind, VUE) in caso di mappe
sviluppate per ambienti diversi dal web (Figura 2.10). Per quanto riguarda, invece, la seconda, il
tempo dipende pesantemente dalla velocità della rete, ma parliamo sempre di massimo pochi
secondi. Lo stesso discorso è possibile fare per l’apertura dei testi correlati al principale (Rational
Team Concert, Strumenti per lo sviluppo cooperativo) o per l’apertura delle pagine del glossario. I
tempi globali di ricerca non variano se si considera lo studio alternativo direttamente tramite wiki
o testi pdf: grazie infatti ai funzionali indici, in entrambi i casi cercare l’argomento in questione
risulta rapido e facile.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
33
Figura 2.10 – Ricerca dell’argomento con l’utilizzo di una mappa iperbolica
2.4.3 Tempi di apprendimento
Per completare la nostra analisi facciamo riferimento ad un ultimo parametro, forse il più
importante in quanto descrive qualitativamente i due approcci: il tempo di apprendimento dei
concetti proposti.
Questo parametro misura il tempo che passa dalla visione delle informazioni leggibili
all’assimilazione dei concetti ricercati. Per questa comparazione tra le metodologia didattiche
presentate in precedenza riutilizzeremo l’esempio posto in precedenza sulla gestione dei progetti.
Esempio – Planning e gestione del progetto
Usando l’approccio IBM® per la formazione personale si riscontra subito il problema di mettere in
atto ciò che il corrispondente videotutorial (Planning and Tracking) descrive oralmente: lo
studente, infatti, dovrà da solo ricercarsi e capire dai frame la specifica versione del client Eclipse
o web utilizzato dal realizzatore del video che, come se non bastasse, potrebbe utilizzare anche un
sistema operativo diverso (un Mac OS X 10.5 Leopard nel nostro caso). Solo così infatti potrà
intraprendere la procedura descritta in maniera coerente con quello che vede ritrovando le stesse
etichette, le stesse viste e le stesse voci. La confusione, quindi, può essere anche notevole e
portare il lettore ad una incompleta comprensione del problema teorico e poi pratico. Inoltre è
provato che lo studio tramite un testo scritto aiuta a rimanere concentrati sul pezzo e a non
divagare: è possibile infatti ritornare facilmente indietro se un passaggio non è stato capito alla
prima lettura. Con il tutorial invece anche il solo tornare su un concetto comporta un lavoro
manuale di ricerca per tutta la durata del file (nel nostro caso 6 minuti e 57 secondi). A causa di
questi vari problemi il tempo di apprendimento di questa semplice procedura è stato stimato, per
esperienza personale e di altri, in decine di minuti, e considerando la ricerca della versione, si
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
34
arriva anche all’ora. Con l’approccio visivo, invece, come già detto in precedenza, lo studente
giunge alla lettura di questa procedura già con la copia di uno specifico client, indicato in
precedenza, installato sul proprio terminale. Il lettore ora ha davanti un testo che descrive la
procedura, univoco in caso di accesso sia tramite mappa concettuale, sia attraverso wiki o pdf.
Passo dopo passo lo studente legge l’operazione da compiere e la può effettuare pochi secondi
dopo guidato da icone e simboli intuitivi che descrivono ogni componente dell’ambiente di lavoro.
In pochi minuti potrà testare in prima persona la Configurazione del planning di un progetto, la
Creazione del Product Backlog, la Creazione dello Sprint Backlog per poi passare alla gestione
tramite i report, la load bar e la progress bar visionabili tramite interfaccia web e la cui posizione
ed utilizzo sono spiegati nel medesimo testo. Con questa metodologia viene ridotto al minimo in
termini di quantità e complessità il testo della procedura, in modo da guadagnarne chiarezza,
essenziale in ambito formativo, e tempo per prendere manualità con i tecnicismi dato che nello
stesso tempo di prima la procedura è testabile molte più volte. Infatti, in questo modo, la lettura e
la comprensione viaggiano in parallelo con l’aspetto pratico rispettando il concetto universale che
“ripetere le cose con le proprie mani, più e più volte, aiuta a non dimenticarle più”. Il tempo di
apprendimento, in questo secondo caso, anche se dipende dalle capacità del singolo studente,
difficilmente può superare i 10 minuti.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
35
Capitolo 3
Considerazioni finali
3.1 Conclusioni
Nei capitoli precedenti abbiamo descritto prima gli aspetti principali in termini di concetti e
strumenti dello sviluppo cooperativo del software, per poi passare a trattare e confrontare le
metodologie di formazione e i percorsi didattici che è possibile utilizzare per uno studio personale
dell’argomento.
Abbiamo visto con esempi reali e pratici come la nuova documentazione e le nuove tecniche di
apprendimento facilitano ed introducono chiarezza nello studio dell’argomento in maniera tale
che i tempi di ricerca e comprensione dei concetti presentati risultino accorciati di molto.
Con il lavoro del team Sviluppo Corsi Jazz è stato finalmente fatto ordine all’interno di questo
ambiente e di questo mondo fino ad oggi mai trattato nella sua integrità; è stata realizzata una
linea guida sempre consultabile per gli sviluppi futuri e fruibile in ogni suo aspetto.
La presenza di questo innovativo approccio didattico, alternativo al materiale preesistente,
permette di guardare la tematica da un nuovo e diverso punto di vista: lo studio stantio e
monotono su un testo scritto lascia finalmente spazio ad un mondo variegato ed interattivo che
avvicina lo studente interessato anziché creare delle barriere, spesso insormontabili, tra
quest’ultimo e i contenuti. Ora è finalmente possibile guardare a colori al mondo del nuovo
sviluppo software e non nel classico bianco e nero di una pagina stampata su carta o visualizzata
su uno schermo.
Lo studente si trova di fronte ad un ambiente eterogeneo ed integrato in ogni sua parte. Ogni
componente dell’intero materiale risulta ben distinguibile ed utilizzabile: testi, wiki, mappe,
esempi, esercitazioni e glossario, ognuno con il loro seguito di colori, simboli ed etichette, creano
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
36
un ecosistema in cui ogni parte compie al meglio le proprie funzioni e fornisce, con la sua
presenza, funzionalità alle altre. Questo organismo permette ai lettori possibilità molteplici in
termini di accesso ai contenuti ed alle voci correlate.
Viene tolta un po’ di polvere ad un argomento complesso ed importante, ma che aveva bisogno di
una bella rinfrescata e di una metodologia didattica in grado di coinvolgere pienamente il giovane
facendogli apprendere i concetti teorici e tecnici in una maniera interattiva e dinamica puntando,
quindi, ad appassionarlo all’argomento.
L’eterogeneità del sistema va a realizzare una struttura di apprendimento a livelli che tende a
svilupparsi in senso verticale e non più orizzontale come in precedenza. Le mappe rappresentano
lo stadio alto da cui è possibile approcciarsi all’argomento e ricercarne i concetti d’interesse per
poi scendere in picchiata al livello dei contenuti e quindi di tutte i collegamenti testuali ad essi.
Scendendo ancora si arriva alla trattazione dei termini principali e delle parole chiave attraverso
l’efficiente e maneggevole glossario. In pochi minuti si può passare da una macroarea di un
particolare tema, ad una specifica parola inerente ad esso.
In alcuni ambiti comunque l’approccio ufficiale IBM® si fa ancora preferire in quanto contiene
particolari e dettagli che la navigazione grafica ed ipertestuale delle mappe non riesce a
raggiungere, ma che forse nemmeno si prefissa come obiettivo finale. Anche in questa sede,
quindi, non ci nascondiamo dal consigliare quel tipo di formazione in anni successivi a quelli
universitari per specializzare alcuni aspetti che potrebbero rivelarsi utili allo studente in procinto
di affacciarsi per la prima volta in uno scenario lavorativo di sviluppo collaborativo del software.
Tanta attenzione a questa tematica deriva dalla ormai quasi certezza che nei prossimi anni le
ricerche sull’ingegneria del software rappresenteranno uno tra gli obiettivi primari
dell’informatica e la figura di sviluppatore moderno, completo in ambito di programmazione e
gestione progetti, descritto ampiamente in precedenza, sarà sempre più richiesto dal mercato. Si
prevede, infatti, una crescita significativa per il prossimo decennio della domanda di competenze
in sviluppo software e dagli Stati Uniti trapelano già i primi numeri. Il ministero del lavoro
americano, nel documento ufficiale Career Guide to Industries Report dello scorso anno, prevede
un incremento di 656.400 posti di lavoro nel settore della progettazione di sistemi informativi e
nelle professioni correlate che corrisponde ad un +21% entro il 2020. Da questi dati l’industria
dello sviluppo software risulta essere tra le prime in crescita.
3.2 Sviluppi futuri
Nonostante il lavoro del team del prof. Maresca nel progetto di realizzazione del materiale
didattico sia giunto al termine, grazie ad esso si aprono interessantissimi scenari per l’immediato
futuro che possono portare ad un’ulteriore ottimizzazione del prodotto finale.
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
37
Finora, infatti, abbiamo considerato come utilizzatori del materiale gli studenti interessati
all’argomento ed alla ricerca di una formazione personale ed efficiente al problema, facendo
riferimento, quindi, ad un aspetto prettamente autodidatta. In un ragionamento successivo, però,
non è per niente presuntuoso pensare ad un utilizzo di tale approccio come un vero e proprio
strumento didattico in mano a docenti che, sulle mappe realizzate e sulla struttura testuale
sottostante, potrebbero pensare di impostare un intero corso universitario di ingegneria del
software. Alcune delle mappe precedentemente descritte, infatti, possono svolgere
perfettamente il ruolo di mappa concettuale guida. Basti pensare alle mappe di Beck
(metropolitana) e a quanto la visione di un disegno tale possa aiutare i professori nelle spiegazioni
o nell’organizzare la suddivisione degli argomenti durante l’intera durata del corso.
Allargando il campo è possibile evidenziare come tutte le altre tipologie di mappe realizzate dal
team sono utilizzabili da altri profili. Ad esempio una figura come il tecnico potrebbe trovare utile
una mappa iperbolica per ricercare rapidamente un concetto sfuggitogli in precedenza ed avere
immediatamente a disposizione tutte le voci correlate e le procedure che magari potrebbero
risolvere il problema in cui è incappato. Questo metodo potrebbe risultargli infinitamente più
conveniente ed efficace che andare a sfogliare nuovamente interi manuali in lingua inglese dello
strumento in questione.
Analogo discorso è possibile fare anche ad esempio per lo sviluppatore che oggi racchiude in sé
caratteristiche di programmazione e project management. Per questo motivo gli si potrebbe
rivelare utile una mappa ad albero, come quella realizzata con yEd, per tenere sott’occhio le
gerarchie di un sistema con metodologia SCRUM e i vari ruoli da assegnare o rispettare all’interno
del team di lavoro, magari da approfondire poi singolarmente utilizzando il glossario.
Ci ritroviamo così in uno scenario in cui più attori sono in grado di mettere mano allo stesso
materiale ed utilizzarlo secondo i personali bisogni ed in maniera sempre efficace e corretta, un
po’ come un cast di uno stesso film utilizza lo stesso copione o gli stessi abiti di scena per la
propria personale interpretazione.
Altro possibile scenario su cui è possibile calcare la mano per miglioramenti futuri è quello
dell’automatizzazione del sistema che già con la realizzazione e l’utilizzo dello spider, trattato in
ogni sua parte in precedenza, ha compiuto un notevole passo avanti. Prossimamente, infatti, è
possibile pensare ad un ampliamento delle potenzialità del programma automatico al fine di
realizzare ancora più tipologie di mappe in ulteriori formati sempre con lo scopo primario di
venire incontro alle esigenze dei lettori. Si potrà quindi ottimizzare il codice dello spider con
qualche accorgimento, aiutati dal semplice ed utile help allegato ad esso che spiega gli aspetti più
tecnici della sua implementazione. Ma non è tutto. Non ponendoci limiti, si può pensare alla
realizzazione di un sistema più ampio, costituito ad esempio dalla terna spider, wiki, mappe che
possa permettere una realizzazione completamente automatica delle mappe finali ad ogni minima
modifica apportata allo spider o ai testi contenuti nei pdf o nel wiki. E viceversa adeguare il codice
dello spider o dello stesso wiki in automatico al variare di uno o di entrambi gli altri parametri in
gioco. Queste situazioni possono sembrare a prima vista utopistiche o surreali, ma in fin dei conti
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
38
non è così se si considera che il mondo dell’ingegneria del software è in continua evoluzione e
quindi rendere tali procedure automatiche, senza però tralasciare naturalmente la qualità del
prodotto, può evitare notevoli sforzi concettuali e pratici e dare dinamicità allo sviluppo del
materiale.
Infine, nell’idea di rendere tale documentazione fruibile ed utilizzabile facilmente a più persone
possibile, si dovrà pensare in un prossimo futuro ad una traduzione completa di tutti i contenuti
almeno inizialmente in inglese e poi magari successivamente anche nelle altre lingue più
importanti. Solo in questo modo infatti sarà possibile conferire un tono internazionale al lavoro
svolto e renderlo chiaro e degno di attenzione agli occhi dell’intera comunità mondiale
informatica.
3.3 Sitografia
[1] [http://www.agilemanifesto.org/iso/en/] [-] [Principles behind the Agile Manifesto]
[2] [http://www.agilemovement.it/] [-] [Italian agile movement]
[3] [https://jazz.net/products/jazz-foundation/] [-] [Jazz foundation]
[4] [https://jazz.net/products/] [-] [Tools to help you deliver better software and systems]
[5] [http://www-01.ibm.com/software/it/rational/] [-] [IBM Rational Software]
[6] [http://federicobotti.files.wordpress.com/2008/10/computer-programming-intervista-
botti.pdf] [-] [Intervista a Federico Botti, Manager di Rational Software]
[7] [http://www.afbnet.it/soluzioni/middleware-ibm/rational-software/ibm-rational-team-
concert] [-] [IBM Rational Team Concert]
3.4 Bibliografia
[1] [Ian Sommerville] [8a edizione – 2007] [Ingegneria del software]
[2] [Pampino, Gamma, Wiegand] [2009] [Scaling agile with C/ALM]
[3] [Roger Pressman] [5a edizione – 2008] [Principi di ingegneria del software]
[4] [Binato, Fuggetta, Sfardini] [2006] [Ingegneria del software]
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
39
Appendice
Intervista studente
A conclusione di questa trattazione ho deciso di realizzare un’intervista ad un collega, mio amico,
iscritto alla facoltà di giurisprudenza, ma grande appassionato di computer. Ho scelto lui per
realizzare questa testimonianza proprio per analizzare le valutazioni di un ragazzo completamente
ignaro degli ultimi sviluppi di questo ambito, interessato però ad un primo approccio. A lui sono
state sottoposte le mappe appena realizzate nell’ambito del progetto e tutto il materiale
riguardante lo sviluppo software organizzato dal team (pdf, wiki, testi) lasciandogli completa
libertà su quale specifico elemento utilizzare per il proprio apprendimento. Vediamo ora quali
sono le opinioni che ha maturato dall’esperienza in prima persona riguardo questa nuova
metodologia didattica di formazione.
Prima di questo approccio, quali erano le tue conoscenze dell’argomento?
“Come ben sai, ho un certo debole per tutto ciò che riguarda la tecnologia e in particolare il mondo
dell’informatica, ma l’università mi toglie molto tempo e non riesco ad approfondire tutto ciò che
vorrei. Riguardo la specifica tematica, sempre per colpa del tempo che non mi permetteva una
ricerca approfondita, ho letto qualche articolo sparso qua e là su qualche rivista in rete, ma nulla
più.”
Quale percorso didattico hai scelto per le tue esigenze?
“Tra il materiale che mi hai messo a disposizione ho scelto di cominciare a visionare prima un paio
di mappe e da qui sono passato alla navigazione online del wiki attraverso le varie pagine e le voci
correlate.”
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
40
Capito, quindi hai usato le mappe come guida, infatti tale approccio ti lascia libero di entrare
nell’argomento da più direzioni. E quali mappe concettuali hai utilizzato?
“Si, in effetti ho preferito fare così per darmi un ordine più sequenziale visto che partivo
praticamente da zero. Tra le varie mappe ho utilizzato in primis quella della metropolitana, quella
di Beck, su cui mi sono soffermato per comprendere la lista degli argomenti ed avere chiaro il
carico di lavoro da affrontare e le varie “stazioni” comuni che potevo trovare tra i vari binari.
Subito dopo ho scelto la mappa iperbolica che mi ha accompagnato in tutto lo studio e ho trovato
molto efficiente dal punto di vista grafico il gioco di grandezze dei nodi per evidenziare i
collegamenti più o meno forti. Inoltre la possibilità di trascinare pezzi di mappa mi ha permesso di
isolare un nodo con i suoi sottonodi e tenere presenti le pagine del wiki da trattare per
quell’argomento.”
Come valuti l’accesso alle informazioni di tale approccio?
“Beh, questo aspetto a mio parere è davvero notevole. Sia direttamente dalla mappa, sia dal wiki,
in pochi click ho potuto accedere alla pagina richiesta. Questo è stato un fattore che mi ha
positivamente colpito in quanto ero proprio alla ricerca di un metodo rapido per ottenere tutto il
necessario e poter nutrire la mia passione.”
Hai avuto necessità di ulteriori ricerche e di ulteriori testi oltre al materiale che ti abbiamo
fornito per comprendere alcuni concetti?
“Sinceramente no, almeno per ora. Il materiale l’ho trovato soddisfacente e completo per dare una
buonissima conoscenza dell’argomento. I concetti teorici base sono comprensibili davvero a
chiunque e nel caso ci fossero dei problemi su alcune terminologie, i collegamenti al glossario dalle
pagine wiki coprono ampiamente questa lacuna spesso davvero con poche righe. Se poi in un
futuro, il tempo e la volontà mi spingeranno a cercare gli aspetti più dettagliati e specifici, proverò
altre ricerche personali.”
Per quanto riguarda l’aspetto tecnico delle procedure, sei riuscito ad assimilare una certa
manualità con lo strumento?
“Si, nonostante non ci abbia perso giorni e giorni di studio, posso ritenere di avere assunto una
certa pratica riguardo le procedure riportate. Ho apprezzato soprattutto il fatto che ogni passo
descritto sui testi è perfettamente identico con quello che ho trovato utilizzando il client Eclipse o
quello web che mi era stato chiesto di installare ad inizio lettura. In passato, invece, per altri
argomenti ricercati in rete ho trovato grandi difficoltà nel capire da solo icone, simboli o passaggi
che non trovavo spiegati in maniera giusta e mi toccava andare a ricercarmi io etichette o voci per
intuizione personale o per tentativi.”
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
41
Quali problemi hai riscontrato nella navigazione?
“Non vorrei passare per il buonista della situazione anche perché sai che non lo sono, ma per lo
scopo che mi ero prefissato di raggiungere non ho trovato problemi che hanno ostacolato il mio
percorso di apprendimento. Ho trovato ampia libertà nello scegliere tra una vasta gamma di
materiale quello che più rispondeva alle mie idee e la scelta si è rivelata giusta.”
Questionario di valutazione
Nome: ……………………………………………………… Cognome: ………………………………………………………
Sesso: M F Facoltà: ………………………………………………………………………………………………
Anno accademico: 20……. / 20……. Iscritto al: ………………………………………………………
1) Il materiale didattico proposto all’interno del corso quanto ha risposto alle sue esigenze?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
2) In che modo ha rispettato le sue aspettative iniziali?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
3) Quanto conosceva l’argomento trattato dal corso prima del suo inizio?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
4) Concluso il corso, di quanto sono aumentate le sue conoscenze riguardo l’argomento?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
5) In quanto stima il tempo di apprendimento personale attraverso l’utilizzo del materiale?
0: Non so 1: ≥ 2 mesi 2: 1-2 mesi 3: 3-4 settimane 4: 1-2 settimane
6) Oltre all’utilizzo delle mappe e del materiale, ha avuto bisogno di un’ulteriore ricerca
personale per comprendere alcuni concetti?
0: Sempre 1: Diverse volte 2: Qualche volta 3: Raramente 4: Mai
Se si, quali? ……………………………………………………………………………………………………………………………….
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
42
7) La struttura del corso, costituita da pdf, wiki, mappe, quanto le è sembrata coerente per la
sua formazione?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
8) Quanto considera utili alla formazione personale le esercitazioni proposte nei testi?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
9) Quanto semplici ritiene le frasi adoperate per descrivere i concetti illustrati nel corso?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
10) Quanto ha trovato efficiente il glossario associato al corso?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
11) Le mappe messe a disposizione durante il corso sono leggibili più del contenuto testuale?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
12) Navigare le mappe utilizzate le ha permesso di raggiungere l’obiettivo in maniera veloce,
disegnando un percorso chiaro di consecutività fra concetti?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
13) Si sono rivelate efficaci per il suo scopo? Le hanno fatto capire bene il concetto a cui la
mappa l’ha indirizzata?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
14) Quanto tempo ha impiegato, partendo dalla mappa, a rintracciare e capire il contenuto di
un concetto?
0: Non ci sono riuscito 1: più di un minuto 2: 45-60 secondi 3: 30-45 secondi 4:15-30 secondi
15) Ha trovato chiare le istruzioni di installazione del client (software) e delle successive
procedure di configurazione e realizzazione dei progetti?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
16) Quanto è stato facile reperire il materiale del corso?
0: Per niente 1: Poco 2: Sufficientemente 3: Buono 4: Molto
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
43
17) In passato aveva già utilizzato altro materiale riguardante l’argomento a cui il corso fa
riferimento?
Si No
18) Ha trovato riscontri migliori con il nostro corso rispetto all’approccio precedente?
Si No
Se si, quali? ……………………………………………………………………………………………………………………………….
19) Dall’esperienza personale maturata, sarebbe pronto a consigliarne l’utilizzo a qualcuno?
Si No
Il processo collaborativo di sviluppo del software:
Jazz e percorsi didattici di apprendimento
44
Ringraziamenti
Arriva così la fine di questa mia prima esperienza universitaria. Un' avventura ricca di alti e bassi,
di momenti felici ed altri di sconforto e difficoltà, con persone conosciute, altre ritrovate ed altre
ancora perse, ma tutti hanno contribuito a renderla una tra le più importanti della mia vita.
Il primo pensiero voglio rivolgerlo a Fiorella che mi ha accompagnato negli ultimi tre anni e mi è
stata vicina più di chiunque altro, sia fisicamente che mentalmente, sopportando le mie crisi e
condividendo le mie gioie, sapendomi ascoltare quando avevo bisogno di parlare e dispensando
consigli quando ne avevo bisogno. A lei il "grazie" più grande fra tutti.
Voglio poi ringraziare la mia famiglia, mio padre, mia madre e mia sorella, che, a loro modo, non
mi hanno mai fatto mancare l'appoggio e la fiducia nonostante un ultimo anno molto tumultuoso.
A seguire, ma non meno importanti, gli amici di sempre, quelli che in questi ultimi dodici mesi sono
stati sempre lì, pronti a regalarmi un sorriso ed a farmi fare una risata quando, senza saperlo, ne
avevo più bisogno. In rigoroso ordine alfabetico un enorme grazie ad Andrea, Daniele, Marianna,
Roberto, Sabrina, Vincenzo e Vincenzo.
Un pensiero anche alle nuove amicizie maturate in questi anni universitari, Guido, Federico,
Giovanni, Gabriele ed Antonio, che hanno addolcito le ore ed ore di corsi e studio con battute e
dibattiti sportivi.
Lele