недеља, 14. новембар 2010.

Softverski zahtevi- Tehnike prikupljanja softverskih zahteva


Softverski zahtevi






Tehnike prikupljanja zahteva






Autor Mr Dragan Damjanovic                                                                                           



1. UVOD     ........................................................................................ 3
1.1. Šta su zahtevi ........................................................................... 3
1.2. Zašto prikupljamo zahteve................................................. 3
1.3. Ko prikuplja zahteve .............................................................. 4
2. KAKO SE PRIKUPLJAJU ZAHTEVI  ........................... 4
2.1. Intervju ....................................................................................... 4
2.2. Analiza dokumenata ............................................................... 4
2.3. Brainstorming ......................................................... 4
2.3.1. Deep Dive ............................................................. 6
2.4. Radionica zahteva ................................................... 6
2.5. Prototipi .................................................................. 7
2.6. Scenariji .................................................................. 7
2.7. Modelovanje .......................................................... 7
3. ZAKLJUČAK ............................................................................... 7







TEHNIKE PRIKUPLJANJA ZAHTEVA
Rezime: zahtev je izraz željenog ponašanja; prikupljaju se da bi se razumeli potrebe i problemi naručioca; prikupljaju ih analitičari zahteva ili analitičari sistema i pri tom koriste najrazličitije tehnike, a jedna od njih je i brainstorming (bombardovanje idejama); u ovoj tehnici svi učesnici iznose ideje; na taj način pokušavaju doći do rešenja spontano.
Ključne reči: zahtevi, Brainstorming, radionica, ideja, Joint Application Development (JAD), Brainwriting.
1. UVOD
1.1 ŠTA SU ZAHTEVI?
Svaki naručilac ima određeno shvatanje o tome šta sistem treba da radi kada zahteva gradnju novog sistema. To šta sistem treba da radi, odnosno izraz željenog ponašanja predstavlja zahtev. Na primer, naručilac želi da u svojoj kompaniji ugradi sistem za generisanje platnih listića. Uokviru toga on može, ukoliko želi, izraziti zahtev da se listići izdaju svake dve nedelje. Pored toga može zahtevati da unutar kompanije sa više različitih lokacija pristupa sistemu za obračun zarada. Jednom rečju zahtev predstavlja izraz željenog ponašanja. Zahtev se bavi objektima ili entitetima , stanjima u kojima oni mogu biti, kao i funkcijama koje se izvode radi promene stanja ili osobina objekta.
1.2 ZAŠTO PRIKUPLJAMO ZAHTEVE?
Ako se žele razumeti potrebe i problemi koje imaju naručioci onda se pristupa definisanju zahteva, jer je cilj faze definisanje zahteva razumevanje tih realno postojećih problema i potreba. Kroz zahtev se označavaju ponašanja kakva naručilac želi, ali ne i kako će to ponašanje biti ostvareno. Da bi se raspravljalo o rešenju problema prvo je potrebno jasno definisati koji je to problem. Ovo je neophodno jer su i brojna istraživanja ukazala na činjenicu da se kao najčešći uzrok neuspeha projekata javlja pojava loše formulisanih zahteva. S tim u vezi ide i proces definisanje zahteva, tj. činjenica da nijedan drugi deo nije toliko teško naknadno ispravljati. Ukoliko greške u zahtevima nisu otkrivene i ispravljene tokom ranih faza procesa razvoja, njih ne samo da je teško kasnije ispraviti, nego je ovaj proces izuzetno skup. Ako bi otkrivanje i rešavanje problema na početku izrade projekta koštalo jedan dolar, tada bi ovaj isti proces nakon isporuke sistema košta čak 200 dolara. Stoga vredi izdvojiti vreme i sredstva na razumevanje problema i konteksta problema kako bi se na početku dobili ispravni zahtevi. Ukratko više od polovine problema bi se moglo rešiti na početku ako se stvari jasno postave na svoje mesto. Programeri mogu sjajno uraditi svoj posao, ali je trud uzaludan ako ne urade ono što je traženo od njih.



1.3 KO PRIKUPLJA ZAHTEVE?
Analitičar zahteva ili analitičar sistema vrši evidentiranje zahteva. Prvo radi sa naručiocima na izvođenju zahteva i to tako što postavlja pitanja, ispituje aktuelno ponašanje ili demonstrira slične sisteme. Nakon toga se zahtevi evidentiraju u sklopu modela ili prototipa. Onda se tek, kada se postigne dobro razumevanje zahteva, izrađuje specifikacija u kojoj se odlučuje koji će delovi zahtevanog ponašanja biti primenjeni u softveru.
2. KAKO SE PRIKUPLJAJU ZAHTEVI?
Postoji nekoliko desetina tehnika za prikupljanje zahteva, ali se samo njih nekoliko u praksi pokazalo kao najefikasnije. One se mogu i međusobno kombinovati a sve u cilju prikupljanja što kvalitetnijih zahteva.
2.1 Intervju se koristi za prikupljanje informacija i to tako što se ispitaniku, tj. intervjuisanom postavljaju pitanja u usmenom ili pisanom obliku. Međutim na kvalitet dobijenih informacija umnogome utiču brojni faktori koji su povezani sa intervjuisanim. Misli se na njegovo razumevanje, iskustvo, predispozicije, pristrasnost,...
2.2 Analiza dokumenata: poslovni planovi, marketing planovi, ugovori, zahtevi za predloge, izveštaji o radu se podrobno analiziraju u cilju efikasnog izvlačenja zahteva.
2.3 Brainstorming (bombardovanje idejama) uključuje generisanje, smanjivanje ideja. Prvo se identifikuje što više ideja a onda se rangiraju one najkorisnije. Ovo je dragocena tehnika jer se njome podstiče originalno razmišljanje i neobične ideje. Mesto, tj. lokacija takođe nije nevažna stvar. To mora biti prostrana, tiha soba ili neko novo inspirativno mesto. Takođe treba obezbediti što više papira i olovaka u različitim bojama. Pošto je potrebno i dosta vremena (sat do dva) preporučuju se i dodaci u obliku kafe i grickalica. Najbolje je krenuti rano ujutro, recimo oko 9h, kada ljudi još uvek nisu opterećeni problemima koje im donosi novi radni dan. Korisno je isto tako učesnike branstorminga upoznati sa temom nekoliko dana pre kako bi mogli razmišljati o idejama. Pravila brainstorminga su: nema osporavanja ideja- eventualno tek na kraju jer neke ideje na početku mogu izgledati loše, ali posle mogu doneti veliku korist ako se modifikuju; ide se na veliki broj ideja a ne na njihov kvalitet- treba zapisati bit ideje i ne treba je odmah razrađivati, to se može učiniti i kasnije, učesnici misle slobodnije jer nisu fokusirani na jednu ideju i lakše je napraviti listu dobrih ideja kada je veća lista i ponuda ideja; ideje se nadograđuju jedna na drugu- uvek je lakše nadograditi se na tuđu ideju nego smisliti originalnu; treba podsticati originalne ideje- bez obzira koliko odudaraju od poznatih one, te lude ideje mogu biti vrlo stimulativne za nove tokove misli učesnika; svaka osoba i svaka ideja imaju jednaku vrednosti- ovaj princip je obavezan zbog dobijanja ideja od što šireg kruga ljudi.
Alex Osborn je sredinom prošlog veka osmislio ovu tehniku. Najveći rizik je da nećete biti dobro pripremljeni za ovakav rad: tako možete obeshrabriti nove učesnike, ali i sebe misleći da nemate dovoljno ideja. Poželjno je i da najpre treba biti učesnik brainstorminga pre nego se upustite u organizaciju i pokušate sami da vodite radionicu. Definiciju je dao Alex Osborn u kojoj kaže da je ovo konferencijska tehnika pri kojoj grupa pokušava naći rešenje za specifičan problem skupljanjem svih ideja učesnika spontano. Grupa treba imati izmedu 5 i 15 ljudi i svoga koordinatora(facilitatora) koji ce voditi radionicu, upoznati učesnike s temom, svrhom radionice i pravilima.
Takođe, mora se voditi racuna o ohrabrivanju ucesnika, te o startu brainstorminga kada je postignuto pravo raspoloženje, do kojeg možete doći zanimljivim uvodom. Ideje je najbolje zapisivati kako su izrečene, ako ima puno ideja, može se i angažovati dodatna osoba za zapisivanje ideja. Trebaju se zapisati sve ideje bez obzira koliko nevažne ili lude izgledale na prvi pogled, jer mogu podstaći neku novu ideju. Trajanje brainstorminga može biti od nekoliko minuta do 2 sata, s obzirom na temu i na iskustvo učesnika. Ako brainstorming potraje, potrebno je raditi pauze da bi održali učesnike svežima. Pauze često služe učesnicima i za podsećanje i ponovno razmišljanje o problemima. Kod manjih grupa, radionica može teći u razgovoru s nabacivanjem ideja za jednim stolom, za kojim svi sede u krugu, punim papira na kojima svi pišu ideje u isto vreme. Kod većih grupa ne mogu se učesnici staviti u krug za jedan sto, već voditelj stoji ispred svih, a ideje se pišu na papire i posle se skupljaju jedna po jedna. Na radionici može doći do vremena tišine, kada nakon puno izrečenih ideja, dođe do zastoja. Tada se treba vratiti na ideje koje su već zapisane i probati nadograđivati daljnje ideje s postojećima. Ako je jedan od učesnika voditelj on/ona treba podsticati ideje. Nadređeni može pokrenuti lavinu ideja govoreći na početku neku potpuno ludu ideju kako bi ohrabrio učesnike.
Najoptimalniji broj učesnika brainstoriminga bi bio 8, tada se svi mogu držati u „jednoj diskusiji“; vec kada broj pređe 10, previše ih je, jer se neki ljudi jednostavno pogube u masi. Tada se više ne mogu imati na oku svi i neki od njih, mogu proci da ne daju nikakav doprinos. Na kraju se treba vratiti idejama i oceniti ih, ili jednostavno ostaviti ideje otvorenim do sledećeg sastanka ili sledeće faze brainstorminga. Na završetku radionice se može reći da se mogu slobodno javiti, ako kasnije u toku dana ili nedelje budu imali ideje. Nakon ovakve radionice potrebno je sve skupljene ideje staviti na papir. Najpre treba odbaciti ideje koje se ponavljaju i ostaviti samo one originalne. One ideje koje nemaju šansu za realizaciju, treba takođe odstraniti. Kada imate listu potencijalnih inovacija, poređajte ih po kriterijumu, mogu li biti upotrebljene i u kojem roku. One ideje koje su najbliže realizaciji i koje se brzo mogu napraviti stavite na vrh liste. Ono što moraju shvatiti svi učesnici brainstorminga je da ne trebaju imati strah od greške. Strah od greške na poslu, za zaposlenika je jedna od najvecih prepreka. U sobi mogu zajedno sediti zaposleni sa svojim nadređenima i ne smeju se bojati iznositi najluđe ideje koje im padaju na pamet. Grupa mora biti saglasna da neće kritizirati ideje i učesnika koji je ideju izneo.
Znači, ideje koje bi mogle biti protumačene kao greške su i poželjne, jer svaka ideja može doprineti da sled misli učesnika krene u novom pravcu koji će generisati nove ideje. U slučaju kada je postignuta i „sigurna“ klima, svi ce moći slobodno iznositi svoje ideje. Ovakav sastanak je takođe dobra prilika za menadžera da dobije ideje od svojih zaposlenih koje inace ne bi dobio, ako postoji ikakav strah zaposlenih od nadređenog. Veliki rizik, zbog kojega ljudi mogu prestati prijavljivati svoje ideje nastaje ako neko ukrade ideju ili se pretvara da je ideja njegova. U tom slučaju do izražaja dolazi koordinator koji takve slučajeve treba u korenu sprečiti. Na kraju sastanka treba dogovoriti nekakav rok do kada će učesnici dobiti odgovor, hoće li neka od ideja biti upotrebljena. Ako odgovor izostane, učesnici ove radionice neće s istim žarom posjetiti sledeći brainstorming. Ovakav pad morala je normalan ako se zaposelnima čini da njihove ideje idu direktno u koš, bez proučavanja i istrage je li njihove ideje moguće upotrebiti. Posle brainstorming radionice korisno je zapisane ideje poslati svim učesnicima i tražiti da ih detaljnije opišu. Takođe ovaj celi spisak može se poslati i široj grupi zaposlenih, koje bi uspešna brainstorming radionica podstakla na njihove ideje, možda one koje bi se nadograđivale na one nastale u radionici. Dobar primer radionice mogao bi se tako širiti po firmi, što bi bila preporuka za novu radionicu u kojoj bi novi članovi mogli biti oni koje je zainteresovala prošla radionica. Tokom brainstorminga korisno je zapisivati ideje koje smo dobili i dodavati poboljšanja na koja smo upućeni, a i pisanje na tabli pomaže da se kasnije vratimo na te ideje.
Ono što je zapisano na tablama je najbolje odmah fotografisati i spremiti u brainstorming dokument. Ako postoji mogućnost, brainstorming radionice se mogu i snimati kamerom, da se ne bi izgubila neka dragocena ideja ili neki njen detalj. Ako niste zadovoljni rezultatima, nakon brainstorminga možete postaviti sledeća pitanja: jesu li učesnici bili preumorni, nemaju li vere u proces (ne vjeruju da će njihove ideje biti implementirane), možda je problem u nejasno definisanom cilju radionice?
Brainwriting tehnika se koristi za istovremeno generisanje ideja u grupi za jedan problem bez govora. Način na koji se izvodi je prilično jednostavan: učesnici sede za stolom, svako s praznim listom papira, na sredini stola je još jedan papir koji svi mogu dohvatiti. Najpre se opiše problem koji se treba rešiti ili tema iz koje se traži ideja. Na početku svatko na svoj papir skicira ili opisuje svoju ideju i zatim stavlja svoj papir na sredinu stola. Nakon toga svako nasumično uzima papire sa sredine stola i nadograđuje se na ideju koju nalazi na papiru dopisujući svoje komentare. Po završetku vraća papir u sredinu i uzima novi. Pri nadograđivanju na ideje koje su već napisane, često sudionicima padaju na pamet i nove ideje. Naravno da se ovaj primjer može preneti i na intranet kako bi se brainwriting proširio na veci broj ljudi.
2.3.1 Deep Dive je brainstorming tehnika za brzo rešavanje problema i stvaranje i kreiranje ideja. Danas se često koristi za inovacije i poboljšanje procesa i usluga i to u sledećim oblastima: kulturi, liderstvu, organizaciji i dr. Primenom metodologije Deep Dive postiže se poboljšanje performansi timova.
2.4 Radionica zahteva je dobra tehnika za prikupljanje zahteva. Njome se postiže konsenzus kada su u pitanju posebni zahtevi. Traju jedan ili nekoliko dana i uključuju timski rad. Troškovi radionice su često niži od troškova višestrukih intervjua. Vrlo su dinamične i kooperativne, uključuju sve korisnike i samim tim ukidaju oganizacione granice, ali i pomažu u formiranju pravilnog stava prema promenama. Joint Application Development (JAD) radionica je metod za razvoj zahteva kroz koji kupci, korisnici i programeri rade zajedno radi izrade specifikacije zahteva koja odgovara potrebama obe strane. Ključna ideja je da se organizuje tim sastavljen od korisnika, menadžera, analitičara. Primenom ove tehnike u mnogome se mogu smanjiti troškovi i vreme prikupljanja podataka i analize. U JAD-u su zastupljene sve zainteresovane strane i otuda se svi konflikti i neslaganja mogu identifikovati u fazi definicije problema. Međutim, postoje i nedostaci ove tehnike, a to su da jaki ili uticajni korisnici mogu lako da dominiraju sastancima i to može dovesti do toga da dođe do iskrivljene slike o potrebama korisnika. Na početku se prvo organizuje JAD tim, koji mora imati svog zapisničara koji zapisuje sve razgovore i sastavlja potrebna dokumenta. Tu je i moderator koji je obično viši sistem analitičar. Beleške se vode u JAD radnoj svesci a cilj ove sveske je da se pomogne članovima tima da razumeju predloženi projekat. Sveska mora biti tako dizajnirana da olakša prikupljanje beležaka. Da bi se održavale JAD radionica potrebno je obezbediti i objekat gde će se održavati sastanci. To je najčešće konferencijska sala dovoljno velika da može da primi sve učesnike i opremljena tablom, grafoskopom, video bimom, projektorom ili računarom za elektronsko vođenje sednice. JAD sesija počinje pregledom materijala prikupljenih u toku pripremne faze. Moderator je dužan da efektivno upravlja vremenom sednice i na taj način vodi računa da tim ostane fokusiran na tačke dnevnog reda, da podstakne sve članove da učestvuju i da generiše sve eventualne konflikte koji mogu nastati tokom sednice. Tim je obično sastavljen od netehničkog osoblja, važno je da sistem analitičari smanje korišćenje tehničkih termina. U toku brainstorminga moderator može zatražiti od JAD tima da predloži moguće uzroke problema ili podproblema. Vreme brainstorminga je ograničeno na uglavnom pola sata i tokom ovog perioda članovi tima evidentiraju svoje ideje. Ponekad tim može biti podeljen i na nekoliko podbrainstorming timova a cilj je da se vidi koji pod-tim može predložiti najviše ideja. Nakon ovoga se tim deli na nekoliko pod-grupa.
Prva grupa istražuje ideje sa prikupljenih lista, druga grupa može organizovati dodatne brainstorminge kako bi se prodiskutovali i ostali pod-problemi i konflikti sve do postizanja konačnog konsenzusa. Konsenzus ideje se tabelarno prikazuju i dostavljaju JAD pod-grupi za povratne informacije koja i predstavlja konačne rezultate. Završni izveštaj rezimira sve diskusije, činjenice, saznanja i zaključke i on se formira nakon završene JAD sednice. Ovaj izveštaj u sebi sadrži i izgrađen plan akcije za razvoj sistema. Po ovom izvoru (http://www.hit.ac.il/staff/leonidm/information-systems/ch14.html) ne postoji softver koji je namenjen za podršku JAD sesije.
2.5 Prototipi ilustruju mogućnosti sistema za korisnike i dizajnere. Oni (prototipi) ponekad ostavljaju utisak kao du su programeri daleko odmakli u svome radu i na taj način daju korisnicima preterano optimističan prikaz. Vrlo efikasno se mogu kombinovati sa ostalim tehnikama, kao sa JAD.
2.6 Scenariji su neka vrsta papirnog prototipa. Kupci, korisnici ili programeri počinju crtajući slike ekrana, dijaloga, toolbar-ova i drugih elemenata koje bi softver trebao obezbediti. Scenariji su ekonomični jer eliminišu rizike i visoke troškove prototipa. Srodna tehnika je i pripovedanje koja podrazumeva kratkih članaka u kojima se planiraju novi proizvodi i usluge.
2.7 Modelovanje je prikazivanje realnog stanja u cilju stvaranja lakšeg razumevanja pomoću modela. Ponašanje se dodeljuje fizičkoj komponenti planiranog sistema.
3. ZAKLJUČAK
Zahtevi koji su loše formulisani mogu prouzrokovati neuspeh projekta. Stoga, analitičar zahteva, ili analitičar sistema ima veliku odgovornost. Na sreću veliki je broj tehnika koje omogućuju analitičaru da kroz zahteve što vernije prikaže potrebe i probleme korisnika i naručilaca. Tehnike se mogu i međusobno kombinovati, što pred analitičara postavlja još jedan zadatak a to je dobro poznavanje izvođenje svake ponaosob kako bi u kontaktu sa klijentima pokazao da dobro poznaje problematiku kojom se bavi. Ovo naročito dolazi do izražaja kada je u pitanju brainstorming kada analitičar nije tu samo da bi prikupio zahteve. On mora i animirati učesnike da daju sve od sebe i da pruže maksimum u prezentovanju svojih ideja, da izbegnu eventualne konflikte ili sukobe. Stoga mora uvek biti ispred učesnika i unapred predviđati šta će se tokom sesije događati kako bi sesijom postigao što bolje rezultate.





References:
1.             http://www.link-elearning.com
6.            http://issuu.com/tbul/docs/imam-ideju
7.            http://www.imam-ideju.com/








петак, 08. октобар 2010.

Evo primera aplikacije koja bi mogla poslužiti za, ne samo dobro planiranje časa, nego i za procenu učenikovih znanja i evaluaciju rada.
Aplikacija sadrži podatke o Kursu ili predmetu i Studentima ili učenicima. Te podatke svaki nastavnik za svoje učenike unosi u bazu. Pored toga unosi i podatke o načinu ispitivanja, kao i o postignutim rezultatima učenika bilo na pismenom, kontrolnom, usmenom ili sličnom zadatku. Nakon svakog takvog ispitivanja nastavnik može odštampati izveštaj i isti predati učeniku.
Ovo me podseća na kupovinu robe u prodavnici i izdavanje fiskalnog računa, koji vam pomaže da u svakom trenutku znate šta ste kupili, gde, kada, od koga, itd. čak i kada izađete iz prodavnice, pa ako sačuvate račun i mesecima nakon kupovine.
Možda je banalno poređenje, ali ono nam daje do znanja da nam još uvek više znači trgovina nego obrazovanje.
Jedna najobičnija kupovina je tehnološki ili informatički osavremenjenija od nastavnog procesa koji se još uvek u 21. veku kod nas zasniva na "Sedi, 5!" ili "Dovoljan! 2!", a ti posle "vadi oči" da objasniš roditeljima šta si znao a šta nisi.
Ovu aplikaciju bi svaki student informatike mogao kreirati za jedan radni dan. Šta je problem? Država nema para da svakom nastavniku omogući ovakav način rada?




















четвртак, 07. октобар 2010.

Osnovna ideja, ma koliko idealistički izgledala na prvi pogled, je da se načini baza podataka priprema za čas. Surfujući po internetu nailazio sam na ovakve pokušaje, ali se ne sećam da je i jedan od njih uspeo.
Svaki prosvetni radnik pripremajući se za čas popunjava formular, štampa ga, snima u bazi podataka i na taj način pomaže svojim kolegama, naročito mlađim i neiskusnijim. Upišete nastavnu jedinicu i program vam izbacuje kompletnu pripremu za čas. Pritiskate Print i spremni ste za čas.
Kako to lepo zvuči.
I još je beplatno.

Priprema nastavnog časa

Prošle godine bio sam izuzetno preokupiran temom web sajtova u osnovnoj školi. Čak sam uspeo i da kreiram jedan sajt i napišem rad na tu temu i objavim ga, ali verujte više ne znam gde.
Ove godine, tačnije od početka raspusta, nerviraju me pripremame za čas. Kada se samo setim da treba da napišem pripremu... Strašno. Obrasci su uglavnom isti i sve je isto, ali nijedan čas ne može i ne treba biti isti, niti se uvek treba držati pripreme. Sve zavisi od situacije u odeljenju. Tako su nas učili metodičari. Znajući sve ovo razmišljao sam kako da olakšam sebi pisanje priprema. Razgovarao sam i sa programerima koji bi softver mogli napraviti za čas posla, ali niko ništa da preduzme. Iz tog razloga pokušao sam sam da napravim kakav takav softver ili aplikaciju, šta li je već. Pregledao sam bezbroj tutorijala, dobio od koleginice VisualStudio 2005 i sada polako krećem.
U ovom blogu ću pratiti svoj rad, a ako neko ima ideja neka se javi.
Smatram da vreme koje gubimo na administraciju u školi treba da zamenimo lepim trenucima provedenom sa decom i učenicima.
Stoga, što smo kraće pisari duže ćemo biti učitelji i prosvetari.