Per capire il tipo di lavoro offerto da Properzia è importante spiegare alcuni concetti relativi all’informatica e all’ingegneria del software, primo fra tutti la definizione di “ciclo di vita”.
Per ciclo di vita del software si intende un processo che scompone l’attività di realizzazione del prodotto in sottoattività, fra loro coordinate, che daranno come risultato il software stesso e la documentazione ad esso associata.
I concetti di ciclo di vita e di processo software, in letteratura e nella pratica di sviluppo, si possono far coincidere con la nascita dell’ingegneria del software, che determina un passaggio storico dallo sviluppo del software inteso come attività artigianale (affidata alla libera creatività dei singoli individui) a un approccio più industriale, in cui la creazione di programmi e sistemi software viene considerata come un processo complesso che richiede pianificazione, controllo e documentazione appropriati (come avviene in ingegneria).
Questo passaggio è imputabile all’aumentata complessità dei sistemi, all’avvento di un vero e proprio mercato del software, nonché a nuovi e più stringenti requisiti di qualità.
Le fasi principali del ciclo di vita del software, eseguite da uno o più sviluppatori, sono:
1. ANALISI
Questa fase serve a definire (il più precisamente possibile) il prodotto,
mediante un indagine preliminare del contesto in cui il software deve inserirsi,
delle caratteristiche o requisiti che deve possedere, dei costi e degli aspetti logistici della sua realizzazione.
Tale analisi si esplica in sottoattività tra le quali:
raccolta dei dati
fattibilità,
analisi e scelta del dominio applicativo,
requisiti,
architettura grafica, user experience, story telling, tramite colloqui tra cliente e sviluppatori.
Una volta completata l’analisi viene redatto il documento di specifiche funzionali che descrive le caratteristiche del sistema.
A valle di questa fase il cliente firma il contratto e la relativa documentazione.
3. IMPLEMENTAZIONE
E’ il momento dello sviluppo vero e proprio del software che si concretizza attraverso la programmazione ovvero la stesura di programmi.
L’implementazione comprende sia lo sviluppo dei singoli moduli sia l’integrazione dei medesimi per formare il sistema complessivo.
Il prodotto finale della fase di implementazione è chiamato versione alfa che diverrà versione beta dopo aver subito correzioni e miglioramenti nella fase di collaudo.
La fase di implementazione coinvolge tecnologie relative al prodotto e al processo che lo realizza.
Relativamente al prodotto lo sviluppo necessita di uno o più linguaggi di programmazione (librerie, scripting, basi di dati, internet).
6. MANUTENZIONE
Le attività comprese in questa fase sono di assistenza e manutenzione.
Assistenza:
ossia la cura del codice, gli aggiornamenti, i bug fix, l’implementazione di nuovi framework, browser compliance, add-on update.
Manutenzione:
vale a dire attività come la correzione di ulteriori errori attraverso patch,
adattamento del prodotto a nuovi sistemi operativi, estensione delle funzionalità.
Ogni modifica al prodotto comporta la necessità di nuovi collaudi, mirati a verificare le eventuali nuove funzionalità e il controllo di quelle preesistenti (per accertare che non siano state compromesse dalla nuove modifiche).
Successivamente viene concordato un incontro, di persona o in videoconferenza, per conoscere il cliente e le sue esigenze.
La conclusione si concretizza nell’emissione di un preventivo..