logo NetOne - media and a united world

NetOne

media and a united world

Panel 3 - azienda.istituzione@ict&newmedia

c04-txt_matontiCinzia Matonti
Regione Campania

 


Lo sviluppo software e la comunicazione

Vorrei sottoporre veramente a voi come spunto di riflessione alcune tecniche che si sono diffuse nelle piccole e medie imprese. Si tratta di tecniche abbastanza innovative che emplicemente alla fine formalizzano delle esigenze e dei 'modus operandi', delle tecniche già diffuse in ambito aziendale sia nel lavoro pubblico che nel lavoro privato. Indipendentemente dall'area applicativa e dallo specifico processo adottato, le seguenti fasi sono sempre coinvolte nella realizzazione di qualunque sistema software:

  . La fase di definizione,
si occupa del "che cosa" realizzare e cioè del comportamento del sistema software.

  . La fase di sviluppo,
si occupa del "come" progettare, implementare e validare il prodotto software. 

c04-txt_matonti-01

Fase di definizione

Una delle attività previste in questa fase è la cosiddetta"analisi dei requisiti" con cui si individuano i requisiti fondamentali che il sistema software dovrà realizzare.
L'attività di analisi dei requisiti è particolarmente rilevante e delicata nella definizione di un sistema software.
Essa richiede una buona comunicazione tra cliente e fornitore.
Nell'approccio tradizionale allo sviluppo software si ritiene che la definizione dei requisiti debba concentrarsi principalmente nella fase iniziale del progetto software e perciò si ritiene che tra il cliente e fornitore software debba instaurarsi subito una comunicazione eccellente al fine di non richiedere quasi ulteriori contatti e chiarimenti.
Anche nell'approccio più moderno che caratterizza le cosiddette "imprese agili", la naturale e frequente incertezza del cliente nell'esprimere le sue richieste in merito al prodotto software che si intende realizzare deve essere gestita in tutte le fasi del processo di sviluppo software richiedendo perciò una proficua interazione e comunicazione tra cliente e fornitore/sviluppatore software.

Quindi sia l'approccio tradizionale che quello agile ritengono l'incertezza del cliente molto rischiosa ai fini della definizione dei requisiti di un sistema software e pertanto onsiderano la comunicazione uno strumento fondamentale per il successo dell'intero progetto software. 

c04-txt_matonti-02

Pressman ed Herron (1991) affermano che:
"I clienti hanno esigenze diversificate. Alcuni sanno bene ciò che vogliono; altri sanno ciò che non vogliono. Alcuni esigono di precisare ogni dettaglio, mentre altri si accontentano di promesse vaghe." E' in tale contesto che il saper ascoltare, l'esprimersi tenendo conto dell'interlocutore che ci sta di fronte, la volontà di comprendersi acquistano un rilievo più che unico nell'analisi dei requisiti. Le imprese hanno consapevolezza che eventuali malintesi o omissioni ed in generale una cattiva comunicazione possono compromettere il buon esito della realizzazione del sistema software inducendo a continui ed inutili rifacimenti delle stesse funzionalità o, peggio ancora, ad un punto di blocco del progetto stesso ed in ogni caso comportano una forte demotivazione delle persone coinvolte nello sviluppo del sistema software.

Una delle tecniche di raccolta dei requisiti volta a favorire la comunicazione tra cliente e sviluppatore è l'approccio FAST (Facilitated Application Specification Techniques) che promuove la formazione congiunta di un team di clienti e sviluppatori che collaborino per individuare le richieste che il sistema deve soddisfare proponendo elementi di soluzione.

c04-txt_matonti-03

In tale approccio il cliente viene considerato parte attiva del team di lavoro e con esso spesso si instaura un rapporto di collaborazione e di fiducia. In tal modo i conflitti che possono nascere in merito ai requisiti vengono risolti attraverso il dialogo ed il confronto continuo e diretto tra le parti. 

c04-txt_matonti-04

Fase di sviluppo

Indipendentemente dal modello di processo adottato, in questa fase sono sempre presenti le attività tecniche di progettazione, generazione del codice e test. Molti immaginano che lo sviluppatore software sia una persona che per svolgere il suo lavoro preferisce restare isolata dinanzi al suo computer e spesso si ritiene che questo sia anche il modo più proficuo di sviluppare software.

c04-txt_matonti-05

Nell'ambito della fase di sviluppo, molti esperimenti hanno dimostrato l'efficacia del "pair programmimg" quale pratica dello sviluppo software capace di migliorare la qualità del codice e ridurre il tempo di sviluppo. Tra le caratteristiche salienti del pair programming è importante evidenziare la necessità della presenza e collaborazione continua tra due sviluppatori software:un osservatore ed un driver.

c04-txt_matonti-06
Il primo controlla continuamente ciò che il driver scrive. Prende il controllo della tastiera, ma solo di comune accordo con il driver e all'occorrenza ottimizza il codice. Invece il driver scrive il codice, ascolta i suggerimenti dell'osservatore e lascia il controllo della tastiera quando necessario.
c04-txt_matonti-07

L'esperimento ha coinvolto studenti dell'ingegneria del software ed il risultato principale è che è stato registrato, a parità di tempo e di risorse, un incremento della qualità. Ciò è dovuto in particolare a 4 fattori:

  . Le persone riescono ad identificare e rimuovere un numero maggiore di difetti del software durante la fase di sviluppo e test.

  . L'architettura del sistema grazie al confronto tra i 2 programmatori, risulta essere più facile da comprendere

  . La discussione nella coppia accelera il processo di risoluzione dei problemi

  . Le persone riescono a realizzare una sorta di addestramento sul campo che consente loro di migliorare le capacità individuali più rapidamente favorendo il trasferimento di conoscenze.
Il "Pair programming" si basa su una forte collaborazione tra i componenti della coppia e su una fluente comunicazione che è la base del successo di tale pratica sia in termini di tempo e qualità del software che di soddisfazione e motivazione delle persone coinvolte. Infatti tale pratica incentiva la relazione e l'interazione tra colleghi (team communication) e riduce lo stress percepito dal team stesso.

 

c04-txt_matonti-08

 

topTOP

Questo sito utilizza cookie tecnici, anche di terze parti, per consentire l’esplorazione sicura ed efficiente del sito. Chiudendo questo banner, o continuando la navigazione, accetti le nostre modalità per l’uso dei cookie. Nella pagina dell’informativa estesa sono indicate le modalità per negare l’installazione di qualunque cookie.