Korisnička priča (eng: User Story) i Funkcionalni zahtjev korisnika (eng: Functional requirement) su uobičajeni pojmovi koji se koriste u softverskoj industriji. Ali šta su oni? Da li su drugačiji ili je to potpuno ista stvar? Odgovorićemo na ova pitanja u ovom postu.

Šta je Korisnička priča - User story?

Korisničke priče su kratki opisi funkcionalnosti iskazanih iz perspektive korisnika. Fokus je na zašto i kako korisnik komunicira sa softverom. Korisnička priča je u osnovi definicija visokog nivoa onoga što softver treba da bude u stanju da radi. Obično se svaka povratna informacija ili zahtjev koji potiče od preduzeća ili krajnjeg korisnika može napisati kao korisnička priča.

To se radi na stikeru dimenzija 5x12 cm i stavljaju se na tablu, tako da opis (Description) ide na prvu stranu a detalji (Acceptance criteria) iza. Nakon toga slijedi diskusija o svakom pojedinačnom, izbacivanje ili dodavanje novih i redanje po prioritetima.

Dobra korisnička priča napisana je jednostavnim jezikom i govori o razlogu i očekivanim prednostima određenog područja softvera. Obično slijede templejtu kao što je ovaj:

Kao <tip korisnika>

želim <neki željeni ishod>

tako da <neki razlog>

Evo primjera korisničke priče za izradu aplikacije za e-prodavnica:

Kao kupac, želim da mogu pregledati predmete u svojoj korpi, tako da  znam šta kupujem.

Kriterijumi prihvatanja (Acceptance criteria) često prate korisničku priču. Ovi kriterijumi su granice korisničke priče (karakteristike) i u suštini određuju kada je korisnička priča završena (Definition of done):

Kriterijumi prihvatanja su takođe ono za šta će izvođač napisati a zatim i sprovesti svoje testove. Kriterijume prihvatanja možete smatrati funkcionalnim zahtjevima koji podržavaju korisničku priču. Oni potvrđuju prioritete i integrišu perspektivu korisnika u pristup razvojnog tima. Korisničke priče se često koriste u aglilnom razvoju softverskih rješenja i prisutni su u Scrum framework-u kao početni i neizostavni element.

Ako želite da usavršite vještine pisanja korisničkih priča, pogledajte moj kurs na ovu temu.

Šta je funkcionalni zahtjev?

Tradicionalni funkcionalni zahtjevi opisuju kako softver treba da djeluje. Glavni cilj je sistem. Dokumenti sa funkcionalni zahtjevima sadrže vrlo detaljne specifikacije o načinu na koji softver treba da funkcioniše. Obično služe u svrhu vođenja načina na koji će tim softvera nešto napraviti.

Iako su korisničke priče jednostavne, funkcionalni zahtjevi predstavljaju dokumente sa mnogo detalja za čiju izradu je potrebno dosta vremena. Dokumenti sa funkcionalnim zahtjevima često sadrže stvari poput sažetaka za menadžment, obuhvata projekta, BBP As Is, BBP ToBe, Rizika i još mnogo toga. Oni postavljaju nivo kvaliteta funkcionalnosti, performansi i korisničkog iskustva.

Evo primjera nekoliko funkcionalnih zahtjeva za aplikaciju e-prodavnica:

  • Prikažite ime svakog predmeta u korpi za kupovinu.
  • Prikažite količinu svakog proizvoda u korpu za kupovinu.
  • Dozvolite korisniku da ukloni sve predmete iz korpe za kupovinu.

Ako želite da usavršite razumjevanje razvnih vrsta zahtjeva, funkcionalni, nefunkcionalni... pogledajte moj kurs na ovu temu.

Koje su razlike izmjeđu Korisničke priče i Funkcionalnog zahtjeva?

Korisnička priča (User Story) i funkcionalni zahtjev su dva različita pristupa u opisivanju funkcionalnosti proizvoda ili sistema, iako oba služe za prenošenje zahtjeva na razvojni tim. Evo ključnih razlika između njih:

1. Fokus i Perspektiva

Korisnička priča: Fokusira se na potrebe i ciljeve korisnika. Obično je napisana iz perspektive krajnjeg korisnika i opisuje šta korisnik želi da postigne, zašto je to važno i kakvu vrijednost donosi. Obuhvata poslovnu vrijednost i korisničke ciljeve, a ne samo tehničke detalje.

Funkcionalni zahtjev: Obično je detaljniji i opisuje tehničke specifičnosti koje treba implementirati. Funkcionalni zahtjev obuhvata tačno šta sistem treba da radi, bez obzira na to ko će ga koristiti. Često uključuje precizne tehničke specifikacije, propozicije i parametre.

2. Razumjevanje i Komunikacija

Korisnička priča: Pisane su u jednostavnom jeziku koji je lako razumljiv svim članovima tima, uključujući ne-tehničke članove (npr. Product Owner, menadžere, stakeholder-e). Obično se koristi u agilnim metodama kao što je Scrum, jer je usmjerena na rezultat i vrijednost.

Funkcionalni zahtjev: S obzirom na to da je specifičan i tehnički, često je namjenjen razvojnom timu i tehničkim stakeholder-ima. Može biti teško razumljiv za ljude koji nisu uključeni u tehničku implementaciju, jer je više fokusiran na to kako će nešto biti urađeno, a ne šta i zašto.

3. Opseg i Detalji

Korisnička priča: Generalno, korisnička priča je kraća i sažetija. Usmjerena je na glavni cilj korisnika i daje okvir za dalje razrađivanje i implementaciju. Obično koristi jednostavnu formu:
„Kao [tip korisnika], želim [nešto] kako bih postigao [cilj].“

Funkcionalni zahtjev: Ove specifične tačke su detaljnije i često uključuju tehničke specifikacije i uslove za prihvatanje koji moraju biti zadovoljeni. Funkcionalni zahtjev opisuje tačno šta sistem treba da uradi u svim mogućim scenarijima.

4. Fokus na Poslovnu Vrijednost vs. Tehničke Specifikacije

Korisnička priča: Primarno se fokusira na poslovnu vrijednost i korisničko iskustvo. Pokušava da odgovori na pitanje: „Zašto je ovo važno?“

Funkcionalni zahtjev: Fokusira se na to „Kako će se ovo implementirati?“ i obuhvata tehničke aspekte kao što su performanse, sigurnost, kompatibilnost i precizni koraci za implementaciju.

5. Prilagodljivost i Razrada

Korisnička priča: Obično je početna tačka za razgovor i može se razraditi i dovesti u detalje tokom daljih faza razvoja. Kroz iteracije i sprints, korisnička priča može evoluirati, a prioriteti se mogu promijeniti.

Funkcionalni zahtjev: Jednom definisan, funkcionalni zahtjev je manje podložan promjenama. Kada su tehničke specifikacije postavljene, obično se ne mijenjaju lako, osim ako se ne pojavljuju ozbiljne promjene u poslovnom kontekstu ili tehnologiji.

6. Upotreba u Scrum-u i Agilnim Timovima

Korisnička priča: U Scrum-u, korisnička priča je osnovna jedinica za planiranje rada. U Product Backlog-u su korisničke priče koje tim treba da razvije u narednim sprintovima, često uz prihvatne kriterijume koji definišu šta znači da je priča „završena“.

Funkcionalni zahtev: U agilnim timovima funkcionalni zahtjevi mogu biti detalji koji prate korisničke priče ili mogu biti specifični za tehničke funkcionalnosti koje ne mogu biti sažeto predstavljene kao korisničke priče. Iako se mogu koristiti u Backlog-u, često su detaljniji dokumenti koji se koriste za implementaciju, a ne za razumijevanje poslovnog cilja.

Rezime

Iako su slične prirode, korisničke priče i funkcionalni zahtjevi su prilično različiti i uključuju drugačiji pristup radu i izgradnji softvera.

Agilni timovi imaju tendenciju da koriste korisničke priče češće nego funkcionalne zahtjevi jer omogućavaju fleksibilnost i saradnju, dok timovi koriste vodopad metodologiju kako bi dobili dokumente sa funkcionalnim zahtjevima kako bi:

  • unaprijed odredili najsitnije detalje korisničkih potreba i zahtjeva,
  • da rezervišu sve potrebne resurse za realizaciju - implementaciju,
  • da spriječe izmjene zahtjeva od strane korisnika u toku implementacije.

Projekat FBI Sentinel

Toplo preporučujem da pogledajte ovu kratku priču o projektu FBI Sentinel. Vidjećete koliko je novca za implementaciju FBI potrošio i na koji način je uspio. U ovom videu možete videti i činjenice tradicionalne implementacije vodopada i implementacije Agile sa Scrum-om:

Vezani tekstovi:


Dobrodošli

Hvala Vam što ste izabrali posjetiti DM Spot portal.

Na njemu ćete naći:

  • podatke o autoru,
  • članke na temu nauke i tehnologije,
  • eBiblioteku, preporuke,
  • članke iz života i stila i
  • promociju potencijala Republike Srpske.

Vidjećete i nešto što se nalazi između redova, moju ljubav i trud da ovaj sajt i komunikaciju prema Vama učinim originalnom, korisnom i atraktivnom i obećanje da neću prestati da se trudim.

Ukoliko nađete da Vam je posjeta ovom portalu bila koristila u bilo kom pogledu, razmislite o tome da mi platite kafu kako biste podržali moj rad.

Recommended