Kolika je cena grešaka u fazi zahteva?

Objavljeno:

08.07.2012.

Kategorija:

Softverski Zahtevi



"Do not fear mistakes. You will know failure. Continue to reach out."

— Benjamin Franklin


Klijenti i softver

Za neke od nas, klijenti sede u svojim kancelarijama ili pretražuju internet preko svojih mobilnih uređaja i traže način da završe posao brže i efikasnije. Potreban im je pouzdan softver, koji radi bolje od svih ostalih, i koji će im omogućiti prednost na tržištu. Za druge, klijenti sede u svojim toplim domovima i kupuju njihove proizvode. Za treće, klijenti su kompanije koje naručuju softver specijalno kreiran za njih i od kog očekuju da im ubrza poslovne procese i ponudi realne podatke za donošenje ispravnih odluka.


Ko god da su klijenti, složićemo se da je cilj isti: dostaviti im kvalitetan softver koji radi tačno ono što žele i nudi rešenja za njihove stvarne potrebe.


Korenski razlozi uspeha i neuspeha

Jedan od prvih koraka prilikom rešavanja bilo kog problema je razumevanje korenskih uzroka zbog kojih problem nastaje.


U svetu se godišnje troše milijarde dolara/eura na razvoj softvera i, po nekim istraživanjima, preko 30% projekata nikada ne doživi realizaciju. Zašto?


Na internetu je moguće pronaći dosta podataka i istraživanja o uzrocima uspeha i neuspeha softverskih projekata. Uglavnom se posmatraju tri kategorije - uspešni projekti, projekti sa poteškoćama i neuspešni projekti. Najčešći razlozi, navedeni u istraživanjima, zbog kojih su projekti neuspešni ili imaju poteškoća su:


  • - Nekompletni zahtevi ~13%

  • - Nedovoljno učešće korisnika ~12%

  • - Nedostatak resursa ~10%


Zanimljivo je napomenuti da je pre 15 godina jedan od najčešće navođenih razloga bio "stalna izmena zahteva", sa ~13% i da je poslednjih godina ovaj razlog zastupljen u manje od 9% slučajeva.


Što se tiče razloga za uspeh, bilo malih ili velikih projekata, situacija je uglavnom sledeća:


  • - Učešće korisnika ~16%

  • - Podrška menadžmenta ~14%

  • - Jasnoća izjava i zahteva ~12%


Kada se ovi podaci pogledaju zajedno, dolazi se do zaključka da je za uspeh ili neuspeh softvera, bez obzira na njegovu svrhu, veličinu i cenu, najvažnije uraditi dobar posao na dva polja:


  • - Specifikacija softverskih zahteva

  • - Menadžment softverskih zahteva


Zanimljivo je, takođe, da se kodiranje veoma retko pominje u negativnom kontekstu, odnosno da faza implementacije gotovo nikada ne predstavlja problem. Bravo, programeri!


Visoka cena grešaka

Obzirom da je faza zahteva prva faza prilikom izrade softvera i da je, kako smo videli, najčešći razlog uspeha ili neuspeha projekta, jasno je da greške koje nastaju mogu biti veoma skupe. Kada bi mogle brzo, lako i ekonomično da se isprave, posledice možda i ne bi bile velike. Podaci najvećih svetskih kompanija pokazuju koji je relativni odnos pronalaženja greške prilikom različitih faza izrade softvera i cena njene ispravke.


Majti - Relativna cena grešaka u softverskom projektu

Kao što možemo da vidimo, ako cena otkrivanja i ispravljanja greške u fazi kodiranja ima vrednost 1, onda je cena pronalaženja greške prilikom faze zahteva do 5-10 puta niža; a cena u fazi održavanja može da bude i do 20 puta viša. Stoga, jasno se vidi da je cena pronalaženja i ispravljanja greške u fazi održavanja i do 200 puta viša nego pri fazi zahteva. Zanimljivo!


Razlog leži u činjenici da se mnoge greške koje su nastale u ranijim fazama primete tek prilikom testiranja ili održavanja, te je potrebno učiniti mnogo izmena ne bi li se one ispravile. Takođe, mnoge pretpostavke u fazi zahteva se ignorišu i ostavljaju za kasnije faze jer nije moguće odrediti ih, pa se i njihovo rešavanje obično odlaže.


Bilo kako bilo, greške koje se otkriju u bilo kojoj fazi, moraju se izmeniti u specifikaciji zahteva. Zahtevi su često izvedeni, povezani sa drugim zahtevima i svaka izmena utiče na mnogo aspekata čitavog projekta. Potrebno je pronaći ko je autor kog zahteva, razloge zbog kojih su prisutni, na šta sve utiču itd. Ukoliko nisu dobro specificirani i ukoliko ne postoji dokumentacija, nego se oslanjamo na prisećanje analitičara ili korisnika, cena se dodatno povećava, projekat stoji i svi postaju nezadovoljni.


Stoga je neophodno uložiti najveću dopustivu količinu vremena i truda za dobru specifikaciju zahteva i time uštedeti svo potencijalno izgubljeno vreme u kasnijim fazama na ponovno dizajniranje, kodiranje i testiranje; planiranje resursa, pomeranje rokova, nezadovoljstvo svih zainteresovanih, izmenu dokumentacije, marketinških i prodajnih planova.


Ipak je najvažnije klijentu dostaviti kvalitetan softver, na vreme i u okviru budžeta, koji zadovoljava njegove stvarne potrebe.



FB Komentari: