Docent dr Sneana epanovi snezana.scepanovic@unimediteran.net
Pisanje korisnikih pria
Postoji 6 atributa koji doprinose pisanju dobrih korisnikih pria: 1. Nezavisne [independent] 2. Podlone pregovorima [negotiable] 3. Imaju vrijednost za korisnike ili klijente [valuable] 4. Mogu se procijeniti [estimatable] 5. Male [small] 6. Mogu se testirati [testable]
Nezavisnost korisinih pria
Koliko god da je to mogude, trealo bi izbjegavati zavisnosti izmeu korisnikih pria. Zavisnost dovodi do problema sa odreivanjem prioriteta i planiranjem Primjer - korisnik nekoj prii dodijeli visok prioritet, a ona zavisi od druge prie koja je niskog prioriteta.
Zavisnosti izmeu korisnikih pria dovode do
potekoa u procjeni.
Nezavisnost korisnikih pria
Uzmimo kao primjer sledei scenario: Registrovani korisnici na portalu za nekretnine mogu postavljati sopstvene oglase, ukoliko za tu uslugu plate. Omogueno je plaanje sa nekoliko vrsta kartica. Slijede sledee korisnike prie: Registrovani korisnik moe platiti postavljanje oglasa korienjem Visa kartice Registrovani korisnik moe platiti postavljanje oglasa korienjem MasterCard kartice Registrovani korisnik moe platiti postavljanje oglasa korienjem studentske (ISIC) kartice
Nezavisnost korisnikih pria
Recimo da su programeri procijenili da e im biti potrebno tri dana da isprogramiraju (omogue) opciju plaanja prvim tipom kartice a zatim jo po jedan dan za drugi i trei tip kartice. U ovoj situaciji je problem odrediti kojoj prii dodijeliti tri dana, a koje dvije bi trebalo da budu gotove za dva dana. Postoji dva naina da se ovakav problem rijei: 1. Kombinovanje zavisnih korisnikih pria u jednu veu, ali nezavisnu priu 2. Pronalaenje drugaijeg naina dijeljenja pria
Nezavisnost korisnikih pria
Pomenute tri korisnike prie se mogu kombinovati u jednu "Registrovani korisnik moe platiti postavljanje oglasa korienjem kartice", to dalje za planiranje znai da je to jedna pria ija e realizacija trajati pet dana. S druge strane, najee je dobar pristup deljenje pria: Registrovani korisnik moe platiti postavljanje oglasa korienjem jednog tipa kartice Registrovani korisnik moe platiti postavljanje oglasa korienjem dodatnih tipova karti
Korisnike prie su podlone pregovorima
Korisnike prie su podlone pregovorima. Korisnike prie nisu specifikacije funkcionalnosti koje softver mora da implementira, ved kratki opisi funkcionalnosti, iji e detalji biti odreeni u razgovoru izmeu klijenta i razvojnog tima. Poto je kartica prie zapravo podsjetnik da je potrebno razgovarati prje nego se utvrdi detaljni zahtijev, nije potrebno da ukljuuje sve relevantne detalje. Ipak, ukoliko su neki bitni detalji poznati prilikom sastavaljanja prie, trebalo bi ih ukljuiti kao napomene. Izazov je upravo u uenju o koliini detalja koju je potrebno pruiti.
Korisnike prie su podlone pregovorima
Primjer korisnike prie sa ukljuenom napomenom Registrovani korisnik moe platiti postavljanje oglasa koridenjem kartice. Napomena: Sistem prihvata Visa, MasterCard i studentsku ISIC karticu. Razmotri mogunost da prihvata i Euro26 karticu.
Ovakva korisnika pria je dobra, budui da prua
optimalnu koliinu informacija za klijenta i razvojni tim. Kada programer pone da razvija ovu priu, imae podsjetnik da je odluka ve donijeta da se prihvate pomenuta tri tipa kartice, a klijenta moe pitati da li je donijeta odluka o potrebi da sistem prihvata i Euro26 kartice.
Korisnike prie su podlone pregovorima
Primjer korisnike prie pretrpane detaljima: Registrovani korisnik moe platiti postavljanje oglasa korienjem kartice. Napomena: Sistem prihvata Visa, MasterCard i studentsku ISIC karticu. Razmotri mogunost da prihvata i Euro26 karticu. Za postavljanje oglasa, pitati za CVC kod kartice koji se nalazi na poleini. Sistem e onda moi da provjeri koji je tip kartice, na osnovu prve dve cifre. Sistem e modi da sauva broj kartice za buduu upotrebu. Potrebno je sauvati i datum isteka kartice.
Korisnike prie su podlone pregovorima
Ukoliko se kartica posmatra kao podsjetnik da je potreban razgovor izmeu razvojnog i klijentskog tima, korisno je tumaiti da kartica treba da sadri: Dvije-tri reenice koje predstavljaju napomene o zahtijevima ( funkcionalostima sistema) Biljeke o stvarima je potrebno naknadno diskutovati i preciznije defisati
Detalji koji su utvreni kroz konverzaciju kasnije
postaju testovi. Oni mogu biti zabiljieni na poleini kartice ili u njenom ekvivalentu u elektronskom obliku koji se koristi.
Korisnike prie su podlone pregovorima
Primjer revizije prethodne korisnike prie: Registrovani korisnik moe platiti postavljanje oglasa korienjem kartice. Napomena: Da li je omogueno prihvatanje Discovery kartice? Napomena za korisniki interfejs: Neemo imati polje za tip kartice (sistem e odrediti na osnovu dve prve cifre na kartici)
Vrijednost za kupce i korisnike
Korisnika pria trebale bi da posjeduje vrijednosti za kupce, korisnike, i za razvojni tim. Nije mogue da svaka korisnika pria posjeduje vrijednosti za korisnike. Mnogi projekti imaju prie koji je nemaju. Ovo proizilazi iz razlike izmeu korisnika - ljudi koji koriste sistem i kupaca onih koji ga kupuju. Ukoliko razvojni tim implementira softver koji de koristiti velika baza korisnika (npr.oko 5000 raunara u jednoj kompaniji), kupac softvera e vjerovatno biti vrlo zainteresovan da svih 5000 korisnika koristi istu konfiguraciju softvera ( ovaj zahtijev korisnike ne zanima).
Vrijednost za kupce i korisnike
Primjeri korisnikih pria koje imaju vrijednost za kupca (stakeholder), ali ne i za korisnike: Za vrijeme procesa izrade softvera, razvojni tim e proizvesti dokumentaciju po ISO 9001 standardu Razvojni tim e proizvesti softver u skladu sa CMM Level 3
Treba izbjegavati pisanje korisnikih prie koje imaju
vrijednost samo za programere, kao to su: Sve konekcije ka bazi podataka su kroz connection pool Upravljanje grekama i logovanje se obavlja kroz standardni skup klasa
Vrijednost za kupce i korisnike
Slijedi primjer bolje varijacije prethodnih korisnikih pria:
Do 50 korisnika e moi da koristi aplikaciju sa
korisnikom licencom za 5 korisnika Sve greke de biti prikazane korisniku i logovane na konzistentan nain
Pretpostavke oko korisnikog interfejsa i tehnologoji
koje e se koristiti ne treba ukljuivati u korisnike prie Najbolji nain da se osigura da je svaka korisnika pria vrijedna za klijenta ili korisnike je da ih oni piu.
Procjena korisnikih pria
Veoma vano je da za razvojni tim moe da procijeni veliinu korisnike prie ili koliinu vremena koje je potrebno da se ona realizuje ( implementira).
Postoje tri esta razloga zato jedna pria moe biti
nemogua za procjenu: 1. Programerima nedostaje znanje o konkretnom domenu 2. Programerima nedostaje tehniko znanje o funkciji koju treba razviti 3. Korisnika pria je prevelika
Ukoliko programeri ne razumiju napisanu korisniku priu,
potrebno je da se o tome diskutuju sa klijentima i autorima korisnike prie. Nije potrebno poznavati sve detalje o samoj prii, ali je potreban odreen nivo razumijevanja.
Dijeljenje korisnikih pria
Epska korisnika pria pripada jednoj od sledee dvije kategorije: 1. Sjedinjena korisnika pria [compound] 2. Kompleksna korisnika pria [complex]
Sjedinjena korisnika pria se moe podijeliti u vie manjih
pria. Na primjer, klijent moe napisati "Registrovani korisnik moe unijeti svoje podatke". Kasnije, razvojni tim razgovorom sa klijentom utvruje da ova pria zapravo znai: Da podaci o registrovanom korisniku ukljuuju ime i prezime, adresu, telefon Da registrovani korisnici mogu odabrati da li su fiziko ili pravno lice Da registrovani korisnici mogu mijenjati svoje podatke
U zavisnosti od toga koliko je vremena potrebno da bi se
implementirala korisnika pria, svaka od manjih moe postati jedinstvena.
Dijeljenje korisnikih pria
Sloena korisnika pria je sama po sebi velika i ne moe se tako lako podijeliti na vie manjih. Ukoliko je sloena zbog velikog broja tekuih pitanja u vezi sa samom priom, mogue je podijeliti je u dvije prie, gdje e se jedna baviti istraivanjem, a druga implementacijom. Na primjer, pria "Korisnik moe platiti oglas kreditnom karticom" moe biti podeljena na: Istraiti obradu kreditnih kartica online Korisnik moe da plati oglas kreditnom karticom
Ponekad je dobra praksa da se korisnika pria koja ukljuuje
istraivanje obavi u jednoj, a druge koja objanjavaju implementaciju u drugoj iteraciji
Kombinovanje korisnikih pria
Ponekad, korisnike prie mogu biti veoma male. Kada je korisnika pria previe mala, najea praksa je njeno ukljuivanje u neku drugu ili kombinovanje, tako da se novonastala pria moe zavriti za pola dana ili nekoliko dana rada. Kombinovana pria obino dobija novo ime i zatim se implementirakao jedinstevna.
Testiranje korisnikih pria
Korisnika pria mora biti tako napisana, da se moe testirati. Uspjean prolazak testova dokazuje da je uspeno razvijena. Ako pria ne moe biti testirana, programeri ne mogu znati da su zavrili kodiranje. Korisnike prie koje se ne mogu testirati se najee javljaju kod nefukcionalnih zahteva kao to su : Korisniku softver mora biti lak za korienje Korisnik nikad ne sme dugo da eka da se neki prikaz pojavi
Testiranje korisnikih pria
Kada se proizvod implementira inkrementalno, potrebno je kreirati automatizovane testovi koji e brzo otkrivati greke. U stvarnosti, postoji jako mali broj testova koji se ne mogu automatizovati. Na primjer, korisnika pria koji glasi "Novi korisnik moe izvriti osnovne akcije u sistemu bez obuke" se moe testirati, ali se ne moe automatizovati. To proizilazi iz injenice to ovaj i slini testovi ukljuuju ljudski faktor. Korisnika pria "Korisnik nikad ne smije dugo da eka da se neki prikaz pojavi" se ne moe testirati, budui da nije definisano ta znai dugo ekanje, a i da sadri rije "nikad". Demonstriranje neega to se nikad ne deava je nemogue. Razumniji cilj je demonstrirati da se neto rijetko deava. Ova pria bi bila bolje napisana na slededi nain: Novi prikaz se javlja u vremenu do dvije sekunde u 95% sluajeva
Rezime o pisanju korisnikih pria
Korisnike prie su meusobno nezavisne. Detalji korisnike prie su podloni pregovorima izmeu korisnika i razvojnog tima Korisnike prie bi trebalo da budu napisane tako da je vrij ednost za klijenta ili korisnika jasno iskazana. Korisnike prie mogu sadrati detalje u napomenama, ali treba izbjegavati previe detalja. Jedan od najboljih naina da se napiu detalji za korisniku priu je da se za nju naprave testovi
Ukoliko su prevelike ili kompleksne, korisnike prie
se mogu podijeliti na vie manjih Ukoliko su premale, prie se mogu kombinovati u vee Korisnika pria mora biti tako napisana, da se moe testirati.