Model razvoja softvera

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

  1. Loše upravljanje zahtjevima (loša ili nepostojeća specifikacija zahtjeva, zanemarivanje uloge korisnika itd.).
  2. Loše upravljanje izmjenama (zanemarivanje izmjena – ili su se odbacivale ili su se prekoračivali zadani rokovi).
  3. Loše osiguranje kvalitete (jednako kontrola kvalitete proizvoda, kao i kontrola kvalitete procesa).
  4. Nerealno planiranje rokova (sindrom 80/20: “prvih 80% projekta u planiranih 20% vremena, preostalih 20% u dodatnih 80% vremena!”).

Faze razvoja softvera

  1. Analiza i redizajn poslovnog procesa (definicijska faza)
  2. 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

  1. Brzo i sigurno odgovara na rast ili promjene zahtjeva – promjene su očekivane.
  2. Daje najveću poslovnu vrijednost za najmanje vremena (cost/benefit optimum).