Zašto bi trebalo da pišete specifikacije za web projekte

Da li pišete specifikacije za web projekte? Glavni argument protiv specifikacija je to da je u pitanju mrtav dokument, da za njega, na kraju krajeva, nikoga nije briga, i da glavni fokus treba da bude na radu sa klijentima i zadovoljenju njihovih očekivanja. Sada nakon nekoliko meseci mislim da bi trebalo da se odbrane tehničke specifikacije.

Definisanje specifikacije

Mislim da bi se svako složio da su sati i sati, i tone papira, potrošene na pisanje i štampanje specifikacija o funkcijama kroz celu istoriju programiranja. Neki će se onda složiti da je jedini pozitivni ishod svega toga nauk da bi jednostavno trebali da prestanemo da ih pišemo. Ja se ne slažem, i snažno verujem da većina web projekata zahteva neku vrstu specifikacije, i stoga će se ovaj članak oslanjati na sledeću definiciju: specifikacija softvera je pokušaj da se dosegne novi nivo u komunikaciji, blizak svim stranama koje su uključene, koji opisuje viziju projekta i ograničenja u tehnologiji, vremenu i novcu, koji na kraju krajeva određuje plan celog projekta. Specifikacija bi trebalo da jasno definiše šta sve treba da se realizuje u okviru projekta i sve vreme treba da bude dostupna svim učesnicima.

Komunikacija

Ključni aspekt specifikacije je u tome da se grupe ljudi koje imaju različita mišljenja o projektu navedu na razgovor i da se pritom poštuje svačije mišljenje. Veoma je važno da svi budu svesni da je kreiranje specifikacija ne samo težak i emotivan proces već da takođe ima važnu ulogu u određivanju trajanja projekta i njegovoj budućnosti.

To je vreme najvećih tenzija

Klijenti žele da dobiju najviše za svoj novac, i veoma često se iznerviraju kada shvate da nemaju dovoljno novca da ostvare svoje vizije. Programeri imaju izlive besa, žaleći da su ideje klijenata nemoguće sprovesti u delo i da ima previše toga da se uradi za premalo vremena. Menadžeri projekta izgaraju, pokušavajući da sve smire sve, kopajući sami sebi grob obećanjima, koja daju obema stranama, a koja je nemoguće ispuniti.

Ipak, pored sve drame, to je vreme kada donosioci odluka na svim pozicijama treba da rade zajedno u određivanju prioriteta. Klijenti treba da izlože ključne zahteve, programeri treba da naglase polja tehničke neizvesnosti i teškoća, a projekat menadžeri bi trebalo da potraže najpogodnija rešenja u skladu sa datim vremenom i novcem. Ali najvažnije, to vreme kada ljudi treba da pokušaju da razumeju jedni druge.

Klijentova perspektiva

Iz klijentove perspektive, uključivanje u kreiranje specifikacija trebalo bi da bude veoma korisno. Veoma često klijenti dođu sa jasnom vizijom o tome šta žele da postignu (ili bar tako misle) i učestvujući u kreiranju specifikacija mogu da otkriju potencionalno nova rešenja i mogu biti inspirisani mogućnostima za koje nisu ni znali da postoje. Konfrontirani od strane ljudi koji imaju radikalno drugačije mišljenje, klijenti mogu da nauče dosta o svom biznisu i da to primene na njihove svakodnevne aktivnosti. Klijenti koji jednostavno dozvole malo zdrave diskusije imaju priliku da upoznaju nove potencijale svog poslovanja.

Perspektiva programera

Za programere stvaranje specifikacija je savršeno vreme da razumeju projekat u celini i njegove prioritete. To je vreme da postave prava pitanja i razmisle o potencionalnim rešenjima, istaknu oblasti koje su tehnički izazovne i one koje će se lako sprovesti. Timovi programera najbolje mogu odrediti vremenski okvir u kome se može kreirati svaka komponenta projekta, i u tom slučaju, najbolje da ih ostavite same u njihovoj gik-žestokoj diskusiji, koju niko drugi ne bi ni razumeo. Kada su uključeni u proces kreiranja specifikacija, programeri postaju vredan izvor jer oni su ljudi koji će transformisati ideje sa papira u radni kod.

Perspektiva projekat menadžera

Iz perspektive projekat menadžera, posedovanje specifikacije trebalo bi da bude jednako važno. Specifikacija je referentni okvir pri ažuriranju vremenskih okvira, budžeta i plana projekta. Dinamička priroda specifikacije projekta je njegova osnovna karakteristika i trebalo bi da se menja u kontekstu novca, vremena i ljudskih resursa. Za projekat menadžere, specifikacije su sredstvo pregovaranja sa klijentima kada opseg posla i zahtevi počinju da izmiču kontroli ili vremenski okviri postanu pretesni. Oni su takođe odlična mera timskog rada i  referenca za praćenje projekta. Kada su sastavljene kako treba, specifikacije postaju indikator progresa i sredstvo putem koga se mogu uporediti inicijalne vremenske procene sa stvarnim realizacijama, omogućavajući utvrđivanje ranih korelacija u kalendaru projekta i vraćajući kontrolu u ruke projekat menadžera.

Kako sastaviti dobru specifikaciju

Verovatno najvažnija karakteristika specifikacija je njihova dostupnost. Specifikacije bi trebale da budu razumljive za sve učesnike, posebno klijenta, i ovo je verovatno mesto gde funkcionalne i tehničke specifikacije najčešće omanu. Dostupnost takođe znači da specifikacije treba da budu dostupne svim stranama, sve vreme, i da treba da postoji jednostavan način za davanje predloga i diskusiju u vezi sa promenama.

Naravno, specifikacije koje pokušavaju da opišu šta će korisnik moći da vidi i uradi u svakom koraku nisu uvek najbolja ideja. Pisanje specifikacije za ulaznu obradu internet sistema je ekstremno dosadan proces i takva specifikacija je i jednako dosadna za čitanje. Verovatno je mnogo bolja ideja da se specifikacije pišu u obliku kratkih scenarija šta bi svaki korisnik mogao, a da im se onda dodatno dostave storyboard-ovi  i modeli.
Ova kombinacija storyboard-ova (ili dizajn modela) i scenarija dozvoljava svim stranama da produkuju ključne elemente projekta i njegove važne tehničke aspekte. Oni daju trenutni vizuelni prikaz i objašnjavaju postupak na način koji olakšava klijentima da artikulišu njihova očekivanja, programerima da razumeju poslovne prioritete i projekat menadžerima da kontrolišu proces na svesniji način. Postoje mnogi online alati koji mogu biti od pomoći: Basecamp, Trello ili Pivotal Tracker, koji bi trebalo da učine ovu komunikaciju lakšom. Koji od njih odabrati (ako oni budu Vaš izbor) teška je odluka, ali cilj je da se sve strane uključe i da pričaju među sobom.

Zaključak

Najzad, specifikacije su alat koji čini projekte jasnijim i predstavljaju žarište za diskusiju i razmenu ideja. Oni nisu samo plan za implementaciju tehničkih rešenja i način da se dokumentuje promena i meri uspeh, već su takođe šansa za klijente, programere, dizajnere i projekat menadžere da se nađu zajedno i sarađuju na kreiranju najadekvatnijeg (najboljeg) mogućeg projekta. Bez dobre specifikacije, ne samo da će biti teško da se sprovede projekat u celini već je takođe verovatno da će sve uključene strane drugačije vizualizovati rešenja različitih problema.

 

Web Dizajn, SEO, Social Media