Il Processo di sviluppo software e il ruolo del Project Manager (PM)

Il Processo di sviluppo software e il ruolo del Project Manager (PM)

Il Processo di sviluppo software

Il Processo di sviuppo software in informatica, ed in particolare in ingegneria del software, si riferisce al modo in cui lo sviluppo di un processo si scompo ne in fasi. Dall’origine dell’informatica sono state usate diverse tipologie di progettazione software che possiamo categorizzare in due macro-categorie. La prima riguarda le tradizionali metodologie utilizzate, che riassumono lo sviluppo di un progetto in cinque diverse parti, eseguite in maniera sequenziale come nella metodologia waterfall (a cascata). La seconda si basa invece su un modello iterativo e riguarda i processi di sviluppo che permettono di tornare ciclicamente sulle varie fasi del procedimento di sviluppo.

Il Processo di sviluppo software e il ruolo del Project Manager (PM)

Il Processo di sviuppo software nasce alla fine degli anni sessanta grazie all’idea che lo sviluppo software non fosse più una cosa artigianale e quindi una nicchia per amanti del settore, ma avesse delle potenzialità. All’avvento di un vero e proprio mercato e alla richiesta di più qualità nello sviluppo software, come ad esempio per il controllo di centrali energetiche e sistemi aerospaziali, si necessitava di un approccio molto più industriale. Questo tipo di approccio considerava lo sviluppo software come un processo complesso che richiede pianificazione, controllo e documentazione appropriata.

Esistono diversi modelli per il processo di sviuppo software i quali prevedono una scomposizione del processo di sviluppo in cinque fasi:
1. La fase di analisi prevede lo studio del contesto nel quale il progetto software andrà ad inserirsi, delle caratteristiche o dei requisiti che deve esibire e degli eventuali costi ed aspetti logistici della sua realizzazione. Questa fase ha lo scopo di definire il problema da risolvere.
2. La fase di progettazione definice le linee essenziali della struttura del prodotto software in funzione ai requisiti evidenziati nell’attività di analisi, con lo scopo di definire la soluzione al problema in maniera più dettagliata.
3. Il collaudo o testing consiste nella verifica e nella validazione del software, in modo tale che soddisfi i requisiti individuati nell’analisi. L’infrastruttura di supporto utilizzata in tale fase è detta ambiente di testing.
4. La pubblicazione e messa in opera prevede la consegna della versione definitiva del prodotto software dopo aver superato con successo le verifiche della fase di collaudo.
5. La fase di manutenzione consiste nello svolegere operazioni di correzzione del prodotto software successive al rilascio, al fine di correggere ulteriori errori. Queste correzioni possono venire efettuate tramite il rilascio di patch (manutenzione correttiva), adattamento a nuovi ambienti operativi (manutenzione adattativa o migrazione di ambiente), estensione delle funzionalità (manutenzione evolutiva) o conversione dell’implementazione secondo una diversa struttura (es. migrazione di framework). Un aspetto importante da non sottovalutare è l’incisione sui costi che ricopre questa fase rispetto alle altre, che spesso si aggira intorno al 60% del totale.

Quasi tutti i modelli di ciclo di vita del software seguono queste sei fasi principali. Le distinzioni fra le diverse metodologie però, vengono evidenziate da altri aspetti, quali:

  • l’enfasi relativa che si attribuisce a ciascuna fase;
  • l’individuazione degli attori specifici incaricati di ciascuna fase;
  • l’ordine in cui le fasi vengono svolte.

Il primo modello teorizzato del processo di sviuppo software è la metodologia a cascata (Waterfall) che prevede l’esecuzione sequenziale delle varie attività.
Il modello a cascata è uno dei metodi più tradizionali del ciclo di vita dello sviluppo software. Questo metodo si può paragonare alla tipica produzione manifatturiera nella quale il passaggio del prodotto da una catena di montaggio all’altra viene eseguita in maniera lineare ed ogni fase fornisce un output che viene usato come input in quella successiva.

Metodologia Waterfall (a cascata)
Metodologia Waterfall (a cascata)

Secondo la visione più comune nella moderna ingegneria del software, il modello a cascata non è più adatto ad essere processi di sviluppo di applicazioni. Fra gli elementi che hanno contribuito al tramonto di questo modello si possono notare:

  1. l’aumento di complessità delle applicazioni;
  2. l’introduzione delle interfacce grafiche che hanno portato all’attenzione dei progettisti questioni di usabilità precedentemente di scarso rilievo
  3. l’avvento di nuovi paradigmi di programmazione e nuove metodologie di analisi e progetto, in particolare quelle legate alla programmazione ad oggetti.

In pratica si è affermata una vasta classe di modelli evolutivi basati sull’idea di coinvolgere maggiormente il cliente, mirando a sottoporgli periodicamente versioni parziali o prototipi del prodotto finale. Questa linea di pensiero ha dato nascita alle cosiddette metodologie agili che propongono un approccio meno strutturato ma più focalizzato sull’obiettivo di consegnare al cliente software funzionante e di qualità in tempi brevi.

Metodologia Iterativa
Metodologia Iterativa

Il Ruolo del Project Manager

Chi ricopre il ruolo di Project Manager(PM) ha l’importante compito della valutazione, pianificazione, realizzazione e controllo di un progetto. L’obiettivo principale del PM è quello di raggiungere gli obiettivi di progetto, assicurando il rispetto dei costi, dei tempi e della qualità concordati, oltre al raggiungimento della soddisfazione del cliente. Un bravo project manager deve essere abile a interpretare gli obiettivi reali del progetto dal suo inizio sino alla sua conclusione, assicurandosi che le rischieste del cliente vengano soddisfatte rispettando i costi stabiliti nella fase preliminare.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *