Lo sviluppo incrementale si base sull'idea di sviluppare una implementazione iniziale, esporla agli utenti e perfezionarla attraverso molte versione, fino a che non si ottiene il risultato richiesto.
In questo caso: specifica, sviluppo e convalida sono intrecciate anziché separate, con feedback veloci tra le varie attività.
Lo sviluppo incrementale è l'approccio più comune per sviluppare sistemi di applicazioni e prodotti software. Questo approccio può essere:
Lo sviluppo incrementale è migliore dell'approccio a cascata per quel tipo di progetti in cui è probabile che i requisiti cambino durante il processo di sviluppo. Questa modalità è simile a come affrontiamo i problemi: non abbiamo subito una soluzione finale ad un problema, ma giungiamo ad essa seguendo una serie di passaggi, se la soluzione non ci soddisfa, torniamo indietro e la riprendiamo per perfezionarla.
Caratteristiche di questo modello di sviluppo:
Pro | Contro |
---|---|
Il costo dell'implementazione delle modifiche dei requisiti è ridotto | Il processo non è visibile, i manager devono avere delle consegne regolari per misurare i progressi |
É più facile ottenere feedback dal cliente sul lavoro di sviluppo che è stato fatto | La struttura dei sistemi tende a degradarsi quando vengono aggiunti nuovi incrementi. Per ridurre il livello di degrado strutturale, i metodi agili consigliano un costante refactoring (miglioramento della struttura) del software |
É possibile consegnare in anticipo al cliente una versione utilizzabile del software, anche se non sono state incluse tutte le sue funzionalità | Nei sistemi grandi e complessi, dove diversi team cooperano per sviluppare diverse parti del progetto, le responsabilità devono essere definite in modo chiaro. Ciò richiede una pianificazione in anticipo |
Nella fase di progettazione ricopre una buona fetta di importanza il Riutilizzo del codice. Ovvero componenti software o applicativi software pre-esistenti vengono integrati al progetto che si vuole sviluppare per commissione. Le fasi principali dell'integrazione e della configurazione sono:
Statisticamente il metodo di sviluppo incrementale ha fatto si che venissero prodotti in percentuale maggiore progetti di successo e di maggiore produttività e meno inclini a difetti.
Lo sviluppo incrementale è utilizzato da modelli basati sullo Sviluppo iterativo ed evolutivo.