You are on page 1of 37

1

Kako napraviti ispravnu funkcionalnu


specifikaciju za developere?
Nenad Trajkovski, Perpetuum Mobile, Hrvatska
project manager

Milo Radivojevi, bwin.party, Austrija


developer

(T)ko smo?
MS Project MVP
Project Manager, perpetuum mobile Zagreb, Croatia
PMP, PMI-RMP, PMI-ACP, MCP, MCT, MCTS, MVP, PSM-I
Professional Trainer for PMP and RMP
Conference Speaker: Windays, Sinergija, Kulen Dayz, MS NETWORK,
Mobility day, ....
SQL Server MVP
Principal Database Consultant, bwin.party Vienna, Austria
MCT, MCITP, MCTS, MCP
Co-Founder: SQL Pass Austria
Conference Speaker: SQLBits, SQL Saturday, SQL Konferenz,
Sinergija, SQL Pass Austria, Serbia, Bulgaria
3

Posveta
Naem prijatelju Janku Radusinoviu

Agenda

Uvod
to vs. Kako
Problemi u specifikaciji zahteva
Kako treba da izgleda specifikacija?
ta treba da radim da bi projekat bio
uspean?
Zakljuak
5

Alisa u zemlji udesa


Moete li mi rei, molim vas, kojim putem da
krenem odavde?, ree Alisa.
To dobrim dijelom ovisi o tome kamo eli
stii, ree Maka.
Nije me briga kamo, ree Alisa.
Onda nije bitno kojim putem ide, ree Maka.
"Samo da NEGDJE stignem", doda Alisa kao
objanjenje.
"Oh, sigurno e stii", ree Maka, "samo ako
dugo hoda."
6

Uloge (role) u projektu


Project Manager
Odgovoran menadmentu svoje firme i naruitelju za
pravovremeni zavretak projekta, za isporuku cijelog opsega
(svih zahtjeva) i za budet

Business Analyst
Odgovoran za analizu poslovnih potreba naruitelja, te za
interpretaciju istih na jezik developera. esto njegov posao
radi Project Manager

Developer
Odgovoran za izvrenje zahtjeva. On pretvara poslovne
potrebe naruitelja (elje) u stvarni proizvod

Tester
Osoba koja testira svaku funkcionalnost prema unaprijed
utvrenom scenariju i daje odobrenje za isporuku klijentu
7

to versus Kako
to?
Funkcionalna specifikacija opisuje TO
Za to je odgovoran Voditelj projekta
On je odgovoran da sve TO treba napraviti bude i
definirano

Kako?
Kako treba napraviti to to pie u funkcionalnoj
specifikaciji odreuje DEVELOPER, DEVELOPER i
DEVELOPER! I on je za KAKO odgovoran.
To je razbijanje zatjeva funkcionalnosti u Taskove!
Voditelj projekta ne smije se u to NIKADA mijeati jer:
Nije struan
Ne zna
8

Tipini problemi

Nepravilna komunikacija / Lost


in Translation

Nejasni zahtjevi

Nepotovanje uloga u projektu

Nepravilna komunikacija / Lost in Translation

Iznenadna i prerana smrt pukovnika K.K.


https://www.youtube.com/watch?v=yTkY9tweRjc

10

Nejasni zahtevi Zato?

Nedostatak odgovornosti
Lenjost

11

Nejasni zahtevi tipini izgovori


Ne moe se sve definisati

Kompleksnost

12

Nejasni zahtevi, ali se poinje sa radom. Zato?


Ne eli da se zameri
Ne eli da ispadne
glup pred drugima
Trpi pritisak
menadmenta
Razjasnie se to
kasnije (prihvata mantru

da ne moe sve da bude


definisano, nema kasnije...)

Napravie kako on
misli da treba, nema
veze to bas i nije
razumeo (PM je ionako
glup)

13

Nepotovanje uloga u projektu


Role: Voditelj projekta, razvojni inenjer, tester,
poslovni analitiar, ..
Ima dobrih i loih i PM-ova i programera i testera,
nema loih rola. Ako nisi zadovoljan svojom, trazi od
management drugu rolu ili drugu firmu. Dok projekat
traje respektuj role ostalih ucesnika. Vi ste tim!!!
Svi su bitni u projektu!

14

to mislimo jedni o drugima?

15

to je to funkcionalna specifikacija?
SRS (Software Requirements Specification)
dokument je koji sadri cjelokupni opis sustava
koji se razvija

Funkcionalna specifikacija predstavlja dio koji


se odnosi na konkretne funkcionalnosti
budueg sustava i kao takva ini dio SRS-a

16

Kako treba da budu specificirani zahtevi?


Uvod
Zahtjev: Smraviti u dogledno vrijeme!

Rezultat 1: Nakon godine dana nisam smravio ni grama!

Rezultat 2: Nakon dvije godine smravio 1 gram!

Pitanje za Vas: Da li sam ispunio zahtjev?


17

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer
U aplikaciji X treba u tabeli Customers dodati dve kolone za
email adresu i mobilni telefon. Obe vrednosti su opcione.
U email koloni se prihvataju alfanumerike vrednosti do 100
znakova koje sadre tano jedan znak @.

Polje Mobilni telefon prihvata samo cifre, crticu i space i ne


sme da bude due od 20 znakova.
18

Kako treba da budu specificirani zahtevi?


Primjer
U aplikaciji X treba u tabeli Customers dodati dve kolone za
email adresu i mobilni telefon. Obe vrednosti su opcione.
U email koloni se prihvataju alfanumerike vrednosti do 100
znakova koje sadre tano jedan znak @.
Polje Mobilni telefon prihvata samo cifre, crticu i space i ne
sme da bude due od 20 znakova.

Specifikacija odreuje TA, a ne KAKO treba napraviti!


19

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer

Potrebno je omoguiti plaanje standardnim, u naoj zemlji


opteprihvaenim kreditnim karticama!

Nejasno:
Kojim? Debitnim, kreditnim?
Ima li limita, ima li pina
ta sa drugim dravama?
Koje servise koristimo?
ta se radi u sluaju viestrukih greaka prilikom validacije?

Specifikacija treba da bude jasna i kompletna!


20

Kako treba da budu specificirani zahtevi?


Potrebno je omoguiti plaanje kreditnim karticama.
Primaju se samo: American Express, Diners i Visa i to
kreditne kartice iz Srbije i Hrvatske za koje ne treba pin
Razviti servis u suradnji s BeoBankom, preko koje idu
sva plaanja. Limit kupovine je u potuvrijednosti 1000
Ukoliko kartica ne proe potrebno je dati ove poruke:
Neispravna kartica. Moete platiti samo American Express,
Diners ili Visa karticom izdanoj u Republici Srbiji ili Republici
Hrvatskoj
Neispravan broj kartice
Kartica je istekla na dan dd.mm.gggg
Prekoraili ste limit kupovine od 1000
Karticu je odbila Banka

21

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer

Potrebno je napraviti formu za registraciju. Potrebna su tri polja: email


adresa, lozinka i potvrda lozinke.
Po unoenju podaka sistem treba da ih sauva i korisnika obavesti da je
registracija uspela.
U sluaju da je email adresa ve registrovana, podaci se ne snimaju
ponovo, ve se korisnik obavetava da je ta adresa ve registrovana.

U svim drugim sluajevima koji ne rezultiraju pohranjivanjem podataka


korisniku se alje obavetenje da registracija nije uspela.
Korisniki interfejs treba da bude veoma jednostavan i intuitivan.
22

Kako treba da budu specificirani zahtevi?


Primjer
Potrebno je napraviti formu za registraciju korisnika. Potrebna su tri
polja: email adresa, lozinka i potvrda lozinke.
Po unoenju podataka sistem treba da ih sauva i korisnika obavesti da
je registracija uspela.
U sluaju da je email adresa ve registrovana, podaci se ne snimaju
ponovo, ve se korisnik obavetava da je ta adresa ve registrovana.
U svim drugim sluajevima koji ne rezultiraju pohranjivanjem podataka
korisniku se alje obavetenje da registracija nije uspela.
Korisniki interfejs treba da bude veoma jednostavan i intuitivan.

Specifikacija treba da bude proveriva (da moe da se


izmeri i proveri da li je dobro implementirano)
23

Kako treba da budu specificirani zahtevi?


Primjer

Gdje je problem?

Klijent X eli da se podaci o kreditnim karticama njegovih muterija


enkriptuju i da se samo za odreene korinsike deifruju.
Klijent uva podatke najverovatnije u nekoj SQL bazi, te stvari ne smeju
da se uvaju po fajlovima.

24

Kako treba da budu specificirani zahtevi?


Primjer
Klijent X eli da se podaci o kreditnim karticama njegovih muterija
enkriptuju i da se samo za odreene korisnike deifruju.

Klijent uva podatke najverovatnije u nekoj SQL bazi, te stvari ne smeju


da se uvaju po fajlovima.

Specifikacija treba da bude nedvosmislena i bez


spekulacija
25

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer

Klijent X eli da se podaci o kreditnim karticama njegovih muterija


enkriptuju i da se samo za odreene korisnike deifruju. Klijent X koristi
SQL Server kao bazu podataka.
Developer: To moemo dosta lako i brzo da implementiramo sa
minimalnim rizikom. U SQL Serveru ve postoji feature Transparent Data
Encryption i mi emo da napravimo reenje bazirano na njemu (ca. 10
person days)

26

Kako treba da budu specificirani zahtevi?


Klijent X eli da se podaci o kreditnim karticama njegovih muterija
enkriptuju i da se samo za odreene korisnike deifruju. Klijent X koristi
SQL Server kao bazu podataka.
Developer: To moemo dosta lako i brzo da implementiramo sa
minimalnim rizikom.
U SQL Serveru ve postoji feature Transparent Data Encryption i mi
emo da napravimo reenje bazirano na njemu (ca. 10 person days)
Feature postoji samo u Enterprise Edition i ako reenje poiva na toj
pretpostavci onda klijent mora da kupi i plati tu verziju. A cena projekta je
ve utvrena.

Implementacija treba da bude mogua u datim okolnostima


ili da se potrebna ulaganja u infrastrukturu posebno naglase
27

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer

Kao registrovani korisnik elim da imam mogunost da pregledam svoje


podatke ba kao to to mogu korisnici na Amazon.de. Na pregledu treba
obezbediti dva izvetaja.
Vie detalja o izvetajima nalazi sa na http:://
dok1.mosspage.negdeu3lepe.intern

28

Kako treba da budu specificirani zahtevi?


Primjer
Kao registrovani korisnik elim da imam mogunost da pregledam svoje
podatke ba kao to to mogu korisnici na Amazon.de. Na pregledu treba
obezbediti dva izvetaja.
Vie detalja o izvetajima nalazi sa na
http::// dok1.mosspage.negdeu3lepe.intern

Specifikacija treba da bude potpuna i ne treba da referencira


druge dokumente ili izvore kao zamenu za zahteve.
29

Kako treba da budu specificirani zahtevi?


Gdje je problem?
Primjer

Zahtev 1: Sistem treba da uva sve transakcije za svakog korisnika u


poslednjih 7 fiskalnih godina.
Zahtev 2: Kad korisnik odlui da obrie svoj raun, sve njegove
aktivnosti moraju da budu anonimizirane tako da ne mogu ni na koji
nain da se poveu sa njegovim identitetom.
Zahtjevi su meusobno kontradiktorni!

Konzistentnost - nema konflikta sa postojeim


funkcionalnostima
30

Kako treba da budu specificirani zahtevi?


Ne specificira KAKO ve TA treba da se uradi
Jasni i koncizni
Ko odreuje da li je jasan? Pa onaj ko treba da napravi i testira!
Loi primeri: UI treba da bude user-friendly, procesiranje kartice treba da
bude brzo

Nedvosmisleno, bez spekulacija


Proverivost
da moe da se testira/proveri/izmeri

Kompletnost
da su info dovoljne da se implementira funkcionalnost

Konzistentnost
nema konflikta sa postojecim funkcionalnostima

Feasible - Mogue u datim okolnostima


imamo skillse, imamo dovoljno ljudi, ne treba nova oprema ili treba
a ima se para za to etc.

Ne referencira druge zahteve ili dokumente


31

to da radim? (lan tima)


Ljudi najee znaju ta i kako drugi treba da rade u ivotu

Postoji vie naina za mlaenje voa na slici, ali je jedan provereno najlaki

Potujte uloge drugih u projektu!

32

to da radim? (projekt manager)


Podsjeti se definicije svoje role
to e se implementirati ne smije ovisiti od toga
TKO implementira!
PITAJ! Ako developeru nije jasno, objasni mu
Ako TEBI nije jasno, pitaj ponovo dok ti nije
jasno
TRAI POMO!

33

ta da radim? (developer)
Podseti se definicije svoje role
Ako ti nije jasno ta treba da se uradi ne poinji sa
radom!
Pitaj, komuniciraj sa PM, trai napismeno, pokuaj da mu
pomogne da definie kako treba

Budi iskren
Nisi razumeo, neto je iskrslo o emu nije govoreno, znaajna
promena procene, naao si bag -> kontaktiraj PM odmah

Respekt
Potuj sve role i PM i testere, ako ima problem komuniciraj to
pre

Najbolje je da svako radi svoj posao


Budi profesionalac
34

Zakljuak
Kupca nije briga ko je kriv ako
nije dobio to treba
S Kupcem komunicira Project
managera, a iznimno i
developer, ali ne bez
prisustva PM-a
Ako zahtjev nije precizno
definiran i ne moe se
izmjeriti ne poeti s radim
ni pod kojim uvjetima
Ne znam i ne razumijem su
odlike MUDROSTI, a ne
GLUPOSTI
35

A sad Vi!

?
36

37

You might also like