Svjetske statistike kazuju da prosječni softverski projekt za 89% premašuje planirane troškove, a rokove za čak 122% (izvor: Standish Group).
Osnovni razlozi neuspjeha softverskih projekata
- Loše upravljanje zahtjevima (loša ili nepostojeća specifikacija zahtjeva, zanemarivanje uloge korisnika itd.).
- Loše upravljanje izmjenama (zanemarivanje izmjena – ili su se odbacivale ili su se prekoračivali zadani rokovi).
- Loše osiguranje kvalitete (jednako kontrola kvalitete proizvoda, kao i kontrola kvalitete procesa).
- Nerealno planiranje rokova (sindrom 80/20: “prvih 80% projekta u planiranih 20% vremena, preostalih 20% u dodatnih 80% vremena!”).
Faze razvoja softvera
- Analiza i redizajn poslovnog procesa (definicijska faza)
- Razvoj aplikacija (razvojna faza)
Karakteristike evolucijskog modela
Evolucijski model razvoja softvera odgovor je na glavne faktore rizika u dosadašnjim softverskim projektima. Kako bismo odgovorili na glavne faktore rizika, posebnu pozornost posvećujemo korisničkim zahtjevima, nadogradnji i promjenama zahtjeva, a istovremeno i dosljednom poštivanju rokova.
Softver se razvija iterativno – u ciklusima, gdje svaki ciklus dograđuje funkcionalnost aplikacija. Budući da korisnik u svakom od ciklusa ocjenjuje prihvatljivost rješenja i može postaviti dodatne zahtjeve, jasno je da će ovakav pristup dati rezultat koji odgovara stvarnim potrebama korisnika.
S druge strane, fiksni vremenski okvir (timebox) svakog od ciklusa osigurava da proces ostane kontroliran. Zbog toga su i korisnik i projektant prisiljeni stalno procjenjivati stvarnu poslovnu vrijednost i stvarnu cijenu svakog od zahtjeva. Ne može se desiti da manje bitan zahtjev blokira razvoj i isporuku aplikacija. Niti u jednom trenutku – dok se rješavaju tehnička pitanja – neće se izgubiti iz vida poslovni proces koji je svrha izgradnje aplikacija.
Korisna, poslovno opravdana funkcionalnost dobija se vrlo brzo, jer se prioritetni i realni zahtjevi uvijek rješavaju prvi. U praksi se nakon svakog ciklusa zahtjevi preispituju i dograđuju i na taj način razvoj se kontrolira i usmjerava u željenom pravcu.
Treba naglasiti i to da je rezultat svakog razvojnog ciklusa (timebox-a) – ne model ili prototip – nego stvarna funkcionalna aplikacija, spremna za korištenje.
Prednosti opisanog modela
- Brzo i sigurno odgovara na rast ili promjene zahtjeva – promjene su očekivane.
- Daje najveću poslovnu vrijednost za najmanje vremena (cost/benefit optimum).
