Web program za plate – slušati zahteve korisnika ili ne?
Prošle nedelje sam nekolicini registrovanih omogućio pristup radnoj verziji najjednostavnijeg programa za obračun plata i od nekoliko ljudi sam dobio istu primedbu i sugestiju, koju sam odradio u zadnja 2 dana, ali i večeras ipak odlučio da odstranim taj već odrađeni kod.
Razlog zašto sam to odlučio je po meni veoma zanimljiv i izlazi van suvoparnog konteksta programa za plate pa rekoh da podelim sa vama svoje rezonovanje na tu temu koristeći program za plate čisto kao pokazni primer.
Opis problema i sugestije
Opis problema je za mene bio prilično šokantan: “Kako da odštampam obračun zarade? Kako da ga snimim kao pdf fajl koji onda mogu da pošaljem svom klijentu? Kako da odštampam m4 obrazac?”
Evo stranice koja pokazuje spisak obračunatih zarada u stanju kakav je bio prošle nedelje na kome sam ja osmislio da se štampanje ostvari.

Složićete se verujem da kada vam više korisnika postave ovako bitno pitanje uvidite jako brzo da imate kritični problem u svom pristupu dizajna ekrana.
Analiza problema
Osnovni problem je očigledno to što na samom ekranu nije jasno uočljivo gde korisnik treba da klikne da bi odštampao obračun. To što u koloni izveštaji stoji link dokumentacija koji je po meni očigledno namenjen za to sudeći po povratnim informacijama ne znači apsolutno ništa.
Pošto je štampač opšte prihvaćen grafički simbol koji asocira na štampu, odmah menjam njime ovaj glupi link

Kao što vidite na ovom ekranu, ikona štampača je uočljiva u zadnjoj koloni – problem otkrivanja je rešen, a ista metafora se koristi i za sekciju zbirnih izveštaja.
Hm, testirajući rešenje sa par mojih testera dolazim do novog feedbacka – “zašto klik na štampač ne štampa nego mi pokaže moje dokumente na ekranu?”

Ok, validan feedback – tehnički precizno govoreći zaista se ne štampa ništa nego se pokazuje PDF dokument u Adobe Reader-u – menjam…

Feedback? “A šta je ovo crveno? Kako da odštampam obračun? Kako da ga snimim” – menjam….
Nekoliko revizija i iteracija sa mojim testerima i dolazim do rešenja koje obuhvata sve sugestije

Feedback na vizuelnu skicu – jednoglasan :
“Odlično. Sad imam dugme za štampu, za snimanje, za brisanje i za pregled. Kako to da ovo nisi odmah ovako odradio kad je ovako prosto i očigledno?”
Ništa, kad je tako – kodiram rešenje i testiram ga prošlu noć – problem rešen.
Međutim…
Iz nekog razloga meni nepoznatog, meni se rešenje nije dopadalo te sam danas vozeći se metroom na posao razmišljao o tome šta je ispravno ovde učiniti. Na ovom blogu sam više puta već pisao o tome kako mi je interes korisnika uvek na prvom planu pa čak i kad ide meni na štetu i ovo mi je izgledalo kao savršen primer gde moram da prihvatim da odradim nešto u šta ne verujem jer korisnici to traže.
Truckam se ja tako u metrou pospano sve do momenta dok se nisam setio one čuvene izjave Henrija Forda “Da sam pitao korisnike šta žele, tražili bi mi brže konje.” i to me nagnalo da krenem da razmišljam o tome zašto mi to oni traže.
Odgovor do koga sam ja došao razmišljajući na ovu temu se svodi na to da oni verovatno u svom obračunavanju plata koriste programe za obračun plata (dos, Windows – nebitno) i da im je u glavi mentalni model oko toga kako rade obračun zarada satkan oko toga kako aplikacije funkcionišu, a ne oko toga kako Web prirodno funkcioniše.
Ono što mi oni traže su dugmad koja iniciraju određene operacije što ima smisla u desktop svetu, ali nema u Web svetu koji je satkan od sadržaja prikazanog na ekranu povezanog sa drugim sadržajima hiper vezama itd.
Taj zaključak do koga sam došao me je naterao da preispitam danas šta je najbolje za moje korisnike i odgovor do koga sam ovo puta došao je potpuno drugačiji, a to je da je ispravna stvar da implementiram svoj sajt na najjednostavniji mogući način koji je najviše moguće usklađen sa “duhom Web-a” i da trebam da se fokusiram na propagiranje i edukaciju takvog pristupa jer je prihvatanje toga zaista u najboljem interesu mog korisnika iako znam da će naići na bitan inicijalni otpor.
Rešenje

Kao što vidite, ovo je jednostavno rešenje koje je funkcionalno povratak na početak gde je jedino odstupanje od Web duha grafički prikazani hiper link – tekstualni link na žalost niko ne vidi.
Poenta ovog ekrana je da pokaže spisak obračuna i omogući korisniku da pronađe onaj koji mu treba – ništa više od toga.
Kada korisnik želi da snimi/odštampa/pošalje on klikne na lupu (koja je najobičniji a href element) i onda mu se u novom tabu/prozoru otvara pdf dokument.
S obzirom da sam odlučio da nemam zasebno dugme za štampu, a imajući u vidu da je verovatno u 90% slučajeva željena štampa dokumenta automatski podrazumevano pokazujem momentalno dijalog za štampu korisniku istog momenta kada se učita izveštaj

U 90% slučajeva korisnik samo klikne Print (ili lupi Enter) i dokument se štampa – koristi se standardna funkcionalnost PDF readera.
Ok, štampa je pokrivena time na efikasan i elegantan način – šta je sa ostalim zahtevima? Kako da se snimi dokument i pošalje klijentu?
Po meni je najbolji odgovor na to – nemojte ni da snimate jer onda mu šaljete dokument emajlom, on nema vremena danas da pogleda, otvara to sutra, a vi u međuvremenu ispravili neku grešku u obračunu itd… Ja razumem da je sve to standardna procedura u tome kako većina ljudi radi danas, ali nam Web daje mnogo jednostavnije rešenje – Web adresu dokumenta.
Evo recimo na primeru gore, ako ja kopiram adresu iz mog browsera i pošaljem vam emajl-om vi ćete moći da je otvorite čak i da nemate nikakav nalog na papirima. Evo, probajte sami…
https://arhiva.papiri.rs/1034075907901927/2013/Plate/TEST_9792_Plata_2013_3.pdf
Osnovna prednost ovog pristupa je da se izbegava pojava više verzija dokumenata gde više ni vi ni klijent ne znate koja je poslednja – kad god klijent ili vi kliknete na gornji link videćete ažurnu verziju obračuna plate za jun 2012-e.
Ipak, recimo da se ne slažete sa mnom ili da iz nekog razloga da vi ipak želite da snimite dokument – šta onda?
Rešenje je prosto – koristite Web kako je standardno osmišljen na jedan od sledeća dva načina
Način 1 – povlačenje miša do dna stranice da se pojavi alatna traka sa operacijama reader-a

Način 2 – korišćenje menija samog browsera.

Zaključak
Ovo je po meni dobra ilustracija principa u koji ja verujem a sastoji se u tome da treba odabrati uvek pravi put koji je u najboljem interesu korisnika pa čak ako se to i kosi sa njegovim trenutnim zahtevima.
U ovom primeru ja sam umesto dodavanja dugmadi i pravljenja aplikacije od sajta, odabrao rešenje koje je jednostavno i elegantno i koje sa zasniva na standardnim principima kako Web funkcioniše.
To što moji korisnici možda nisu naviknuti na Web nije razlog da promenim svoju implementaciju već je to dobar pokazatelj da trebam da radim više na edukaciji i evanđelizmu po meni suštinski ispravnih rešenja.
A sad, nazad na programiranje – kraj meseca se bliži – treba sve utegnuti i završiti do tada
Juče sam na putu kući prolazio jednim parkom i video sam nešto što me podstaklo na razmišljanje o 










Ne, nisu to moje reči (iako uslovno odražavaju suštinu mog stava) nego naslov
ođena malom ekranu telefona dok web stranica nije, ali identična stvar se ponavlja i na mom kućnom računaru gde imam 26“ ekran i na mom lap topu (15“) tako da po meni to i moja objašnjenje ne pije vodu. Ne radim ja to što „mrzim web“, već isključivo zato što udobnost korišćenja i moja produktivnost kada koristim twitter desktop klijent u veoma velikoj meri prevazilaze korišćenje twitter web sajta. Da li to znači da mi internet nije potreban i da mi je dovoljna samo ta aplikacija? Naravno da ne jer bez interneta i twitter servisa u oblaku aplikacija je beskorisna. Naravno da ne jer želim da pristupim podacima sa svakog od mojih uređaja, dok sam u metrou u pokretu itd…
Kada se korisnik prijavi prvi put na program, na njegov lokalni kompjuter se sadržaj baze sa interneta sinhronizuje. Inicijalno bi to rezultovalo sa kopiranjem kompletnog seta podataka sa servera u oblaku na server u lokalu. Svaka naredna sinhronizacija rezultuje prenosom samo diferencijala nastalih od poslednjeg sinhronizovanja.
U većini slučajeva poslovnu aplikaciju koristi više od jednog korisnika – „kancelarijski scenario“.
Ovo je prednost koja se ne tiče korisnika nego nas autora. Kod web aplikacije prelazak sa 10 na 10.000 korisnika rezultuje eksponencionalnim rastom troškova usled povećanja protoka i usled činjenice da svih 10.000 korisnika zavise od hardvera jedne mašine – server (lokalni resurs računar apotpuno neiskorišteni – detaljniji opis problema dat
Ako pogledate potražnju za stručnjacima “na zapadu” videćete da je 10x veća potražnja za web programerima nego za desktop programerima. Večina proizvoda stvorenih u zadnjih 5+ godina koji koristite su web aplikacije (GMail, Facebook itd). Desktop aplikacije koje ste počeli da koristite u to vreme su ili kreirane pre tog perioda ili su rezultat bitisanja u delu sveta lociranom na perfieriji informatičkih trendova. Čak je i sam Microsoft, uvidevši pretnju od Google Docs paketa kancelarijskih aplikacija, ChromeOS-a, iPad-a itd primoran da investira ozbiljne izbose u web office aplikacije i windows azure. “Web je pobedio, desktop je mrtav!” – odjekuje iz svih novina. Game over? 
