Che cos’è un processo di sviluppo software?

Il software si riferisce sia ai sistemi operativi dei computer stessi, sia ai programmi e alle applicazioni progettati per essere eseguiti sui computer. Lo sviluppo del software è la progettazione e la scrittura di software, compreso lo sviluppo dell’architettura del programma e dell’interfaccia utente e la programmazione del codice sorgente. Il processo di sviluppo del software è l’approccio adottato per lo sviluppo del software e ci sono molti modelli ben sviluppati per questo processo. In generale, contengono variazioni sulle fasi di esecuzione di un’analisi dei requisiti, specificazione del prodotto, creazione dell’architettura software, implementazione del codice, test e documentazione del prodotto, fornitura di formazione e supporto e mantenimento e miglioramento del rilascio. Qualunque sia il modello utilizzato, il processo di sviluppo del software a volte può essere finalizzato allo sviluppo di nuovi prodotti, mentre altre volte è focalizzato sulla revisione – ad esempio, quando viene creata una release point per correggere i bug – e altre volte può essere la preparazione per una nuova versione del software esistente, aggiungendo funzionalità significative e offrendo correzioni di bug.

Il modello a cascata per il processo di sviluppo del software è un modello iniziale e anche con limitazioni intrinseche. Prescrive un approccio allo sviluppo rigorosamente unidirezionale, muovendosi a senso unico attraverso la sequenza delle fasi di sviluppo del software, senza mai tornare a una fase precedente o modificare le specifiche, una volta iniziato lo sviluppo. Il modello a spirale, al contrario, utilizza un processo iterativo, in cui una sequenza di requisiti, seguita da progettazione, implementazione e infine test è seguita da un secondo ciclo in cui vengono aggiunte più funzionalità e componenti. Nei modelli agili del processo di sviluppo del software, di cui esistono numerosi, i progetti di sviluppo sono divisi in sottoinsiemi della durata di una settimana o di un mese chiamati timebox, ciascuno dei quali passa attraverso una versione miniaturizzata di un intero processo di sviluppo del software, incluso un rilascio a la fine. Altre caratteristiche dello sviluppo Agile includono la vicinanza del team che collabora e l’uso dei clienti per rispondere al prodotto durante l’intero processo.

Il processo di sviluppo del software può essere radicalmente diverso per una grande azienda e per un singolo programmatore. Ad esempio, un editore di software commerciale, come Sibelius Software®, parte di Avid Technology®, potrebbe dedicare diversi anni al processo di sviluppo del software per ogni versione e rilasciare un’applicazione software di centinaia di MB e utilizzata da migliaia di persone . D’altra parte, un individuo come Roman Molino Dunn, The Music Transcriber®, programmando un plug-in in risposta al desiderio di qualcuno di poter fare qualcosa di diverso con un software commerciale, potrebbe creare un software di 4 kb entro un’ora dall’avere l’idea, in un caso estremo.