Tarkvaraarenduses on muutused vältimatud, kuna äritegevus, tehnoloogiad ja platvormid pidevalt muutuvad. Need muutused nõuavad nõuete uuesti analüüsimist, olemasoleva funktsionaalsuse ümbertegemist ja uute võimaluste lisamist, mis suurendavad arenduskulusid.
Kulude vähendamiseks tuleks muudatusi ette näha ja neid teha võimalikult varakult, näiteks prototüüpide abil, mis võimaldavad kliendil süsteemi omadusi varakult hinnata. Samuti on tõhus järk-järguline arendus ja üleandmine, mis võimaldab muudatusi teha osades, mida pole veel lõplikult välja töötatud.
Iteratiivne ja inkrementaalne arendus
Inkrementaalne arendus tähendab süsteemi loomist etappide kaupa, kus iga valminud osa liidetakse olemasolevaga. Alternatiiviks oleks kõik osad korraga valmis teha ja siis integreerida.
Iteratiivne arendus keskendub pidevale täiustamisele, parandades ja muutes olemasolevaid osi. Alternatiivina võiks kõik kohe ideaalselt valmis planeerida.
Tegevuskäik
1. Määratakse üldised nõuded ja jaotatakse need tähtsuse järgi.
2. Otsustatakse tarkvara tarneosad, kusjuures iga tarne lisab süsteemile uue funktsionaalsuse.
3. Alustatakse kõrgeima prioriteediga osadest, detailiseerides neid sobiva protsessi abil.
4. Töös oleva osa nõuded on fikseeritud, kuid vajadusel saab hiljem muudatusi teha.
5. Valmis osa tarnitakse kliendile, kes saab seda testida ja anda tagasisidet edasiste arenduste jaoks.
6. Uued osad liidestatakse olemasoleva süsteemiga ning nende arenduseks võib kasutada erinevaid protsesse.
Selle Eelised:
- Väiksemad kulud ja vähem korduvat analüüsi võrreldes koskmudeliga.
- Kliendi tagasiside on lihtsam saada, kuna nad näevad valminud osi ja saavad neid kommenteerida.
- Tarkvara saab kiiremini kasutusele võtta, pakkudes kliendile varajast kasu.
Ja sellega kaasnevad Puudused:
- Progressi jälgimine on keeruline, kuna pidev dokumenteerimine pole otstarbekas.
- Süsteemi struktuur võib muutuda ebaühtlaseks, nõudes lisatööd ja refaktoreerimist.