Napravili ste web stranicu i svakodnevno s oduševljenjem radite na njenom održavanju. Dizajner je napravio odličan posao, a korištenje sustava za upravljanje sadržajem je jednostavnije nego što ste mislili i koristite ga s užitkom.
No, s vremenom otkrivate i nedostatke svog weba i dobivate dojam da to može još bolje. Možda želite dodati web shop ili neku društvenu komponentu; možda jednostavno imate neki tip sadržaja za koji vaš trenutni CMS tj. sustav za upravljanje sadržajima nije predviđen.
Za neke će od vaših ideja postojati gotova rješenja koja će vam, uz minimalne izmjene, savršeno odgovarati. U nekim će slučajevima gotovo rješenje zahtijevati malo veće zahvate, a neke će vaše zahtjeve trebati razvijati from scratch, tj. ispočetka, jer gotovo rješenje ne postoji ili bi njegova prilagodba bila jednostavno prezahtjevna i neisplativa. Ukoliko imate (ne)sreću da vaš zahtjev spada u jednu od zadnje dvije navedene kategorije…
Upoznajte Developera
Developeri su ljudi (da, stvarno jesmo, testirali su nas!) koji će biti odgovorni za realizaciju vaše ideje. Iako vam je možda jezik kojim pričaju nerazumljiv, a silne linije koda koje pišu graniče sa znanstvenom fantastikom, o njima ovisi kako će vaša aplikacija funkcionirati – a o funkcionalnosti vaše aplikacije ovisi vaš posao.
Ovisno o tome radite li s freelancerom ili s tvrtkom, vaše developere možda nikad nećete vidjeti, no to ne znači da ne možete napraviti ništa da im olakšate posao; naprotiv, vaš pristup i informacije uvelike mogu utjecati na njihovu motivaciju i mogućnost izrade kvalitetnog proizvoda.
Dakle, kako vama i vašem razvojnom timu život učiniti ljepšim i jednostavnijim?
Budite svjesni budžeta
“Brzo, dobro, jeftino – odaberite dvoje od ponuđenog” vrlo dobro opisuje vezu između financijskog i vremenskog budžeta te kvalitete vaše aplikacije. Ukoliko ste financijski ograničeni, nemojte očekivati novi Google ili Twitter, no uz malo konzultacija možete postići kompromis koji će rezultirati dobrom aplikacijom izrađenom u razumnom roku unutar budžeta. Ono što svakako treba imati na umu je da stvar ne radi uvijek u svim smjerovima (“skupo” ne povlači nužno “dobro” i “brzo”), no za te su iznimke dobri filteri preporuke i reference potencijalnog izvođača radova.
Ponekad se zna dogoditi da klijent misli da je njegova ideja nevjerojatno kompleksna i teško ostvariva, a u biti je upravo suprotno; malo se češće događa obratno. Takve se situacije jednostavno mogu izbjeći tako da zatražite okvirnu, neobvezujuću ponudu od tvrtke ili freelancera i prepustite odluku njima.
Ukoliko vam se procjena čini nerealnom, probajte kod njihove konkurencije – ako se ponude uvelike razlikuju, uvijek možete tražiti njihovo pojašnjenje koje bi vam trebalo razjasniti je li riječ o krivo shvaćenom zahtjevu ili “brzo, dobro, jeftino” problemu. Bitno je naglasiti da su te ponude neobvezujuće za izvršitelja onoliko koliko su i za vas, kao i da je velika šansa da će se mijenjati kako detaljnije i bolje formulirate svoj zahtjev, no mogu dobro poslužiti kao okviran pokazatelj stupnja složenosti projekta.
Dobro definirajte vaše zahtjeve
Razvoj softvera je proces koji se sastoji od nekoliko međusobno vrlo ovisnih koraka: svaka izmjena funkcionalnosti vaše aplikacije zahtijeva povratak nekoliko koraka unazad. Svaki povratak utječe na budžet, a samim time i na kvalitetu krajnjeg rezultata – vaše aplikacije. Developeri su svjesni da je dobar, potpun i fiksan zahtjev mit u rangu s onima o besplatnom ručku ili beskamatnom kreditu.
No, konstantno mijenjanje i nadopunjavanje zahtjeva jednom kad se krene u razvoj je praksa koja će zasigurno dovesti motivaciju i fokus developera na nulu. Ukoliko ni sami niste sigurni što točno želite, posavjetujte se s vašim voditeljem projekta ili razvojnim timom prije nego što krenete s razvojem.
Dobro definiran zahtjev ne mora biti znanstveni rad od 300 stranica. No, mora sadržavati detaljan opis podataka s kojima će aplikacija baratati, kao i veze između njih. Nastojte malo toga prepustiti slučaju i što bolje i konkretnije opisati što točno želite da aplikacija radi. U ovom trenutku nije bitno je li aplikacija crvene ili zelene boje, nego što i gdje želite napraviti s podacima koje ubacite u aplikaciju. U idealnom bi slučaju rezultat vašeg zahtjeva bila detaljna funkcionalna specifikacija koju piše netko iz razvojnog tima dorađena u suradnji s vama; u praksi se to, nažalost, često preskače jer povećava troškove.
Olakšajte komunikaciju
Nekome sa strane je nemoguće u detalje poznavati sve zakone i procese vezane uz vaš način poslovanja. Ukoliko vam se oni čine prirodnima i jasnima, samo se sjetite da su vašim developerima one silne linije koda vjerojatno isto toliko prirodne – ali vama nisu. Upravo je zato važno imati osobu zaduženu za komunikaciju i rješavanje eventualnih nejasnoća koju developeri mogu kontaktirati u slučaju nerazumijevanja nekog dijela zahtjeva. Važno je da je ta osoba upoznata s vašim poslovanjem, ali i da ima ideju o tome o čemu se točno u aplikaciji radi.
Branimir Šloser iz tvrtke Emusoft je na prezentaciji aplikacije RazborIT istaknuo da je upravo dobra komunikacija s klijentom, s kojim je u bilo kojem trenutku mogao riješiti nedoumice oko funkcionalnosti, bila jedan od ključnih čimbenika u brzom, bezbolnom i uspješnom razvoju te financijske aplikacije.
Vjerujte svojim developerima
Pojedinac ili tim developera koji radi na vašoj aplikaciji dnevno provodi puno vremena online. Neki od njih jako vole internet i svoj posao, pa su online otprilike onoliko koliko su i budni. Iako su nekima od njih draže kriptične komandnolinijske naredbe od lijepih grafičkih sučelja, imaju dobru ideju o tome što korisnici žele i što na webu funkcionira.
Stoga, na kraju preporučam da im ponekad vjerujete ili makar poslušate njihove komentare i prijedloge — nerijetko ih ne iznose zbog lijenosti, već zato što im je stvarno stalo da naprave dobar proizvod i olakšaju vama ili vašim klijentima život.
Na kraju krajeva, zato ih i plaćate.




:) Vrlo, vrlo dobro! Od sada ovaj link šaljem svim novim klijentima.
Bravo!
Pohvale za članak, kratko, jasno i sažeto – a opet pogađa dobar dio problematike. Trokut “brzo-dobro-jeftino” neodoljivo me podsjeća na slične metafore iz područja project managementa – primjerice “cost-scope-schedule”.
Sve u svemu, zanimljiv članak!
Bravo Nikola, odličan tekst… Mislim da ću spremiti link i često ga slati klijentima na početku suradnje… I hvala za spomen, fakat je istina da uz malo (obostranog) truda rezultat i sam proces dolaska do rezultata mogu biti puno bolji i ugodniji.
Nadam se da će biti još tvojih članaka ovdje ;)
Ako može jedan ispravak krivog navoda: U rečenici “U idealnom bi slučaju rezultat vašeg zahtjeva bila detaljna funkcionalna specifikacija koju piše netko iz razvojnog tima dorađena u suradnji s vama; u praksi se to, nažalost, često preskače jer povećava troškove.” nedostaje riječ NAIZGLED dakle “… često preskače jer NAIZGLED povećava troškove.”
Ne da mi se sad elaborirati jer to može bilo tko tko je učestvovao u jednom projektu sa (polu)detaljnom specifikacijom i u jednom bez ikakve specifikacije.
Inače odličan tekst, možda previše programerski za slat link klijentima, jer fale ključne riječi za one koji nemaju pojma o tematici (ROI, strategija, tržište, brend i slično :) )
Nikola,
pohvale za članak. Mislim da si uočio sve glavne probleme koji nastaju u komunikaciji naručitelja i izvođača. No, ovo što si napisao može se uz male izmjene primijeniti i na slučaj naručitelja i dizajnera, jer se i mi suočavamo sa sličnim problemima. Ako smijem nadopisati, ono što je najbitnije kod razgovora dizajnera i klijenta:
* struktura stranica
* tekstovi
* što se klijentu sviđa (linkovi na stranice, detaljno objašnjenje što mu se sviđa/ne sviđa)
Još jednom pohvale. +1 od mene ;)
Hvala Nikola na postu ;)
Hvala svima na komentarima, drago mi je da je članak koristan i/ili zanimljiv. :)
@and1v: Istina, nedostaje “naizgled”. Specifikacije definitivno štede vrijeme (pa i novac) u razvojnoj fazi i vjerojatno su zadnja stvar koju bi treblao preskakati, ali su nekako prve na listi za odstrel. Nikako mi nije bio cilj reći da bi *trebalo* preskakati taj korak, no nažalost, nije bilo dovoljno mjesta za detaljnu razradu svake od točaka jer bi svaka zahtijevala svoj članak ili dva :).
@Emanuel: Da, velik dio ovoga je istinit za razvoj bilo kakvog proizvoda, pogotovo na webu. Mislim da u odnosu s klijentima svi uključeni u razvoj dijele vrlo slične probleme.
Odličan tekst..kratko i jasno, nema šta!
Posebno mi se sviđa onaj dio o nedefiniranim zahtjevima klijenata, i kako oni ne shvaćaju koliko je teško napraviti nešto što njima djeluje jako jednostavno…
Jako dobar članak.. i da, stvarno treba vjerovati više vjerovati svojim developerima