Il processo collaborativo di sviluppo del software: Jazz e ... · metodologie agili come eXtreme...

45
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

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

IV

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

45