Piši briši

Programi za knjigovodstvo – ispravljanje i brisanje unetih podataka

Za temu današnjeg članka odabrao sam da sa vama podelim svoja razmišljanja o jednoj nezaobilaznoj temi u vezi programa za knjigovodstvo, a to je: mogućnost ispravljanja i brisanja unetih podataka.

Programska rešenja implementirana u programima za knjigovodstvo variraju od potpune zabrane do potpune dozvole ispravljanja, što samo svedoči o tome koliko je ovaj aspekt programa za knjigovodstvo bitan i autorima i korisnicima.

Ja lično razlikujem četiri različita pristupa ovom pitanju koja su upravo predmet ovog članka.

1. Sve po zakonu

Član 8. Zakona o računovodstvu i reviziji je jedini član koji definiše šta računovodstveni programi moraju da  ispune da bi bili u skladu sa zakonom

“Pravno lice i preduzetnik koji vrši obradu podataka na računaru dužan je  da koristi standardni računovodstveni softver koji omogućava  funkcionisanje sistema internih računovodstvenih kontrola i  onemogućava brisanje proknjiženih poslovnih promena.”

Dakle, po Zakonu, jedan je jedini atribut koji knjigovodstveni program treba da ispuni, a to je da onemogući brisanje i izmenu podataka. Ako se zakon tako eksplicitno odnosi ka tome, postavlja se pitanje smislenosti dalje diskusije na ovu temu jer izgleda očigledno da brisanja/izmeni ne sme biti, zar ne?

Za većinu firmi zastupljenih na našim prostorima duži niz godina, diskusija je zaista tim članom i završena:

“Brisanja i ispravki nema i zbog zakona i zbog samih korisnika.”

Na Lidder sajtu postoji odličan tekst pod nazivom Brisanje podataka je obavezna mogućnost… u zonskoj B ligi. koje na maestralan način predstavlja argumente u korist ovog stava, a koji se, grubo svedeno, svode na to da je jedini pravi ozbiljan profesionalni pristup koji je u najboljem interesu i autora i samog korisnika pristup koji ne dozvoljava nikakvo brisanje/izmenu podataka jer se na taj način postiže integritet podataka uz poštovanje svih propisa. Da ne dužim o voj grupi više, kliknite na link gore i pročitajte tekst, ja vas čekam ovde dok ne završite….

2. Može sve

Za razliku od stava većine velikih programa, mnoštvo malih programa na našem tržištu nude “brisanje, otknjižavanje, odčekiranje, menjanje, reknjiženje, ponovna potvrda”.  Drugim rečima, brisanje i izmena podataka su potpuno dozvoljeni,

Autori programa iz ove grupacije baziraju tu odluku na sledećim principima:

  • Svaki potencijalni korisnik im traži da prepravi pogrešno unete podatke – “bez toga ti nema prodaje garant”
  • Program se prodaje samo lično poznatim ljudima – “ako ste sami, vi ukucajte ovu šifru, a ako dođu štrumfovi vi dodajte 01 na kraju i sve će biti u redu”
  • Ne postoji standard ni sertifikaciono telo – “ko će ikad i kako da kontroliše to”
  • Korisnicima integritet podataka nije od primarnog značaja jer imaju sveske, teftere, knjige i sl. gde olovkom upisuju “stvarno stanje”, te im je OK papazjanija od podataka u programu – “to ionako knjigovođa moj ima kod sebe ispravljeno”

Sad vi garant očekujete bezrezervnu osudu i ograđivanje od ovakvih korisnika, programera i programa.

I čekate i čekate…

Uzalud čekate – neću biti ovde potpuni licemer pa da se pravim da za svojih 15-tak godina profesionalnog programiranja nikad nisam radio takve stvari. Kada ste mali programer koji tek počinje radeći programe za “svoj komšiluk” ne možete sebi da priuštite gnušanje nad tim zahtevima kao što veliki programi mogu iz prostog razloga što nemate stotine korisnika već 4 od čijih para sastavljate kraj sa krajem svakog meseca. Realno, baš to što ste voljni da udovoljavate tim nebuloznim zahtevima korisnika je njega i nagnalo da dođe do vaših vrata i rizikuje sa vašim neproverenim programom.

(Hvala Dinkiću za PDV i fiskalne kase jer verujem da nema više toliko ovakvih zahteva od strane korisnika.)

Razumem i te korisnike koji to traže, jer time što im program postavlja prestroga ograničenja sputava se njihova produktivnost. Svakome se desi da tek kad odštampa fakturu preda kupcu na potpis, taj korisnik primeti da je na njoj pogrešna stavka  i slični scenariji. Stornirati celu fakturu pa unositi ponovo može da bude jako naporno. Stornirati deo fakture u cilju korigovanja pogrešnih stavki takođe može biti naporno. Sve što korisnik želi od svog programa je da mu omogući da sa što manje utrošenog vremena i rad obavi to što je naumio, a previše rigidan program definitvno može da bude smetnja u tome.

Da li to znači da sam idejno pobornik ove “može sve” grupe?

Apsolutno ne!

Posle svih ovih godina shvatio sam da je dati korisniku program koji može sve identično davanju napunjenog pištolja detetu – pre ili kasnije će neminovno doći do scene iz Taličnog Toma sa metkom slučajno ispaljenim u sopstveno stopalo. Papazjanija se pre ili kasnije se obije o glavu svima.

3. Može sve (dok je sve po zakonu)

Treća grupa programa pristupa ovom problemu brisanja/izmene podataka u knjigovodstvenim programima na kreativan način pokušavajući da zauzme srednji put između ova dva rešenja i omogući korisniku – “zakonsko brisanje”.

Logika ovih programa za knjigovodstvo se uglavnom bazira na tome da je u pomenutom članu 8. Zakona o računovodstvu eksplicitno navedeno da treba onemogućiti brisanje “proknjiženih poslovnih promena”. Po toj logici, sve dok određeni dokument nije proknjižen, zakon dozvoljava brisanje/ispravke unetih podataka.

Postavlja se  naravno pitanje, koliki je maksimalni zakonom propisani vremenski period u kome je dozvoljeno neproknjižiti poslovnu promenu.

Sudeći po članu 11 istog Zakona o Računovodstvu radi se o maksimalno 4 dana: 3 dana za dostavu dokumenata na osnovu kojih se knjiži računovodstvu i jedan dan za samo knjiženje tako dostavljenih dokumenata. U eri računara ova odredba  je po meni apsolutno nebulozna odredba, ali to je zasebna priča…

Elem, na osnovu navedenog tumačenja programi iz ove grupe sve unete dokumente smatraju “nelikvidiranim” i dok su u tom stanju korisnik može da ih menja koliko god želi. Unutar programa obično postoji deo koji likvidira dokumente pojedinačno/grupno, ad hoc/u intervalima, automatski/ručno.. Jednom likvidirani dokument je nemoguće menjati.

Suštinski vrednosni predlog ovog rešenja je dakle:

  • autor programa i korisnik ne krše zakon
  • korisnik može da menja dokumente
  • korisnik sam određuje vremenski interval u kome mu je potrebno da dokumenta budu u otključanom stanju.
  • podela posla između korisnika i knjigovođe gde dokument likvidira knjigovođa vršeći finalnu proveru unetih podataka

Zvuči savršeno, zar ne? Da li to znači da sam ja u “može sve dok je po zakonu” grupi?

Na žalost, ne.

Iako je ovo je rešenje po meni mnogo bolje od prethodna dva, rezultuje sa nekoliko novih problema.

Prvi problem se sastoji u tome kako program tretira podatke nelikvidiranog dokumenta.
Uzmimo za primer neku prodavnicu koja na stanju ima 2 Milka čokolade po prodajnoj ceni od 10 dinara. Ukucava se nova prijemnica na kojoj je jedna stavka  koja ima 5 Milka čokoladi po nabavnoj ceni od 11 dinara. Prijemnica nije likvidirana nego se likvidira na kraju dana od strane knjigovođe.Dolazi kupac koji želi da kupi 3 čokolade.

Da li dozvoliti prodaju količine koja uključuje i količine sa nelikvidirane prijemnice? Kako odraditi nivelaciju Milka čokoladi na novu cenu koja  reflektuje novu nabavnu cenu kada ulazni dokument još nije likvidiran? Na koju količinu se niveliše?

Sumirano: vremenski disparitet materijalnog i finansijskog stanja može da rezultuje problemima po korisnika – još jedan pištolj dat detetu.

Drugi manje bitan problem se svodi na to da dodatni korak likvidiranja  može korisnicima koje to ne zanima da bude na teretu. Takođe, šta ako se zaboravi da se likvidira u toku ta 4 dana?

Po mom mišljenju, ovo rešenje je realno primenljivo, ali suboptimalno po krajnjeg korisnika jer unosi određenu dozu komplikovanja poslovnih procesa.

4. Advokat

Da budem odmah iskren i kažem da iako sam ja lično odabrao ovaj pristup problemu brisanja nisam video nijedan program koji ga implementira.

Implementaciono govoreći, moje rešenje naginje rešenjima iz prve grupe u smislu da se striktno drži zakona bez “rastezanja članova” bez korišćenja zakonski dozvoljenih štosova za “odloženo vremensko zaključavanje” dokumenta. Korisnik se na taj način lišava negativnih nuspojava dispariteta materijalnog i finansijskog.

A šta je sa korisnikom? Zar se nisam gore izjasnio da ih razumem u želji da imaju produktivno okruženje?

Zar ja sam na svom blogu nisam mnogo puta rekao da mi je interes korisnika uvek na prvom mestu?

Naravno da mi je stalo do korisnika.

Ovo što sam gore naveo se odnosi na implementacionu suštinu, ali se ne odnosi na percipiranu formu koju korisnik sreće. Da pojasnim malo ovaj stav na prostom primeru.

Korisnik-prodavac unese račun sa 10  Milka čokoladi (izgleda da mi je pao šećer kad mi se samo čokolade motaju po glavi Smeško) i klikne na Snimi dugme. Istog momenta kada je račun snimljen on je i likvidiran i snimljen. Balans finansijskog i materijalnog je samim tim uvek očuvan.

Kupac se požali i kaže da je hteo 12, a ne 10 čokoladi.

Korisnik-prodavac otvori račun i ISPRAVI količinu sa 10 na 12 komada.  Što se korisnika-prodavca tiče, njegov program ima “neograničenu” mogućnost direktnog ispravljanja.

Ispod haube, moj program kreira odgovarajuće vezane korektivne dokumente koji materijalno i finansijsko stanje koriguju na željene vrednosti. Kada korisnik sledeći put otvori pomenuti račun, program je u stanju da pronađe originalni i korektivne vezane dokumente i opet prikazuje korisniku samo “krajnje stanje”.

Da li korisnik vidi te vezane dokumente?

U većini slučajeva ne iz prostog razloga što ih većinu njih u većini slučajeva to uopšte ne zanima to.
Onima koje to zanima (npr. knjigovođa) naravno se ponudi detaljan uvid u sve vezane dokumente “kakvi jesu”.

Kao što advokat pomaže svom klijentu poštovanje kompleksnog zakona, tako i moj program pomaže korisniku da u potpunosti ispoštuje zakon bez negativnih posledica po njegovu produktivnost i efikasnost rada.

Zaključak

Pre nego što zaključam za promene ovaj post da sumiram iznešeno…

Izneo sam podelu programa za knjigovodstvo po kriterijumu tretiranja brisanja/izmene podataka. Ta klasifikacija je obuhvatila rešenja koja se striktno drže zakona sa ili bez korisničke fasade, ne obaziru na zakon i rešenja koja elastično tumače zakon. Kao i uvek, ne tvrdim da je ta klasifikacija univerzalno tačna i slično, samo je odraz mojih ličnih shvatanja koja sam želeo da podelim sa vama.

Da li se slažete sa mojim izborom Advokat pristupa kao najboljeg? Da li sam propustio da spomenem neku grupu? Kojoj grupi pripada program koji trenutno koristite?

Od viška glava (ne) boli

Program za knjigovodstvo – moćan i fleksibilan

Gužva u džungli

30. oktobra 1974-e u Zairu se odigrao jedan od najboljih boks mečeva između aktuelnog svetskog šampiona Džordža Formena i Muhamed Alija – “gužva u džungli. Meč je trebao da bude rutinsko prebijanje Alija od strane Foremana jer je Foreman  bio mašina neverovatne snage koja je jednog Frejzera u samo dve runde nokautirala 6 puta. Muhamed Ali je sa druge strane bio znatno slabijeg udarca i reputacije, ali mnogo pokretljivi i brži.

Čak ni komentatori pristalice Alija mu nisu davali nikakve šanse u duelu jer je sva logika i bokserska praksa govorila jasno u prilog da svestraniji Foreman pobeđuje. Rezultat ove istorijske bitke je dobro poznat: Ali je kao pčela plesao oko Foremana sedam rundi, potpuno ga izmorio i onda ga nokautirao nošen skandiranjem desetine hiljade Zairaca: ”Mumbaje Ali, Mumbaje Ali” (Ubij ga Ali…).

Ok, priča zanimljiva, ali kakve veze imaju knjigovodstveni program i gužva u džungli?

Suštinski se svodi na to da je to ilustracija kako se ispostavilo da je Alijeva brzina i pokretljivost postigla mnogo veći efekat od svestranijeg, spremnijeg i u svakom pogledu jačeg Foremana. Da prenesem tu analogiju polako sad na program za knjigovodstvo

Features sell

Tradicionalno u segmentu poslovnih (eng. enterprise) aplikacija vlada nepisano pravilo Features sellšto grubo prevedeno označava da je uspešnost prodaje poslovnog softvera direktno proporcionalno broju dodatnih osobina i funkcija koje on ima u poređenju sa konkurentskim programima.

Tačnost i delotvornost ovog pristupa potvrđena je tržišnim uspehom proizvođača ovakvih aplikacija u zadnjih nekoliko dekada, a primera takvih aplikacija je mnogo: od Microsoft Excell-a do skoro svih programa za knjigovodstvo domaćih i stranih. Programi ovog tipa su toliko načičkani funkcijama da se često porede metaforički sa “švajcarskim nožićem”.

O kompleksnosti tih aplikacija kao problemu po korisnika programa za knjigovodstvo sam već pisao, te ću ovde da se osvrnem na jedan drugi problem, a to je da je izrada i održavanje takvih projekta izuzetno skupa i zahteva veliki broj radnika, što čini praktično nemogućim “+1 tržišnu borbu”  (imanje više funkcija od konkurencije). Kao ilustracija toga može da posluži da u “super teškoj” kategoriji knjigovodstvenih programa u SAD postoji samo jedna ozbiljna firma: Intuit.

Da li to znači da ne postoje druge firma u Americi koje rade knjigovodstvenim programima? Naravno da ne. Ostale firme uglavnom primenjuju taktiku patentiranu od strane Steve Jobs-a

“Ako ne možeš nekog da pobediš u nekoj igri, promeni igru.”

To se u praksi svodi na to da se konkurencija okreće rešenjima čiji je akcenat sa težnje na imanju što više funkcija pomeren na imanje što manje funkcija, a sve to na bazi logike da je većini korisnika u stvarnosti potreban samo jedan veoma mali broj funkcija kompleksnih i moćnih rešenja, te da svo to mnoštvo funkcija koje “teškaši” nude korisniku samo smetaju .

Primera ovih programa ima mnogo: od kanoničnih Google Docs-a i Basecamp-a do knjigovodstvenih programa poput Freshbooks.

Ja nisam pristalica ni jedne ni druge grupe, već moje opredeljenje ide u pravcu “što većeg broja pametno odabranih funkcija” . Jedan od ljudi koji je taj stav objasnio na maestralan način je Joel Spolsky, prema čijem iskustvu imam neizmerno poštovanje.

Ako vam slušanje predavanja na engleskom jeziku nije problem obavezno odvojite sat vremena za ovo.

Za sve nas prezauzete da odvojimo sat vremena za gledanje bilo čega evo jednog mog primera koji ilustruje takođe moj pristup na jedan “konkretan” način…

Procesi, a ne funkcije…

U jednom od mnogih četova koje sam imao sa Aleksandrom Saveskim, dotakli smo se tematike korisničkog filtriranja podataka prikazanih u tabeli.

Sasvim ispravno i u duhu rešenja iz grupe švajcarskih nožića, Aleksandar je izneo primer o tome kako je korisno imati mogućnost filtriranja podataka poslovnih partnera predstavljenih u tabeli po različitim kriterijumima koji čak mogu biti i povezani logičkim operacijama omogućavajući time fleksibilno i moćno filtriranje podataka. Ideja je takođe da se korisniku omogući da određene često korišćene izraze za filtriranje snimi i kasnije samo pozove iz liste predefinisanih filtera.

Evo vrlo grube ilustracija ideje takve tabele (nema veze nikakve sa rešenjem koje Aleksandar implementira)

Odmah da razjasnimo nešto: ovo rešenje je po mom mišljenju konceptualno sasvim na nivou najboljih programa i kao takvo implementirano u dosta svetskih programa. Drugim rečima, bez obzira na dalji tok ovog teksta, ne tvrdim da je rešenje pogrešno per se, samo nije u skladu sa mojom filozofijom građenja programa – dozvoljam verovatno pogrešnom.

Ja sam se naravno kao svaki pravi zagrižen programer  odmah složio da je to moćno i fleksibilno rešenje, ali sam onda stavi svoju kapu “arhitekte” i krenuo da “glumim đavoljeg advokata” te ga zapitao koji je konkretan slučaj kad je filtriranje potrebno.

Po meni je vrlo neverovatno da će bilo koji korisnik doći do ekrana sa listom korisnika iz čiste dosade, uvek postoji neki razlog i izuzetno je bitno proniknuti u to na to koji proces iz stvarnog sveta rezultuje tim dolaskom korisnika na taj ekran sa listom korisnika.

Da li je to traganje za šifrom kupca koji sedi sa druge strane stola, nasuprot komercijaliste i čeka da poruči robu?  Moguće – dosta programa ima tu funkciju, ali to što dosta programa implementira nešto na isti način ne znači neizostavno da je to ispravan način. Svaki kupac zna napamet jedinstveni PIB sopstvene firme tako da je sa tog aspekta pretraga partnera suvišan korak koji je moguće preskočiti direktnim odlaskom u unos računa, pitati kupca koji mu je PIB i njegovim ukucavanjem momentalno odrediti kupca računa.

Evo scenarija koji je Aleksandar spomenuo i koji na prvi pogled je očigledan dokaz svrsishodnosti filtera.

Šta ako je izvođaču građevinskih radova potrebna lista građevinskih radova koji su završeni, a koji nisu naplaćeni? Zar to nije savršen slučaj za filter od dva elementa i oni dobiju izveštaj kakav njima treba?

Na prvi pogled, diskusioni nokaut dostojan Alijevog iz 7 runde. Moj odgovor (naravno) je bilo opet pitanje zašto je ta lista treba korisniku uopšte? Šta će on sa njom da uradi jednom kad je vidi na ekranu?

Objašnjenje je bio da korisnik na bazi te liste kreira račun za izvršene radove koji ispostavlja naručiocu radova – što nas dovodi do ključnog dela ovog teksta – ilustracije mog stava

Korisnika ne zanima funkcija “filtriranja liste radova koji su završeni i neplaćeni”.
Ono što njega zanima je automatizacija procesa “fakturisanje neplaćenih radova”.

Grubo i čisto hipotetički ilustrovano, ne treba njemu tabela sa filterima, grupisanjima i sortiranjima, već jedno jedino “dugme” koje kad klikne mu otvori ekran za unos računa kod koga su kao stavke uneseni automatski svi završeni, a neplaćeni radovi. On onda prođe brzo kroz tu listu i izbaci stavke koje neće da fakturiše i to je to.
(Ako se uvek fakturišu SVI neplaćeni radovi ni korak sa pregledom računa ne bi bio potreban – pritisak na dugme i faktura izlazi)

Korisnici, a ne mi (programeri)

Najveći problem u pravljenju poslovnih aplikacija je u tome da ih prave programeri, a ne sami korisnici. Kada to kažem naravno da ne mislim da su programeri glupe i nesposobne individue, naprotiv spadaju u društveni vrh po tom pitanju. Ono na šta mislim je da su po definiciji programeri ljudi tehničke edukacije ili bar “skloni tehnici” i kao takvi fokusirani na implementacino–tehničke aspekte programa.

Ko bi mogao od programera odoleti tako savršenoj tabeli koja automatski radi grupisanje, sortiranje, zamrzavanje, pretraživanje itd – sve bez ijedne linije koda?

Usled te opčinjenosti alatima, programskim jezicima i sličnim tehničkim aspektima veoma je lako smetnuti sa uma da svi ti alati služe modelovanju i automatizaciji stvarnih poslovnih procesa korisnika programa i zameniti taj pristup potpuno obrnutim pristupom gde se stvarni procesi prilagođavaju alatima.

Koliko puta ste pomislili ili čuli nekog da kaže nešto poput
“Ova tabela korisnička kontrola je super cool, pitam se kako i gde bi smo mogli da je koristimo u programu?”

Zaključak

Dobar knjigovodstveni program nije ni švajcarski nožić ni “glorifikovani text box”. Dobar knjigovodstveni program menja “fleksibilnost” za “fokusiranost”, orijentaciju na opcije koje “mogu da podrže bilo koji korisnički zahtev” sa orijentacijom na “obuhvatanje i sažimanje procesnog koraka više”. Dobar knjigovodstveni program pokušava da što više i što verodostojnije reflektuje poslovnu stvarnost – ne očekuje od korisnika da se prilagodi programu, već je on prilagođen njemu.

Evo i nekoliko mojih pitanja za sve Vas:

  • Koliko ima funkcija knjigovodstveni program za koje niste ni sigurni kako rade?
  • Da li smatrate da preterujem u “pasiranju hrane” i da je “moćna tabela sa filterima” baš ono što vama treba?
  • Ako ste u poslu izrade knjigovodstvenih programa, molim vas kažite da li u svom programu pratite “+1 pristup” i nadmašite konkurenciju u pogledu šta sve vaš program ume ili imate neki drugi pristup?
  • Ko je u pravu bio: Aleksandar ili ja?

Vaš procesno orijentisano piskaralo,
Nikola Malović

Dovoljno dobar knjigovodstveni program

Algoritmija – zemlja programera

Otkriću vam vam ovde premijerno jednu od najbolje čuvanih tajni na svetu:

“Programeri su magična bića koja žive u magičnoj zemlji Algoritmiji.“

Šokirani, zar ne? Niste očekivali? A tek kad čujete kako u Algoritmiji vladaju drugačija pravila igre: ne programira se za platu, Program na kome se radi se ne prodaje za novac, ne koriste ga stvarni ljudi već isključivo zamišljene nasmejane čikice sa izrazom iskrenog oduševljenja dok koriste Program.

U Algoritmiji niko ne “programira” – svi Programeri rade uvek i isključivo na najsavršenijim, najbriljantnijim i najlepšim i genijalnim umetničko naučnim kreacijama. Programeri u Algoritmiji preziru malograđanske okove vremenskih rokova – vremenski rok za izradu nečeg ima samo jednu ulogu – da mu se grohotom nasmeje kada se prekrši. Za svoj rad Programeri u Algoritmiji su plaćeni novcem koga Poslodavac materijalizuje sa najvećom lakoćom iz vazduha u neograničenim količinama pukim pucketanjem prstiju.

Bedna stvorenja zvana Korisnici nemaju (naravno) prvo glasa iz prostog razloga što nisu Programeri te samim tim ni kadri da pojme svojim ograničenim umovima smrtnika uzvišenost kreacije Programera zvane Program. Korisnici i sami znaju svoje mesto koje im pripada u izradi Programa, te tako strpljivo i ćutke sede u svom uglu sobe čekajući kao svaki dobar statista da ga prozovu kada komad izrade Programa dođe do scene gde on vadi novac iz novčanika i sa osmehom na licu ga da Poslodavcu te trkom ondmah nakon toga napusti binu.

Jedini strah koji programeri u Algoritmiji imaju je da ne završe slučajno svoj program. Zato se i na najmanji privid mogućeg napredovanja ka završetku napisani kod neumorno prepravlja u *bolje stanje*, prelazi na najsavremenije tehnologije lansirane tog dana (a u Savršeniji bar tih lansiranja revolucionarno novih stvari ima zaista mnogo), postojeći kod se briše jer se jasno uvidi da postoji rizik da takav neće odgovarati mogućim potrebama Korisnika koje bi on mogao imati za 24 godine.

Srbija (ni)je Algoritmija

Na moju veliku žalost, a siguran sam na žalost velikog broja mojih kolega, nedavno je otkriveno da Algoritmija ne postoji. Srbija je u mnogo čemu Algoritmija, ali ispostavilo se da na žalost to nije za nas programere. Radi se za novac, postoje korisnici koji besramno očekuju funkcionalni proizvod za svoj novac kojim (gle drskosti) mogu obavljati svoju poslovnu delatnost. Poslodavci em ne materijalizuju novac iz vazduha em još  bezobrazno očekuju od nas Programera da za taj novac kojim nas plaćaju završimo programe na vreme i u odgovorenom obimu.

Cela situacija bi bila potpuni i katastrofalni poraz za nas programere van Algoritmije, da se mi programeri nismo dosetili načina borbe protiv toga: zažmurimo jako i trudimo se što više možemo da zamislimo da smo u Algoritmiji. Rezultati ove gerilske borbe su neočekivano dobri: procenat nezavršenih i nedovršenih knjigovodstvenih programa  je sasvim na nivou proseka Algoritmije.

Jedini je problem sa celom gerilskom taktikom što se sa vremena na vreme poneko od Programera gledajući korisnike kako se zlopate sa “algoritmičnim programima” sažali na iste i obično odluče da im pomognu time što će napraviti najbolji program za knjigovodstvo. Pitanje na koji odmah nalete je koji je najbolji program za knjigovodstvo?  Jedan deo njih bazira odluku na zahtevima korisnika pokušavajući da pokrije“uniju svih eventualnosti”. Drugi deo potpuno ignoriše korisnike i radi isključivo po sopstvenom nahođenju. Obe ove grupe uglavnom završe na sličnom mestu: sa rešenjem koje je manje ili više tehnički savršeno, sa rešenjem nafilovanim svim mogućim i nemogućim opcijama rada programa. Program naravno pokazuje u procenat tačno proces indeksiranja tabele FAK01 i PK23 u zadnja 2 reda ekrana. Sa takvim programom, nema šanse da se negativno odgovori na pitanje starog lisca knjigovođe: “A, da li može ovo?”. Može sve naravno – podržano je.

Da li je takav program koji može i radi sve – savršeni program za knjigovodstvo?

Po mom ličnom uverenju nije jer je “previše dobar”. U slučaju knjigovodstvenih programa po meni ne važi da “od viška glava ne boli” već naprotiv. Eto dođosmo napokon i do teme ovog članka, sledeće teze

Savršeni program za knjigovodstvo dakle nije najbolji program za knjigovodstvo,
već je to “neophodno dobar” program za knjigovodstvo.

Kako možeš…

“… da veličaš osrednjost kada ti u samom podnaslovu ovog bloga stoji kao proklamovani cilj Savršeni knjigovodstveni program po meri korisnika?“ – možda  se neki od vas pitaju sad.

Kažu da slika govori više od hiljadu reči, pa ću se ja zato odgovoriti na to pitanjem koristeći grafikon potreba i zadovoljstva iz knjige Dilema izumitelja

Kao što vidite na grafikonu, ulagati u tehnološka dimenziju rešenja ima smisla samo do momenta kada rešenje postane “dovoljno dobro” po oceni prosečnog korisnika. Nakon toga se nivo korisničkog zadovoljstva ne podiže na tehnološkom planu već pouzdanošću, cenom, korisničkom podrškom, pametnim dizajnom i sličnim. Ovo je takođe u skladu sa Pareto “80/20” principom o kome sam pisao mnogo puta na blogu

Gore iznesen stav kad se prevede na jezik razumljiv nama programerima zvuči ovako:

”Prosečnog korisnika ne zanima uopšte šta se dešava *ispod haube*.”

To znači da nema smisla beskonačno prepravljati kod, nema smisla juriti beskonačno savršen dizajn baze, nema smisla juriti beskonačno savršeni model stvarnosti pre kodiranja i sl. Ovo naravno NE ZNAČI da nema smisla ulagati u održiv tehnološki dizajn i implementaciju programa, truditi se postići jasno razgraničenje programskih celina itd. Znači samo da ne treba biti prevelik fanatik u tome. Ima toliko stvari pametnijih u koje možete uložiti vaše programerske radne časove, a vreme je novac.

Kako možeš …

“… da razlikuješ sa sigurnošću ono šta ima smisla raditi od onog što nema smisla?”

Evo jednog metoda: uzmu se skupovi zahteva raznih korisnika i ono što je presek tih zahteva se odradi samo. Funkcionalni zahtevi korisnika koji su van tog preseka se jednostavno odbace ili odlože za nedefinasnu budućnost. Iako ovaj pristup funkcioniše kod nekih proizvoda, u slučaju knjigovodstvenih programa je neprimenljiv jer rezultuje polovičnim rešenjima koja svojim nedostacima onemogućuju efikasno vršenje poslovne delatnosti korisnika.

Ok, pošto očigledno ovaj pristup nije optimalan po meni, postavlja se pitanje koji jeste onda?

Za odgovor na ovo pitanje poslužiću se u ovom postu problemom o kome razmišljam dosta zadnjih nekoliko dana – uticajem ekranske rezolucije na optimalan rad programa za knjigovodstvo.

Ako pogledamo statistiku posetioca ovog bloga možemo videti da najveća grupa korisnika koristi računar sa 1024 x768 rezolucijom. Taj podatak je saglasan sa svim ostalim izvorima do kojih sam ja mogao doći.

Postavlja se pitanje dakle šta učiniti na osnovu te informacije.

Ja lično vidim tri opcije:

  • izrada programa za 1024 x 768 i ignorisanje ekrana sa većom rezolucijom.
  • izrada programa koji je prilagođen svim rezolucijama
  • izrada programa koji je prilagođen *optimalnoj* rezoluciji

Ilustraciju implementacije na bazi prvog pristupa možemo videti na primeru Adacco programa za knjigovodstvo.

Po mom ličnom mišljenju ovo je nedovoljno dobro rešenje jer se sav taj neiskorišćeni prostor na primeru unosa mp računa mogao iskoristiti možda za prikaz kontekstnim korisnih informacija: istorija pređašnjih računa kupca, njegove otvorene stavke, stanje artikla na lageru itd itd.. Činjenica da su veličine svih prozora nepromenljive (te se prozor ne može uvećati i raširiti preko celog ekrana) takođe doprinosi mojoj ličnoj impresiji ovog rešenja kao nedovoljno dobrog.

Ilustraciju implementacije na bazi drugog pristupa možemo videti na primeru Microsoft Outlook Ribbon-a gde možemo videti da se alatna traka prilagođava ekranskoj rezoluciji.

Kada je ekranska rezolucija velika ikone su krupne i naglašene, sa punim tekstom.


Kada je ekranska rezolucija mala ikone izgube tekst i preurede se u skladu sa manjim ekranom.

Na prvi pogled, ovo rešenje izgleda idealno – zar je moguće da postoji bolje? Tehničko govoreći – jeste savršeno, ali nas to dovodi do poente ovog članka. Da bi dobio program prilagođen svim mogućim rezolucijama Microsoft je zaposlio sigurno veći broj programera da rade na tome. Veći broj programera koji rade na projektu je veća cena programa.

Ako to imamo u vidu, pitanje da li postoji bolje rešenje sagledano u kontekstu gore datog grafika se pretvara u

“Da li si korisniče spreman da platiš mesečno *30* evra umesto *20* da bi imao mogućnost X?”

Sagledavanjem rešenja iz ove pragmatične perspektive, dosta rešenja postaju predobra i predstavljena su u desnom gornjem delu grafika.

Optimalno rešenje je uvek ono rešenje koje je u najboljem interesu korisnika. Na primeru ekranske rezolucije koji koristim u ovom blog postu, to bi bilo rešenje optimizovano za 1280 x 1024 rezoluciju i jednostavnim skaliranjem na gore.

Slažem se da većina korisnika koristi 1024 x 768 na sajtu, ali da li je to u njihovom najboljem interesu – striktno gledano kroz novac?

Cena 19’’ ekrana je negde oko 70 evra i recimo da moraju da plate taj iznos.

Na troškovnoj strani, to dodatno ulaganje će im se isplatiti za nekoliko meseci samo kroz to da je program “20”, a ne “30” evra, a monitor ostaje.

Na prihodnoj strani, time što tokom kreiranja maloprodajnog računa vide otvorene stavke možda će uočiti neki neplaćeni račun, možda će videti u tom dodatnom prostoru da iako nemaju na stanju artikla X da stiže u toku dana iz VP skladišta i ostvariti dodatnu prodaju. Ispisano ime žene kupca u dodatnom prostoru koje omogućuje da pita:”A kako je Snežana?” može da pospeši prodaju pospešuje prodaju…. Ima milion stvari i načina kako se taj dodatni prostor može iskoristiti za pružanje dodatnh informacija prodavcu i samim tim povećanjem efektivnosti komercijalnog rada. Na taj način se za kratko vreme ostvaruje uvećanje prihoda koje pokriva investiciju u potpunosti, a monitor ostaje.

Na marketinškoj strani, kupac koji naručuje robu u preduzeću koje ima neke prastare 15” monitore od 35 kg imaće drugačiju sliku o tom preduzeću nego što bi imao kada bi tu bili 19” LCD monitori.

Da ne razvlačim dalje ovaj banalan primer, shvatili ste poentu sigurno

Dovoljno dobar program za knjigovodstvo je savršeni program za knjigovodstvo

Želim na kraju još samo da podvučem suštinu ovog posta gore ilustrovanu raznim primerima…

“Dovoljno dobar” program za knjigovodstvo je program koji je ni previše dobar ni previše loš. To je program kome su mogućnosti koje nudi izbalansirani pragmatični skup suštinskih funkcija koje knjigovodstveni program treba da ima. Balansiranje seta tih funkcija se ponekad vrši i na način koji kratkoročno gledano je protivan interesima samog korisnika, ali je i to odgovornost autora knjigovodstvenog programa kao profesionalca u toj oblasti. Korisnicima ne treba povlađivati bezumno, ali ih ne treba ni ignorisati potpuno.

Težnja ka tehnološkom savršenstvu programera neusmerena ka nekom od tih balansiranih ciljeva nema pragmatičnog smisla i kao takva je kontraproduktivna. Fokus programera zato treba konstantno proveravati da li je usmeren na stvarni problem, stvarnog korisnika i stvarni proizvod. Programiranje koje smetne sa uma svoju proizvodno – profitnu suštinu, vodi prekoračenju budžeta i vremenskih rokova i proizvodima čija funkcionalnost nije u najboljem mogućem interesu korisnika.

Šta vi mislite o ovome? Da li autori programa za knjigovodstvo trebaju da prave programe na bazi unije svih zahteva svih svojih korisnika? Da li se slažete ili ne sa mojim stavom da je ponekad i u interesusamog  korisnika kada proizvođači knjigovodstvenih programa profesionalno preuzmu odgovornost na svoja pleća i donesu odluku protivno željama korisnika?

Ko po vama treba odlučuje kako i šta program za knjigovodstvo treba da radi?

Hvala na pažnji,
Nikola Od Algoritmije

Knjigovodstveni programi u službi korisnika

“Kick ass” faktor

Sudeći po rečniku pridev “Kick ass” označava nešto snažno, izuzetno dobro, moćno, impresivno itd. tako da ću ja u nastavku ovog teksta koristiti sleng iz mog kraja i prevesti ga sa “razbija”. 🙂

Knjigovodstveni program koji “razbija” može se lako prepoznati imajući u vidu način na koji ga Kathy Sierra genijalno definiše (moja slobodna interpretacija) kao :

“Program razbija u meri obrnuto proporcionalnoj vremenu potrebnom da korisnik izađe iz početničke zone i direktno proporcionalnoj kontroli koju korisnik ostvaruje nad aplikacijom jednom kad  je van te početničke zone”

Za sve zbunjene prethodnom rečenicom (uključujem tu i sebe) evo grafičke intepretacije te iste definicije…

image

Vertikalna osa grafikona pokazuje osećaj koji korisnik ima radeći sa programom sa rasponom od “frustracija” (korisnik se bori sa programom) do “ekspert” (korisnik vlada programom). Na toj vertikalnoj osi se vide dva ključna podeoka koja označavaju momenat kada korisnik prestaje da mrzi aplikaciju i momenat kada korisnik kreće da oseća da “razbija” sa aplikacijom.
Horizontalna osa je vremenski period koji počinje prvim korišćenjem korisnika, a može da traje godinama i ponekad i dekadama (Ko je rekao Clipper knjigovodstveni programi? :)).

Ako pogledamo plavi grafikon vidimo da je on dobar u smislu da korisnik relativno brzo ovladava funkcijama programa i prelazi oba podeoka na skali korisničke impresije, ali to je samo zato jer program nema mnogo funkcija namenjenih segmentu eksperata u korišćenju. Ako se poslužim primerima foto aparata koje Kathy koristi u svom predavanju, ovo bi bio “idiot” aparat od 100$, čijim setom funkcija je relativno lako ovladati u kratkom vremenskom periodu, ali jednom kad dostignete taj nivo ne postoje nikakve dalje funkcije koje vam omogućuju dalji napredak u kvalitetu fotografija koje pravite.

Ako pogledamo crveni grafikon vidimo da je krajnji domet stvari koje korisnik može da uradi sa aplikacijom mnogo viši od plavog grafikona, ali takodje vidimo i da je dostizanje tog nivoa korisnika koštalo mnogo živaca sled dugog vremena koje mu je bilo potrebno da izađe iz zone frustracije. Programi koji potpadaju u ovu grupu su programi koje prepoznajete po tome što:

  • za sam prvi start aplikacije startujete treba da pročitate 35 strana uputstva i/ili
  • imate broj telefona autora na speed dial-u pod brojem #1 ) ispred vaše žene i/ili
  • u svom korisničkom uputstvu kao ilustraciju kako je program moćan imaju (kopirano iz stvarnog pdf dokumenta gde je samo ime aplikacije zamenjeno sa aplikacija X imenom – da se ne uvrede)

    “Mi smo ponosni na to što se, za sada stidljivo, pojavljuju oglasi u kojima se traže obučeni ljudi sa klauzalom ‘poznavanja rada u aplikaciji X’”
    (Kako ja čitam ovo: Program je toliko komplikovan, da se poslodavcu koji ga koristi ne isplati da zapošljava ljude bez pređašnjeg iskustva u korišćenju istog.)

Korišćenjem analogije sa foto aparatima, ovaj tip aplikacija bi mogao biti DSLR aparat od 20.000$ koji 2 čoveka u svetu stvarno znaju da koriste sa svim svojim mogućnostima, ali koji u rukama nas smrtnika koji slikamo klince kako čine prve korake totalno nema smisla i samo nas dovodi do ludila milionima opcija koje nemamo pojma čemu služe. (Ko je rekao Microsoft Navision?)

Ako pogledamo zeleni grafikon, to je optimalni slučaj jer korisnik brzo izlazi iz zone frustracije, zadržava u početku ekspertskog korišćenja brzinu i tek na stvarno višim nivoima korišćenja usporava dostižući maksimalnu efikasnost potrebnu za vršenje svog posla.

U svetu aparata ovaj tip aplikacija bi bio reprezentovan aparatom od 400$ koji je balansiran tako da zadovolji stvarne potrebe većine korisnika (otud i tako jake ocene korisnika), a da pritom ne opterećuje korisnika funkcijama koje mu ne trebaju u stvarnom životu i kompleksnim opcijama i načinom korišćenja.

Sve je to ok, ali je i samo teorija….

Problem u pričanju o principima dizajna je bas u tome sto su baš to “principi” i samim tim su teorijski, načelni koncepti, ali ipak prihvatam komentar kao “fer i na mestu” pa ću zato predstaviti kako se ovaj princip manifestuje na  primeru sebe kao korisnika jedne aplikacije koju smo svi videli – Microsoft Word.

Word je po meni primer crvenog grafikona u svom tipu aplikacija, ajde da vidimo i zašto tako mislim…

Ako ste kao i ja, vaš prvi susret sa ribbon-om je bio:

  • u početku bolan (“Šta im je uopšte trebalo da menjaju postojeći koncept toolbarova”) – prvi susret
  • dugo vremena znam samo gde se menja veličina fonta i poravnanje (centralni deo home jezička) – zona frustracije
  • Provaljujem napokon i formatiranje naslova, gde je SmartArt itd.. (“ribbon je cool”) – prelazim “razbijam” granicu.
  • I tu… stajem jer mi za stvari kojima se bavim (tu i tamo po neki 2 strane mali tekst) više od toga i ne treba.

Ovo moje gore opisano iskustvo sa Microsoft Word-om rezultuje na nekoliko načina u mojoj psihi

  • Stvara mi osećaj da je koristiti Word nešto poput voziti kamion bez servo upravljača – moćno i mučno iskustvo. Drugim rečima, stvara mi utisak da je Word aplikacija koja ima previše bezpotrebnih stvari i koja me svojom kompleksnošću nepotrebno usporava u vršenju mojih aktivnosti
  • Izaziva kod mene osećaj griže savesti jer postoje toliko tih jezičaka i opcija u njima koje ja jednostavno “nemam vremena da pregledam jednu po jednu”, pa samim tim non stop ja imam osećaj da propuštam neku neverovatno bitnu funkciju koju bi trebalo da koristim, a ne koristim.
    Budite iskreni, pa mi recite samo načelno bez gledanja u vaš računar šta se nalazi unutar Page Layout, References, Mailings, Review, View, Developer menija. Tako sam i mislio… Kako se osećate zbog toga?

Što nas vodi do ključnog zaključka vezanog za pronalaženje knjigovodstvenog programa koji razbija

Radi se o meni-korisniku tupane, ne o tebi i tvojoj aplikaciji!

Ključni momenat za razumevanje “razbijam” principa je da konačni sud o tome kakav je program za knjigovodstvo daje korisnik (a ne ja-autor) koji do tog suda dolazi u momentu kada mu ja-autor nisam pri ruci da objasnim “73 extra cool super korisne funkcije” svog savršenog programa.

Korisnik programa za knjigovodstvo  začuđujuće nije racionalna mašina kakvom ga autori programa obično smatraju koja će:

  • pročitati sve 52 stavke tabele koja uporedno prikazuje funkcije mog “programa za knjigovodstvo” i ostalih aplikacija smešnih u poređenju sa “mojim knjigovodstvenim programom”
  • provesti dobar deo od svojih 20 dana godišnjeg odmora čitajući “Tihi Don II” – nezvanični naziv koji moji korisnici koriste da opišu korisničko uputstvo  “najmoćnijeg programa za knjigovodstvo”


Korisnik programa je ljudsko biće od krvi i mesa, koje svoje zaključke donosi velikim delom srcem – na bazi svojih osećanja. Ako korisnik “oseća da razbija” program, program je dobar. Ako se ne oseća tako dok ga koristi, program je loš. Objektivne karakteristike  tog programa (u kontekstu ovog posta) nemaju nikakvu značajnu ulogu u donošenju vrednosnog suda o programu.

Ako ja kao korisnik kod prvog startovanja programa vidim prazan ekran sa milion ikona i menija  osetiću verovatno “Au, al sam n****o sa ovim programom”.
Od tog prvog momenta, ophrvan percipiranom kompleksnošću, ja ću usporiti brzinu izlaska iz prve zone frustracija, rad sa programom će postati posao, a ne “igra” otkrivanja i učenja. Program će me svakog jutra kad ga uključim podsećati da sam neuporedivo gluplji od svih ostalih korisnika programa koji “sasvim sigurno su ukapirali svaku opciju i podešavanje programa”.
Drugim rečima, programi u crvenoj krivi ne čine da se osećam pametno i da vladam situacijom, što neminovno rezultuje da moj mozak vezuje na podsvesnom nivou tu lošu impresiju sa samim programom. Što ga više koristim, negativna impresija je sve jača, jer sam “primoran” da se osećam neprijatno.

U slučaju plave krive, ako je program jednostavan i ja ga ovladam relativno lako i brzo, biću njime zadovoljan u potpunosti sve do neizbežnog momenta kada ću stojati iza ramena nekog svog kolege koji će nonšalantno radeći jednom rukom i razgovarajući sa mnom pritom odraditi za 60 sekundi nešto što je mene koštalo nekoliko neprospavanih noći. Kao po pravilu, taj moj kolega videvši moju razjapljenu vilicu, mora u tom momentu da upita:”Šta ti nemaš u svom programu ovu mogućnost ?”, našta (naravno) ja odgovaram izgubljeno se smejuljeći:”Imam, imam naravno ” (mrska laž, takođe naravno). Od tog momenta, sva prijatna osećanja koje sam ja imao “razbijajući” svojom aplikacijom, bivaju neizostavno zamenjena osećanjem “kako mrzim ovu glupu i beskorisnu aplikaciju”. Dan za danom, radeći sa tom aplikacijom to se opet pojačava, a mozak radi svoj posao.

Kako će moj knjigovodstveni program  knjigovodstvo da izgleda sa aspekta ovog kriterijuma

Moj program za knjigovodstvo (naravno) biće u duhu zelene krive u smislu da će imati nekoliko dimenzija koje će rezultirati poštovanjem Pareto principa koji u kontekstu ovog principa ja interpretiram

“Učiniti vršenje svakodnevnih stvari – prostim, a ostalih stvari – mogućim”

Znači, korisnik početnik će od starta imati utisak da se radi o plavom grafikonu, jednostavnoj aplikaciji, ali kada dostigne ekspertski nivo i vidi pomenutu funkciju kod kolege, moći će uz minimalan trud da otkrije tu istu (ili bolju) funkciju u svojoj aplikaciji. Korisnik u ovom tipu aplikacija otkriva aplikaciju u brzini i meri koja mu ona odgovara, sa jasno definisanim odnosom uloženog truda i koristi. Ako treba da provede 5 sati učeći kako da odradi u programu nešto što može “ručno” da odradi za pola sata, ta funkcija ili treba da se izbaci ili da se preradi da joj se dodaju dodatna korisnost koja bi opravdala tih 5 sati.

S obzirom da moj knjigovodstveni program još uvek ne postoji (mada sam krenuo prošle nedelje sa radom na njemu) iskoristiću primer Word-a opet da ilustrujem načelno kako ja gledam na ovaj princip, samo ovaj put primer Office 2010 web aplikacije gde isti taj Word izgleda ovako

Word 2010

Ribbon je još uvek tu, ali ovaj put ima samo jezičke koje /gle slučajnosti/ ja koristim svakodnevno. Funkcionalnost koju koristim je takođe tu /fontovi, boje, provera pravopisa itd/, ali bez dodatnih funkcija koje ne koristim.  I pored te jednostavnosti, u desnom uglu imam ikonu čijim klikom se otvara “pravi” Word sa svim naprednim opcijama i mogućnostima.

Zaključak

U ovom tekstu sam predstavio svoje gledište o važnosti pozitivne korisničke impresije na ukupan sud koji korisnik ima o programu za knjigovodstvo, a koja nastaje kombinacijom lakoće učenja i korišćenja knjigovodstvenog programa sa veličinom seta funkcija koje omogućavaju korisniku vršenje svog posla na maksimalno efikasan način.

Sledeći članak će se baviti važnošću koncepta minimalizma u izradi knjigovodstvenih programa.

Čitamo se,
Nikola

Knjigovodstveni program po meri korisnika

Korisnički orijentisan dizajn programa za knjigovodstvo

Po mom mišljenu, prvi atribut savršenog programa za knjigovodstvo koji sam naveo u prethodnom članku je korisnički orijentisanog dizajn (eng. user centric design) knjigovodstvenog programa koji možda može ovako da se opiše

“Nije korisnik taj koji treba da se prilagodi knjigovodstvenom programu, vec je program za knjigovodstvo taj koji treba da bude suštinski odraz poslovanja korisnika.

Nije poenta knjigovodstvenog programa da zadovolji ego autora aplikacije i zaradi mu novac. Poenta program za knjigovodstvo je da bude korišćena od strane korisnika u njihovom svakodnevnom poslovanju domprinoseći time da budu uspešni u svom poslovanju. Programerovi stavovi o tome kako aplikacija treba da funkcionise neutemeljeni na stvarnom poslovnom modelu korisnika, koliko god bili dobronamerni su ne samo nekorisni nego i štetni. Po meni tokom dizajniranja programa misaoni proces informacionog arhitekte treba neizostavno da ide tokom “meni kao preduzetniku ovo bi bilo korisno jer…”, a nikako tipično “ovo bi verovatno bila korisna funkcija za *njih*- naše korisnike”.

Drugim rečima, poenta je da se ne radi o *nama* uopšte već se isključivo radi o *njima* našim korisnicima.

U daljem tekstu ovog blog posta, pokušaću da pokažem kroz primere nekoliko programa za knjigovodstvo kako se ovaj principip krši i poštuje, što će mi nadam se omogućiti da na kraju posta iznesem ideju kako će moj program za knjigovodstvo funkcionisati sa ovog aspekta.

Intro/Disclaimer

Pre nego sto krenem sa iznošenjem svojim shvatanja, jedna veoma važna napomena.

S obzirom da ću koristiti snimke ekranskih prikaza stvarnih aplikacija i sa obzirom da znam kako se kod nas to lično i dramatično doživljava kao negativna prozivka ovim putem želim da napomenem tri stvari :

  • ne želim ni na koji način da impliciram da je dizajn ili rad aplikacija koje prikazujem objektivno loš.
    Sve te aplikacije imaju već mnogo godina i korisnika iza sebe, dok ja jedino što trenutno imam je – ideja o programu za knjigovodstvo koji planiram da pravim.
  • Koristim jedan primer po grupi aplikacija i to primer čiji snimak korisničkog ekrana već imam.
    Sasvim sigurno ima još dosta aplikacija koje podpadaju u tu grupu tako da ovo shvatite kao slučajni uzorak.
  • Sve što ja iznosim ovde je samo u funkciji objašnjavanja mojih ličnih pogleda na to kako korisnički orijentisani knjigovodstveni program treba da izgleda.
    S obzirom da taj knjigovodstveni program tek treba da pravim, jedino što mogu da koristim su ekrani ono što ja lično smatram da treba da se izbegne želeći da preslikam Apple-ove principe u dizajniranju iPhone-a koje sam opisao u prethodnom postu.

Drugim rečima, sasvim sigurno je da imam mnogo manje iskusta i autoriteta od autora aplikacija koje ću da koristim ovde kao primere tako da sve što ovde pročitate prihvatite sa zrncem soli i donesite vaš lični zaključak o tome koliko su moja shvatanja tačna ili ne. Svaki komentar posta (ma koliko on bio negativan) obavezujem se da objavim u celosti te tako pružim priliku ljudima pametnijim i iskusnijim od mene da me isprave.

Pa da krenemo onda…

Tipovi knjigovodstvenih aplikacija sa stanovišta orijentisanosti dizajna

Ja lično kad o ovom aspektu razmišljam volim da svrstam knjigovodstvene programe u pet grupa:

  1. Borg
  2. Geek
  3. The Big Lebowski
  4. R.E.M
  5. Mick Jagger

Znam… WTF, je l’ da? 🙂 Da zaronim u detalje onda bez mnogo oklevanja pre nego što neko moja oba čitaoca ne ispare govoreći:“Rubbishes”…

Borg

alt Borgovi su rasa u Star Trek univerzumu sa glavnim ciljem potpune asmililacije što više različitih životnih formi na tak način uništavajući njihove posobnosti i svodeći ih na jednake delove kolektivnog bića.

Aplikacije koje podpadaju u ovu grupu su radjene od strane programera koje uopšte ne zanimaju bedni smrtnici zvani korisnici i čija je jedina funkcija da se prilagode aplikaciji takva kakva je – progremersko vidjenje relacionih tabela. Po mišljenju Borg programera otpor je uzaludan i najbolje za njihove korisnike je da jednostavno uvide kako je način na koji oni vode svoje poslovanje pogrešan, isuviše prost itd i da prihvate novi model.

Evo primera Borg programa za knjigovodstvo

FIN program za knjigovodstvo

A evo i liste Borg atributa knjigovodstvenog programa:

  • U gornjem desnom uglu imamo broj 169/169 što je verovatno broj redova cele tabele
  • U centralnom delu imamo tabelu koja ima:
    • 120 različitih kolona (1-1 mapping sa kolonama tabele)
    • Naslovima kolona koje su vrlo verovatno doslovce naslovi kolona baze (Velvred, Izni, Marproc)
  • U donjem delu tabele vidimo milijardu dugmadi koje bi možda mogle da svrstaju aplikaciju u geek kategoriju da nije
    • Izgleda tih dugmadi (generički sivo)
    • Činjenica da su dugmad kriptično nazvana Servis1, Servis2 i Servis3 dugmad, Cena u Devcena, A+K Rok TR.
  • Iznad dugmadi vidimo strelice koje su verovatno neke genericke fox pro kontrole za kretanje kroz slogove tabele

Bez namere da bash-ujem bez potrebe ovaj program, moram da priznam da sam ja nakon 10-tak minuta pokušaja da kreiram račun morao da odustanem ne znajuči kako to da odradim – toliko je intuitivan UI.

Kad razmišljam o ovom tipu aplikacija dolazim do nekoliko mojih ličnih zaključaka:

  1. Nije ni čudo što samo knjigovodje koriste programe za knjigovodstvo (znane i kao poslovne aplikacije) kod nas
  2. Ovladati ovim programom u ekspertskom nivou (ako je uopšte moguće) zahteva *mnogo* sati.
  3. Program verovatno dolazi sa programerom u paketu.
  4. Program ne poznaje nikakvu segmentaciju ni personalizaciju.

Način na koji ja obično razmišljam o ovim programima je da su kreirani od strane nekog ko je prvasjodno knjigovođa a ko je tokom vremena naučio da programira i tokom tog učenja krenuo sa kreiranjem knjigovodstvenog programa bazirano na svojim ličnim potrebama i mogućnostima. Program se onda razvija obićno 10+ godina i tokom tog vremena dosta ljudi ga prihvati po principu spojenih sudova. Kada se tako nakupi kritična referentna masa, program postaje de facto standard i dobrovoljna masovna asimilacija kreće. Tako bar ja doživljavam trenutnu situaciju u kraju odakle sam ja – Pomoravlju, a pretpostavljam da i ostali krajevi Srbije imaju neke slične priče.

Geek

Za razliko od neprijateljski nastrojenih Borg-ova, Geek je dobroćudan i javno proklamuje da mu je stalo do interesa klijenata. Na žalost to i jeste problem ovde jer po mom mišljenju mu je stalo i više nego što je potrebno.

Daljinski Analogija koju ja koristim u diskusijama na ovu temu je primer koji sam siguran svi videli već, primer nabudženog daljinskog upravljača za TV koji stiže upakovan sa svim novim i skupim LCD televizorima.  Ako ste kao ja, 95% tih dugmadi ne da ne koristite nego ni nemate pojma čemu služe. Ipak, ako ste kao ja, čak i tako vama je draže da dobijete takav daljinski nego neki "od dva dugmeta” jer “možda nekad zatrebate te funkcije” – tipično razmišljanje jednog muškarca koje s obzirom da skupocene tehničke uređaje kupuju muškarci ukazuje (po meni) na smisleno tweakovanje inicijalnog iskustva pri otpakivanju da ostavi utisak “dobre kupovine”.

alt Način na koji ja zamišljam razvojni put programera Geek-a je potpuno suprotan od Borgovog puta: dok Borg krece od knjigovodje ka programeru, Geek je prevenstveno programer koji u svojom profesionalnom životu kreće od “programa za prodavnice”, preko “programa za komercijalu” do “programa za knjigovodstvo”.
Svo to vreme radi se o jednoj istoj aplikaciji gde dodaje mogućnosti bazirano na stvarima koje pokupi od različitih klijenata koje ima tog razvojnog puta. Na taj način na aplikaciju konstantno dodaje dodajeu “opcije”, “kolone”, “module”  što po meni rezultuje bosanskim loncem – aplikacijom koja radi sve i svašta, aplikacijom koju je lako prodati za veću cenu (“pogledaj sve te funkcije”)…

U adolescenciji, Geek aplikacije možete da prepoznate po tome što bilo kakav zahtev korisnika za nečim specifičnim samo za njega dobija promptni odgovor “nije problem nikakav – doradićemo modul sa dodatnom opcijom koji će da snima podatke u dodatne kolone”.
Sve Geek aplikacije sa dostizanjem odredjenog broja korisnika (čitaj: zaraženog novca)  zatežu svoj korisnički interfejs, sredjuju svoje sajtove, uvode ozbiljne SDLC, organizuju korisničku podršku tako da kada vidite ove “omatorele geek-ove” sasvim lako možete da ih pomešate sa  REM tipom aplikacija.
Da budem iskren, jednom kad naviknete oči da ignorišu šum svih tih *neophodnih* funkcija, ovaj tip aplikacija zna da bude veoma upotrebljiv.

Evo primera knjigovodstvenog programa koji ja lično svrstavam u ovu kategoriju

image

Na primeru ovog ekrana aplikacije (i to imajući u vidu samo /items/ jezičak)  možete da vidite karakteristike Geek programa:

  • Na ekranu postoje 5 toolbara (paleta dugmadi koje izvršavaju neku akciju) – crveni okvir
  • na ekranu postoje 13 dugmadi (ne računajući dugmad u toolbarovima) – osenčeno žuto
  • tu je i čuveni Klingon toolbar za kretanje po redovima baze (plavi okvir)
  • 18 padajućih lista (osenčene zeleno)
  • 9 jezičaka (eng. tab). Kad bih izbrojao i elemente koje oni sadrže ove brojek bi bile još veće.
  • 26 tekstualnih polja
  • Tabela sa (sudeci po scroll bar-u) oko 20 kolona
  • Meni sa 9 osnovnih podmenija menija (označen strelicom)

Svestan sam ja da je sve to “korisno”, ali da li je neophodno? Ovaj princip dizajniranja knjigovodstvenih aplikacija kao “unija svih eventualnosti”, meni lično kažnjava sve korisnike terajući ih da trpe manje ili više informacioni balast drugih korisnika.

Po mom ličnom mišljenju: rešenje za ovaj program je minimalizacija i segmentacija, ali je to više u domenu teorije jer sama evolucija ovog tipa aplikacija rezultuje tesno povezanim kodom koji načinom svoje implementacije limitira opcije dalje evolucije Geek programa u ovom pravcu.

The Big Lebovski

Koliko god da Borg i Geek su teže da pruže korisniku bogat spektar funkcija (svako iz svog ugla), toliko je Big Lebovski tip aplikacija  potpuno suprotan: “opušten”.

Programi za knjigovodstvo ovog tipa su uglavnom web aplikacije (“ne treba vam nikakva instalacija”), sa nikakvom paralelizacijom predstavljenih podataka (“jedan ekran za zaglavlje, jedan za artikle, pa opet next…”), WEB 1.0 izradom sajta itd… Jednom rečju, takva aplikacija iako se nominalno pozicionira kao “jeftina” definitivno nije nešto što bih ja želeo da koristim 8 sati dnevno za automatizaciju mog poslovanja jer:

  • moje vreme takođe košta, a mislim da uz ovaj tip aplikacije bi ga trošio više nego što bi ga trošio sa *normalnom* aplikacijom
  • ovakve aplikacije /loše implementirane/ ne pružaju mnogo podataka koje mi pomažu u vršenju svoje delatnosti

Evo primera gde ja pokušavam da kreiram račun za kupca. Sajt radi, ali na maksimalno neudoban i (za mene) zbunjujući način /zbunio me oko toga kako da unesem dodam artikl/

Iako sam mišljenja da web nije pravi medij za knjigovodstveni program (biće poseban post o tome) slažem se da ima određene draži u pravilno odrađenoj web aplikaciji, ali takva web aplikacija je jako teška i skupa za izradu i održavanje autora. Koncept OCC aplikacija kombuinovan sa ClickOnce tehnologijom pruža uporedivu lakoću distribuiranja aplikacije u nemerljivo ekonomičnijoj i jeftinijoj implementacionoj varijanti..

R.E.M

Ako ste ikad bili na koncertu R.E.M onda već znate o čemu pričam. Bend je iskusan, svirka je odlična, pesme poznate i pevljive tako da ih svi pevuše, sala/stadion-poljana je ispunjena.

Ali niko ne skače, nema mora fanova koji čekaju po pljusku satima da kupe karte, nema ekstaze u publici kada Stipe “krene kroz masu”. Na kraju koncerta izadjete polako u redu zadovoljni utrošenim novcem bez adrenalina u venama i svratite lagano na picu u neki restoran pa posle kući.

Evo primera R.E.M. tipa programa: Microsoft Office Accounting 2009 početni ekran

MS Accounting

Kao što vidite ovde sve je na svom mestu: standardni meni, standardni toolbar, standardni Outlook sidebar sa standardnim opcijama, paneli na mestu.

Dizajn se savršeno uklapa u brend Office aplikacija kojima i ova aplikacija prirpada. Aplikacija je toliko solidno odradjena da je za mene šokantna bila odluka Microsoft-a da od Novembra 2009-e ubije ovu aplikaciju koja je samo u Engleskoj imala 100.000+ korisnika, Ali ok, iako živopisno (tipa “”$#%$/!“) moje mišljenjenje o životu i delu Mr. Ballmer-a nije bitno toliko za ovaj blog tako da ćemo da ostavimo MS Office Accounting da počiva u miru.

Šta su problemi sa ovom aplikacijom? Slično ko i u slučaju R.E.M-a, nema stvarnih problema sem da aplikacija odradjuje to što se od nje očekuje na neki “OK” način i to je to. Nema elementa iznadjenja gde aplikacija pruža korisniku informacije koje mu pomažu u svakdnevnim aktivnostima. Korišćenje standardnog Office rešenja za interfejs smanjuje proces privikavanja korisnika (što je pozitivno), ali u isto vreme stvara i osećaj korporativnog/enterprise/bezdušnog. Po meni, vidi se da je aplikacija profesionalno pravljena za nekog generickog korisnika ‘ u njoj nema ničega “za mene”.

Sasvim solidna opcija koju ja mogu sebe da zamislim da koristim svakog dana, ali definitivno ne nešto zašto bih “vukao poslovne partnere za rukav da im pokažem kako to radi”.

Mick Jagger

altMoj prvi koncert Rolling Stons-a je bio 2005-e gde moram da priznam sam otišao bez da sam ih ikad slušao, kao i na more drugih koncerta – “nemam pametnija posla”. Otiso u 3 popodne, 90+ hiljada ljudi stoje na letnjem suncu već i slušaju neku UK bend koji ono OK svira pa neka češka slavna grupa i tako sve do 9 sati uveče kada se nebo smrči najednom, krene strašno da seva i žestok pljusak se sruči na stadion. Kiša pada 10-tak minuta, grmi i dalje, niko iz publike ni makac. Samo spontani huk kreće:“Rollingstones! Rollingstones!”, svetla se gase, prvi rifovi Satisfaction-a kreću, svetla se pale, Jegger sa bendom izlazi van zastora i svi sviraju pesmu na kiši namerno. Publika u delirijumu, a koncert ni 5 minuta nije trajao.

U čemu je razlika izmedju REM-a i Stonsa? Nemam pojma iskreno. Na izgled, oba benda sviraju istim instrumentima, globalni su fenomeni sličan broj članova benda, ali u suštini svako će znati da kaže da su Rolling Stonsi pored toga što su bend i simbol bunta i institucija itd…

Naravno da program za knjigovodstvo ne može da proizvede takvu senzaciju kakav god da je, ali može da proizvede taj isti “wow” efekt u prvih 5 minuta ako je propisno odradjen. Od programa koje sam ja vidjao, na mene lično godinama takav efekt ostavlja Peachtree Accounting aplikacija kupljena od strane engleskog Sage-a koji je imao katastrofalnu, ali ipak #1 aplikaciju u Engleskoj. Ja pratim tu aplikaciju već nekoliko godina i svedok sam nekoliko inovativnioh inkarnacija dizajna korisničkog iskustva koje je rezultovalo balansom originalnosti, i moći uz zadržanu umerenost u tome koliko je inovativan interfejs /koji je bio radiklaniji u tom pogledu u prethodnim godinama/.

Peachrtree2010

Evo nekoliko primera stvari koje mi se dopadaju u ovom startnom ekranu:

  • Kod starta aplikacije poslovni korisnik ima odmah sumarni pregled stanja firme
    • Stanja ključnih konta
    • Kome duguje i ko treba da mu plati
    • itd
  • Ekran sadrži i grafičke vizuelizacije poslovnih parametara (za korisnike poput vlasnika firme koje ne zanimaju toliko detalji koliko dobijanje uvida o generalnom stanju brzo)
  • Ekran je prilagodiv korisniku (svaki deo može da se izbaci i da se doda neki drugi deo koji prikazuje neke druge informacije)
  • Postojanje outlook style meni-ja sa leve strane smanjuje radikalnost korisničkog iskustva i smiruje korisnika koji bi mogao biti preplašen svim ovim podacima koji ga dočekaju.

Ono što mi se ne dopada kod ove aplikacije – ideja je dobra, ali je implementacija polovična:

  • Previše nepotrebnih informacija koje daju aplikaciji Geek negativne atribute 480
    • Da li je zaista neophodno imati i grafikon i tabelu?Peachrtree2010_Noise
    • Da li mene stvarno zanimaju svih 723 kupca koji mi duguju novac i da li me zanimaju i njihovi ID-ovi
      Peachrtree2010_Noise2

Kako će moj program za knjigovodstvo da izgleda sa aspekta ovog kriterijuma

Osnovna ideja kako ga ja doživljavam je da želim da pravim Mick Jagger tip aplikacije koja će:

  • se oslanjati na principe Edward Tufte-a o paralelizaciji vizuelnih interpretacija
    (narodski: što više grafikona, što manje tabela)
  • težiti minimalizmu (sve što nije stvarno neophodno korisniku biće izbačeno)
  • unaprediti analize podataka i promovisati ih iz učmalog “Izveštaji” menija (slučaj većine programa) u gradjanina prvog reda i sastavni deo svakog ekrana.

Ključni motiv u mojim planovima je da šta se prikazuje i kako se prikazuje je isključivo bazirano na potrebama stvarnih ljudi i njihovih stvarnih poslova. Ni jedan jedini grafik, tabela itd neće biti prikazani ako ne postoji korisnici kojima to stvarno i neophodno treba. Oni podaci koji prođu sito neophodnosti  biće prikazani na način koji maksimalno štedi vreme korisnika inteligentnom interpretacijom neophodnih parametara.

Pravi Mick Jagger program za knjigovodstvo treba da upije podatke koje ukucava korisnik, sažvaće ih i stvori novu vrednost za korisnika. Da bi ste shvatili na kakav tip ja to korisnosti mislim, instalirajte Xobni dodatak za Outlook i vidite šta će on odraditi sa vašim emailovima.

Zaključak

Dosta poslovnih aplikacija su dizajnirane na način koji manje ili više ignoriše stvaren potrebe korisnika tih aplikacija.

Pravi knjigovodstveni program (po mom mišljnju) treba da bude modeliran po korisničim potrebama i sa minimalnim sopstvenim interpretiranjem korisničke stvarnosti koje neizostavno unosi elemente kompleksnosti u način na koji korisnik koristi knjigovodstveni program na dnevnoj osnovi.

Sledeći blog post biće usmeren na važnost “Kick ass” faktora u dizajniranju korisničkog iskustva i nadam se iskreno biće znatno kraći od ovog 🙂

Čitamo se,
Nikola Malović

Real-user monitoring for Accessibility, Performance, Security, SEO & Errors (SiteLint)