Knjigovodstveni programi u oblaku

Prednosti i izazovi programa za knjigovodstvo u oblaku

S obzirom da je tematika poslovnih aplikacija i “cloud computing-a”” u poslednje vreme jako aktuelna, odlučio sam da i ja iznesem svoja razmišljanja na temu uloge oblaka i knjigovodstvenih programa.

Šta je to “oblak” i što se toliko priča o njemu u poslednje vreme?

Velika većina programa za knjigovodstvo danas su tradicionalne desktop aplikacije čiji se domen integracije u većini slučajeva ostvaruje u okviru lokalne mreže kompanije uz povremene izlete širenjem te lokalne mreže između podružnica putem VPN povezivanja. Osnovni problem (u kontekstu ovog posta) sa ovim tipom programa je u tome što ne postoji jednostavan način povezivanja korisnika koji su van lokalne mreže i u tome da je set podataka centralizovan na jednom mestu, a znate i sami onaj štos u vezi važnosti backup-a podataka

Korisnici se dele na dva tipa: oni koji su izgubili podatke
i oni koji će tek izgubiti podatke.

Prvenstveno kao reakcija proizvođača programa na teškoće u instaliranju i ažuriranju desktop programa klijenata, ali delimično i u želji da se ova dva navedena problema otklone nastali su web programi za knjigovodstvo kod kojih je su program za knjigovodstvo i baza podataka na udaljenom serveru proizvođača knjigovodstvenog programa kojima se pristupa putem internet pretraživača kao što je na primer Firefox ili putem internet prebacivanja na kompjuter proizvođača knjigovodstvenih programa na kome se onda izvršava program. Kao jedna od osnovnih prednosti ovog rešenja po korisnike često se navodi to da o aplikaciji i podacima brinu profesionalci koji vrše redovno održavanje rezervnih kopija podataka, staraju se o problemima itd.

Programi u oblaku su dalji korak u “profesionalizaciji” web knjigovodstvenih programa. Logika ovde je da proizvođači knjigovodstvenih programa su eksperti u svom domenu knjigovodstvenih programa, ali nisu eksperti u domenu održavanja optimalnog stanja web resursa, mrežnoj infrastrukturi, nemaju dovoljno resursa da održe optimalno i efikasno funkcionisanje sistema kada veći broj korisnika u isto vreme kreće da koristi program itd. Iz tog razloga proizvođači knjigovodstvenih programa odustaju od  imanja sopstvenih internet servera, sopstvenih baza podataka itd u korist iznajmljivanja internet mrežnih resursa firmi specijalizovanih za to.

Ti internet mrežni resursi koji se rentiraju po potrebi se popularno nazivaju oblakom.

Prednost knjigovodstvenih programa koji se koriste oblakom je dakle da se:

  • o mrežnoj internet infrastrukturi  brinu firme specijalizovane za to (Microsoft, Amazon, Google itd)
  • o knjigovodstvenom programu na toj infrastrukturi se brinu firme koje ih prave
  • korisnika zanima samo kako da koristi program bez ikakvih instalacija itd.

Oblak i knjigovodstveni programi

Na žalost, po mom ličnom mišljenju, ova idilična slika nije sasvim primenjiva u oblasti poslovnih programa, prvenstveno usled problema koje  web knjigovodstveni programi imaju, a koji se ukratko svode na to da web knjigovodstveni programi ne iskorišćavaju maksimalno potencijale korisničkog kompjutera i limitiraju time korisničku produktivnost kao i na to da je meni postojanja internet veze kao preduslova za funkcionisanje poslovne aplikacije neprihvatljiv uslov za knjigovodstvene programe.

Kao rešenje tih nedostataka ja sam odabrao arhitekturu “S+S” knjigovodstvenih programa u kome se klasičan knjigovodstveni program povezuje se bazom podataka i setom internet servisa. Suština distribuiranog knjigovodstvenog programa je u tome da se u radu korisnik uvek koristi lokalno prisutnom bazom dok program preuzima na sebe slanje i preuzimanje novih podataka sa servera u oblaku. Pored baze u oblaku, koriste se i procesorski resursi u oblaku za stvari poput integracije sa B2B portalima dobavljača itd.

Ovakav koncept je na tržištu knjigovodstvenih proizvoda relativno jedinstven tako da svaki put kad ga prezentujem nekom dobijem more pitanja od kojih se neki ponavljaju, a s obzirom da njihovi odgovori određuju moje poglede na temu ovog članka knjigovodstveni programi u oblaku rekoh da ih pribeležim

Piši Milijana ‘vako…

Najčešće postavljena pitanja u vezi programa z knjigovodstvo u oblaku

  • Šta kad nema interneta?
    Program funkcioniše normalno u meri koja garantuje nesmetan rad do uspostavljanja internet veze. Onog momenta kada internet veza se uspostavi program sam pokupi sve promene kreirane lokalno i pošalje ih serveru u oblaku bez ikakve potrebe za korisničkom intervencijom – potpuno automatizovano.
  • Šta ako instaliram program na novom računaru (kući, druga prodavnica itd)?
    Program automatski-bez intervencije korisnika nakon instalacije pošalje na taj novi kompjuter ažurnu kopiju podataka tako da ste u roku od par minuta od instalacije programa potpuno spremni za rad.
  • Da li to znači da sa podacima moje firme mogu da pristupim od kuće, sa laptopa  i da vidim u realnom vremenu promene kako se dešavaju u preduzeću?
    Apsolutno.
  • Šta ako unosim podatke na više različitih mesta (kući, prodavnica1, prodavnica2)?
    Program automatski-bez intervencije korisnika sve podatke šalje na server gde se oni slažu u bazi u oblaku. Kompletiran set podataka se zatim šalje svim stanicama tako da svi imaju sve podatke.
  • Da li to znači da sa podacima mojih nekoliko maloprodajnih objekata mogu da radim od kuće? Npr. ako unesem kući kalkulaciju, odradim nivelaciju i slično za prodavnicu 1, to će se automatski pojaviti u kompjuteru prodavnice 1?
    Upravo tako.
  • Da li moj knjigovođa može da radi sa mojim podacima iz svoje kancelarije?
    Da li moj knjigovođa može da radi sa mojim podacima bez pristupa mojoj lokalnoj mreži (VPN itd)?
    Naravno da može. Knjigovođa se poveže sa centralnom bazom na internetu, odradi svoj posao i onda taj set novih podataka se sa internet servera pošalje na bazu koja se nalazi na računaru korisnika (isto kao br. 3)
  • Da li moj knjigovođa može da radi sa mojim podacima istovremeno dok ja radim svoj posao?
    Da li moj knjigovođa može da radi sa mojim podacima dok je meni ugašen računar?
    Naravno da može. Knjigovođa radi sa njegovom lokalnom bazom, korisnik sa njegovom lokalnom bazom potpuno nezavisno, a sinhronizacioni kod njihove promene šalje i prima sa internet servera.
  • Šta ako se baza na mom lokalnom kompjuteru obriše (disk se pokvari, obrišem je greškom itd)?
    Apsolutno ništa. Program će prepoznati da nema podataka i sa internet servera će skinuti ažurni set podataka tako da za par minuta baza je ponovo tu – potpuno automatski bez intervencije korisnika.
  • Šta je sa backupom podataka baze na internetu?
    Program koristi SQL Azure internet bazu podataka koja se sama po sebi kopira u dva geografski odvojena centra: jedan je u Irskoj drugi je u Holandiji. Sem toga, oblak svakog dana radi odvojenu backup baze u Table storage skladište na oblaku koji se takođe replicira lokalno na server moje firme..
  • Šta ako se baza u oblaku ipak obriše/uništi/pokvari, a nema ni rezervnih kopija?
    To je potpuno nemoguće, ali čisto priče radi – neka bude. Ako bi se to desilo, nema problema opet jer svako od korisnika ima jednu ili više lokalnih baza sa kojima radi. Prazna baza na oblaku bi pozvala stanice da pošalju podatke sa lokalnih stanica i na taj način bi sama sebe regenerisala za manje od sat vremena.

  • Da li neko može da prisluškuje i krade moje podatke dok ih šaljem na server u oblaku?
    Prisluškivač je onemogućen time što se sva komunikacija sa serverom u oblaku obavlja preko sigurnosnog šifrovanog SSL kanala (istu zaštitu koriste naprimer eBanking portali itd)
  • Da li neko može da skine sa internet servera moje podatke?
    Da li neko može na server da pošalje pod mojim imenom lažne/pogrešne podatke?
    Ukratko – ne. Svaki rad na sistemu zahteva da se korisnik prijavi i time dobija sigurnosni kod – token koji zatim šalje sa svakim paketom kao sredstvo identifikacije pošiljaoca. Dodatne provere poput IP adrese pošiljaoca itd su takođe uključene. Ovo su samo provere o kojima mogu javno da pišem – ima ih još par dodatnih koji garantuju poverljivost podataka.
  • A šta ako ipak neko nekako uspe da skine podatke sa internet oblaka?
    To je potpuno nemoguće, ali čisto priče radi – neka bude.
    Svi podaci tipa partnera, artikala, brojeva računa itd u bazi se nalaze šifrovani tako da i kad bi neko teorijski došao do podataka ništa u njima ne bi bilo čitljivo sem gomile brojki bez ikakvih ličnih podataka u njima.
    Slična vrsta zaštite je implementirana i u lokalnoj bazi.
  • Da li neki drugi korisnik može da dešifruje moje podatke?
    Ne. Svaki korisnik programa ima posebnu šifru koja se koristi za šifrovanje njegovih podataka.
  • Šta ako korisnik izgubi/zaboravi šifru?
    Tokom instalacije programa korisnik se pita da li želi da se kopija njegove šifre sačuva bezbedno na oblaku (dodatno šifrirana i zaštićena). U slučaju da se korisnik složi sa tim, kopija šifre postoji i njemu se šalje nakon striktne provere identiteta. U slučaju da se korisnik ne složi sa tim da moja firma u oblaku čuva kopiju šifrantskog ključa, on je jedini koji ga ima te u slučaju da ga izgubi nema mu pomoći – čak ni ja ne mogu da mu dekodiram podatke. Sam program će kao preporučen način će biti da se kopija ključa čuva u oblaku.
  • Šta je sa mojim podacima ako odlučim da ne budem više korisnik programa?
    Prvo, korisnik u svakom momentu ima potpuni set podataka na svom lokalnom kompjuteru tako da mu podaci u oblaku uopšte nisu potrebni. I pored toga, korisniku se svi podaci čuvaju besplatno na serveru neograničeno vreme tako da uvek može da ih skine u stanju u kome su zamrznuti kad god poželi bez zahteva da bude aktivan korisnik. Naravno, ako korisnik eksplicitno zahteva da se njegovi podaci obrišu iz oblaka, to je takođe moguće.
  • Da li je moguće ne koristiti sinhronizaciju sa oblakom?
    U cilju pojednostavljenja korisničkog iskustva i poslovanja moje firme – ne. Ono što je bitno naglasiti ovde da iako je sinhronizacija sa oblakom neophodan uslov, ona se obavlja potpuno nevidljivo za korisnika, može se obavljati povremeno (jednom dnevno, nedeljno itd) na bilo kojoj internet vezi (dial up, wifi, adsl) tako da obavezujući atribut ovog zahteva ne bi trebao da ima bilo kakve negativne posledice po korisničko iskustvo.
  • Da li se moji podaci svih poslovnih godina nalaze u jednoj bazi na oblaku?
    Korisnici sa osnovnom korisničkom licencom sve podatke jedne godine fizički drže u istoj bazi.
    Razlog za to je da je najmanja baza na SQL Azure oblaku veličine 1 Gb i košta 10 evra mesečno njen zakup, što uz trenutno percipiranu mesečnu cenu  zakupa programa od 25 evra je očigledno preveliko opterećenje imati zasebne baze po godini. Ako bi korisnik insistirao na zasebnoj bazi po godini, to bi dodalo po 10 evra na cenu mesečnog zakupa za svaku poslovnu godinu. Po meni je to čisto bacanje para, ali je moguće. Sve ovo se naravno odnosi na to kako su podaci fizički uskladišteni u oblaku. To apsolutno nema nikakvog uticaja na rad programa gde su podaci različitih godina pojavno potpuno razdvojeni. Drugim rečima korisnik ima utisak u radu kao da su zasebne baze.
    Takođe je u planu je da korisnik, nezavisno od toga kako su podaci u oblaku uskladišteni, sam odabere kako želi da ih ima podešene u lokalu – zasebna baza po godini ili ne.
  • Da li se samo moji podaci nalaze u bazi na oblaku?
    Koliko god ja voleo Microsoft, ne volim ih toliko da im poklonim polovinu mesečne pretplate mojih korisnika tako da su podaci više korisnika sa osnovnom licencom uskladišteni fizički u istoj bazi podataka. Logika ovde je da prosečan set podataka po poslovnoj godini je reda veličine 50 Mb, te je korišćenje baze od 1 Gb za skladištenje samo tih podataka bacanje 950 Mb prostora. Tehnika pakovanja podataka više firmi u istu bazu podataka se zove sharding ili horizontalno particionisanje , a u slučaju SQL Azure database se implementira putem korišćenja SQL federacija. Tehnikalije na stranu, ono što je suštinski bitno naglasiti ovde je da iako su podaci više firmi uskladišteni fizički u jednoj bazi u oblaku to nema apsolutno nikakvog uticaja na performanse, sigurnost i pojavne aspekte funkcionisanja programa korisnika. Naravno da i ovde postoji opcija “+10 evra mesečno” ako korisnik želi da ima svoju sopstvenu bazu.
  • Da li mi je potreban administrator mreža da podesim i/ili održavam oblak rešenje?
    Ne. Samo običan kompjuter sa internet vezom preko koga se skine instalacija programa,a program posle sve sam podesi i održava.
  • Da li i korisnici unutar lokalne mreže (npr. komercijala i magacin) razmenjuju podatke putem oblaka?
    Ne. Program podržava da se korisnici unutar lokalne mreže razmenjuju podatke putem servera u toj lokalnoj mreži, a taj zajednički server sve te promene zbirno i nezavisno od korisnika sinhronizuje sa serverom na oblaku.

Bilo je tu još pitanja, ali mislim da je i ovo verovatno već previše za članak, tako da ovde prekidam listu, a ako treba nastavićemo kroz komentare ovog članka ili putem maila.

S glavom u oblacima,
Vaš Nikola Malović

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

Korisnikovi zahtevi– zapovest, sugestija ili šum?

“Da sam pitao kupce šta je to što im treba, rekli bi mi da žele brže konje.”,
Henry Ford

Slušati ili ne korisnika kod izrade knjigovodstvenog programa

U članku o tome zašto su S+S desktop knjigovodstveni programi pravi put, Neđo je ostavio komentar gde se pita da li su zahtevi koje on ima stvarno “normalni”, kad nijedan program ih ne podržava u potpunosti.

Ja sam načelno o ovoj temi već pisao ovde, ovde i ovde.

Za one koji nisu stigli da pročitaju te tekstove, oni se svode na to da:

  • programi treba da se prave po meri korisnika, a ne po meri programera.
  • program treba da se prilagodi korisnikovom poslu, a ne obratno
  • kupovina gotovog programa je u većini slučajeva mirenje sa činjenicom da nećete baš sve moći da radite kako vi želite već ćete morati da se prilagodite “proseku”.

I da li to znači da je “korisnik uvek u pravu”?

Evo dva primera iz moje prakse koji možda daju odogovor na to pitanje…

Korisnik je uvek u pravu

Kada sam radio program 2002-e, kao i svaki drugi progamer nisam baš mnogo mario za korisnike već sam sve arogantno naravno radio onako kako sam “znao zasigurno” da treba. Jedan od modula tog knjigovodstvenog programa je bila “prodajna kasa za prodavnice”.  Modul je radjen namenski za poznatog kupca koji je imao više prodavnica sasvim pristojene veličine, te nakon mesec dana rada jednog ponedeljka smo ga pustili u upotrebu u 9 sati ujutru u jednoj od prodavnica. Nije prošlo ni dva sata, mobilni zvoni, ja se javljam a sa druge strane vlasnik prodavnice urla da smesta dodjem do njih. Ja otrčim do prodavnice prepitujući se uz put šta bi moglo da “pukne”… Na vratima poradavnice ga pitam da li je program pao, on kaže da nije (ja sav zbunjen odgovorom) i samo me  sprovede do kase za naplatu na kojoj me dočekuje kasirka sva crvena od suza. Ja je pitam je šta je bilo – ona mi samo pokaže red ljudi koji ceka na naplatu. Naravno svi namrgodjeni, psuju kompjutere i “majstora” i prodavnicu. Neki odlaze ostavljajući korpe što vlasniku radnje naravno "diže pritisak na 300.
Ja je malo smirim i napokon čujem sta je razlog: nakon ukucanog bar koda mora da se pritisne enter. Prvih 30 sekundi mislim da se šali sa mnom dok mi ne pokaže kako to izgleda u praksi. Prevuče artikal na traci preko bar koda na pultu, okrene se za 180 stepeni, pritisne enter, 180 stepeni itd… Produktivnost na nuli.

Poenta ovog primera je da za mene kao programera koji testira aplikaciju to pretiskanje entera nakon unesenog bar koda na numeričkoj tastaturi je podrazumevajuće. Za stvarnog korisnika u stvarnom svetu, to je i te kakav problem.

Sve to nastalo usled moje arogancije prema krajnjem korisniku: ja znam najbolje šta tebi treba.

Korisnik nije uvek u pravu

Druga jedna prodavnica, 6 meseci kasnije program već “fercera” na nekoliko mesta. Dolazi vlasnik prodavnice koji ima “server” Pentium II na 233 Mhzmašinu i “stanice” Pentium I na 133 Mhz. Naravno i 20.000 artikala koje hoće da prodaje. Čisto ilustracije radi u to vreme konfekcijska konfiguracija je bio Pentium IV na 1200 Mhz. Na moje sugestije da kupi nove mašine, korisnik samo odgovara:”Ali ja njih koristim sa programom koji već imam. Šta je problem?” Naravno moj program spor na tim mašinama, ja potrošim 3 meseca prepravljajući kod da radi sa memorijskim matricama umesto sa bazom. Naravno kreiram time i 100 grešaka zbog kojih su i ostali klijenti ispaštali.Na kraju, kada sve to proradilo nekako on odustane i odluči se da kupi drugi program,  naravno kupivši tri nove mašine na zahtev autora tog programa. Smile

Pored tog drastičnog primera situacije koja vapi za jednim “Ne!” korisniku, bilo je to milion situacija “dodaj meni ovu mogućnost koju ću ja da uključim u opcijama pa neće drugima da smeta” što rezultuje papazjanijom od koda i smanjenom upotrebljivošću aplikacije. Opet primer kada treba reći “Ne!” korisniku.

I? Slušati ili ne?

Moje pravilo je “Posmatraj sve, a slušaj pomalo”.

Sve odluke o funkcionisanju i izradi knjigovodstvenog programa treba da donese autor programa iz prostog razloga što je to njegov proizvod za koji on lično garantuje svojom stručnošću. To naravno uopšte ne znači da treba ignorisati korisnika, već da se prema tim zahtevima treba odnositi kao prema sugestijama koje vi treba da razmotrite da li je implementiranje toga u interesu vaših korisnika ili ne.

Korisnici često u svojim zahtevima od autora zadiru u sferu implementacije “Kreiraj mi tabelu u FAK bazi za rabate”, “Dodaj mi meni za to sa stavkom tom”….  Nisu oni krivi, programeri su ih navikli lošim kvalitetom svojih aplikacija da svako od njih mora da zna da “vrši manje opravke” na svojoj aplikaciji.

Korisnici često svoje zahteve baziraju na bazi shvatanja formiranih korišćenjem svojih trenutnih (često loših) programa. “Vidiš kako ovde pretisnem F6 pa mi se pojavi šifarnik kupca, pa unesem šifru i 2x enter? E isto tako!”

Takve zahteve treba po meni veoma kritički prihvatati – granica mora da postoji. Korisnici su eksperti u vršenju svoje poslovne delatnosti, mi smo eksperti u izradi informacionih sistema. Dijalog treba fokusirati uvek na konkretne primere obavljanja poslovne delatnosti:”Kako radite to bez kompjutera?” na primer. Često kada niste iskusni u usmeravanju tih razgovora (kao što programeri misle da korisnici nemaju pojma, tako i korisnici misle da programeri nemaju pojma samo komplikuju stvari pa će oni da im objasne kako da odrade svoj posao) jedino što vam preostaje je da odete kod klijenta ujutru, popijete kafu uzmete stolicu i sednete u ugao kancelarije tako da za sat vremena zaborave da ste tu. Tad posmatrate koje probleme imaju u vršenju svoje delatnosti i dodjete do raznih zaključaka šta ne štima u stvarnosti.

Efekti observacije na funkcionalnost knjigovodstvenog programa po mom ličnom iskustvu su fantastični po korisničku produktivnost i uopšte zadovoljenost programom. Mi smo na kraju merili koje se opcije najviše koriste i koliko klikova, menija i tastera korisnik treba da pritisne do tamo. I taj proces ponavljati iterativno dok se efektivnost korišćenja aplikacije ne podigne na realno dostižan makismalan nivo.

Svaki put kad se korisnik uhvati za olovku da zabeleži podatak iz vašeg programa, propust u vašem programu. Svaki put kad knjigovodja koji unosi kalkulaciju od 10.000 stavki dotakne miša tokom tog unosa, propust u vašem programu. Svaki put kad korisnik odštampa cenovnik u wordu, računa porez u excellu da popuni formular, pretura po stolu prepunom papirića da nadje neki podatak koji mu treba za rad – vaša greška. Svaki put kad vam korisnik zahteva da dodate u program neku mogućnost koju u najboljem slučaju možda samo on bude koristion, i vi to prihvatite – vaša greška. 

Nije nijedan korisnik kriv što su nam aplikacije manjkave u jednom delu ili prenatrpane u drugom funkcijama. Krivi smo mi što ga ili nismo slušali ili što smo bili arogantni ili što možda nismo dovoljno stručni da to što treba odradimo kvalitetno i jednostavno.

Ja sam lično otvorio “4 oka i 4 uha” i upijam sve što čujem, pa tako eto – izvoljevajte – sad je pravi trenutak za to što se mog programa za knjigovodtvo tiče. Smile

Slušajući,

Nikola TheEmpath Malović

Knjigovodstveni programi, Linux i Open Source

Imaju li Linux OSS programi za knjigovodstvo ekonomskog smisla?

U komentarima mog prethodnog posta o potrebi konstantnog evaluiranja pozicije konkurencije i unapređivanja poslovanja razvila se mala diskusija o Linux-u i OSS (eng. Open Source Software) aplikacijama gde sam ja obećao da ću da iznesem u posebnom članku moje mišljenje o toj temi – evo tog članka J

Članak je možda je malo previše tehnički nastrojen za blog čija namena nije da bude o tehničkim temama, ali ipak smatram da je potrebno da iznesem ovako svoj stav o ovoj temi jer bitno utiče na implementaciju mog „savršenog“ programa za knjigovodstvo a i razlozi nisu uopšte tehničke prirode.

Da se predstavim prvo (full disclaimer)

Linux i ja

Ne tvrdim da sam bilo kakav Linux ekspert – čak naprotiv tvrdim da nisam. Zato ste vi tu 🙂 Moje zadnje bitnije iskustvo sa Linux-om je vezano za period oko 2000-te Madrake distro. Trenutno koristim Ubuntu 10.4 za testiranje Silverlight aplikacija na kojim radim i u potpunosti se slažem da je Linux u ovih 10 godina prešao ogroman put u pogledu upotrebljivosti kao desktop operativni sistem ne samo geek-ova nego i običnih ljudi. Većina aplikacija sa Windows-a su tu (Open Office, Firefox itd), a pogotovo u eri prelaska na internet cloud aplikacije kao Google Docs, izbor OS-a bi možda mogao da postane nešto sasvim opciono za svakdnevni rad. Ponavljam: nemam nikakve zamerke na Linux i smatram ga sasvim validnom alternativom Windows-u za korišćenje na PC-ju.

OSS i ja

Generalno govoreći nemam apsolutno ništa ni protiv OSS-a. U svom radu koristim more OSS alata od kojih su samo neki: Nhibernate, AutoMapper, Rhino Mocks, Mono i mnoge druge. Smatram da je postojanje OSS-a ključno za napredak MS programerske zajednice pa i samih Microsoftovih alata. Principi Alt.NET-a su mi veoma bliski i trudim se da se držim njih što više. Najbolji primer za to koliko je OSS vredan je napredak koji je učinjen u Entity Framework 4.

Licencing i ja

Absolutno ne tvrdim da sam bilo kakav eskpert u pravnoj interpreataciji uslova korišćenja koje dole navodim. Moji zaključci su bazirani na osnovu mog rezonovanja i ako neko zna da su pogrešni molim da me ispravi u komentarima i ja ću ispraviti tekst člnaka odmah.

Microsoft i ja

Ko god me zna lično zna koliki sam ja fanatični pobornik Microsoft-a. Moj primarni email je hotmail (IM takođe), koristim Bing za pretragu, Internet Explorer 8 kao default browser, Live Mesh/Sync za sinhronizaciju fajlova koje imam. .NET je programsko okruženje koje biram već 7 godina. Imam dva Win7 kompa kući, jedan na poslu. Planiram da kupim do kraja godine Windows Phone 7  telefon, novi XBOX 360 i verovatno WP7 tablet. Nemam apsolutno nikakvih problema sa negativim PR imidžom MS-a kao Dart Wader-a, jer nisam toliko naivan da kupim imidže Google kao „hippie“ i Apple „cool“ firmi. Sve su to korporacije koje imaju samo jedan cilj – maksimizacija profita. Podjednako dobre i podjednako loše. Za moj poslovni model – Microsoftov rules!

Sve je u kontekstu

Naravno da ne postoje univerzalno dobra ni univerzalno loša rešenja – sve je u kontekstu. Kontekst mog članka je program za knjigovodstvo ili neka druga poslovna aplikacija namenjena mikro preduzećima do 10 ljudi gde se održavanje sistema AOP (i kompjutera i aplikacija) obavlja od strane eksternih subjekata. Nema programera, administratora itd. Nivo poznavanja rada sa računarom je nivo normalnog čoveka koji računar doživljava „kao pametnu kasu“, a ne geek-a koji „skida patch za update verzije 173 koji je izašao pre pola sata“. Internet se koristi sporadično. Kompjuter se često koristi i za lične stvari nakon radnog vremena. Neke od tih firmi naprave samo 1-2 računa na dan. Spomen termina ERP-a izaziva samo:“ER.. šta?“. Veliki deo tih preduzeća je van Beograda (da ima i takvih – verujte mi na reč) što znači da imaju limitiran izbor dobavljača opreme i programa.

Drugim rečima: firma u kojoj rade normalni ljudi svakog dana 8 sati dnevno i kojima je kompjuter ništa više do sredstva kojim objavljaju svoju delatnost. Iskreno verujem da velika većina firmi u našoj zemlji potpada u tu kategoriju i to je tip korisnika i preduzeća koji mene lično interesuju najviše te ovaj post primarno posmatrajte u tom kontekstu.

O programima za knjigovodstvo Linux-u

Odmah da pokažem svoje karte i iznesem svoj stav:

„Podrška Linux platforme nema nikakve ekonomske logike u slučaju programa za knjigovodstvo ili bilo koje poslovne aplikacije.“

Evo i zašto:

  • Svi već imaju kompjutere sa Windows-om
    • Preduzeća koja vec imaju kompjutere

      Ja sam veliki protivnik angažmana naših državnih organa u službi interesa privatne firme i smatram da je šokantno da naša poreska policija kontroliše legalnost windowsa na računarima firmi preduzeća. Ipak, na stranu etički koncept, po mom ličnom iskustvu rezultat toga je da je većina firmi već „platila harač“ i poseduje legalni windows. Prelazak na Linux za njih nema nikakvog smisla

      Svako od nas zna bar nekolicinu klinaca iz komšiluka koji za „20 evra“ instaliraju piratski windows što verujem da pokriva ostatak većine kompjutera koji se koriste u poslovne svrhe. Ja lično ne znam ni jednog „klinca iz komšiluka“ koji instalira Linux, ali dozvoljavam da je to rezultat toga što sam dugo van Srbije i živim van Beograda. Prelazak na Linux za firme sa piratizovanim Windowsom možda ima nekog smisla „legalizacija“, ali ne prevelikog čim već sve ove godine rade sa piratskim Windows-om.

    • Preduzeća koja nemaju kompjutere

      Po onome što vidim preko ponude distributera većina novih računara dolazi u bundle-ovana sa OEM windows-om gde je cena windows-a redukovana u toj meri da se maltene stopi sa cenom tog laptop-a. S obzirom na godine akumuliranog iskustva u servisiranju windows mašina, čisto sumnjam da če prosečan serviser nuditi korisniku komp sa Linux-om iz prostog razloga što to može kasnije da mu se obije o glavu kod problema sa održavanjem itd. Pre sam sklon da verujem da je realnija od toga opcija bez OS-a u kombinaciji sa „klincem iz komšiluka“ koji instalira piratski Windows. Opet, nisam dugo u zemlji i možda se stvari promenile za to vreme drastično – javite dole u svom komentaru ako je tako.

  • Linux nije Windows

    Znam da zvuči kao dubioza, ali je po mom iskustvu jako bitna stvar da klijent shvati da iako postoje zamene neće moći da koristi: Word-a, Excell-a, Outlook-a. Nema passijansa. Klinac NEĆE moći da instalira GTA i FIFU da igra posle radnog vremena. Program koji imaju za snimanje kamerom za rad sa kasom radnje možda neće raditi sa Linux-om. Ako im to ne objasnite na potpuno transparentan način kad ih ubedjujete da prežu sa windowsa čeka vas dosta poziva i gundjanja sa druge strane telefonske žice. J

  • Povećani troškovi izrade

    Znam, vi koristite Javu i samo ćete da prekompajlirate kod imate podršku za oba sistema. Evo, neću biti NET-ovac ovde i neću da spominjem „Write Once, Debug Everywhere“ već ću vas samo pitati:“Zašto onda kompajlirate za Windows? Zašto ne samo za Linux?“ Naravno da nema smisla raditi to, te morate da podržavate dve platforme. Po meni, s obzirom da se radi o ozbiljnoj stvari programu za knjigovodstvo, koju god da tehnologiju odaberete moraćete da bar testirate nezavisno obe aplikacije. Ako tome priđete ozbiljno (a trebali bi ste) to je bar nekoliko plata QA testera itd. Sve to pod (nerealnom?) predpostavkom da nećete morati da modifikujete vaš program za različite OS-ove što dodatno podiže trosškove.

  • Povećani troškovi održavanja

    Ako vašeg klijenta ubedite da instalira Linux kako bi koristio vaš knjigovodstveni program, u stvarnosti preuzimate na sebe i održavanje tog računara. Šta pod time tačno mislim? S obzirom da po meni broj prodavnica računarske opreme – PS servisa i „klinaca iz komšiluka“ koji rade Linux je zanemarljivo mali, a vaši klijenti će neizostavno imati poteškoće u radu nevezane striktno za vašu poslovnu aplikaciju („kako da instaliram novi štampač?“, „gde se podešava landscape u open office-u“, postavlja se pitanje koga će oni da kontaktiraju za ta pitanja.

    U slučaju legalnog Windows-a date im broj tehnicke podrške Microsoft-a pa nek se „dave sa profesionalcima“. Forumi, IRC-ovi itd ne piju vodu. Normalni ljudi koriste telefon, a u slučaju Linux-a ne postoji taj broj telefona koji im možete dati koliko ja znam.

    Vi verovatno mislite da to i nije vaš problem, ali grešite. Poslovanje vašeg klijenta je vaš problem (bar ja tako gledam). To što on neće moći da odštampa list papira „20% popusta na aspirin“ da stavi na izlog učiniće ga nezodovoljnim u toj meri da em neće da vas preporuči (najbolji marketing je lični marketing), em će to nezadovoljstvo da se gomila dan za danom sve dok se ne ukaže alternativa gde nema tih problema. Drugim rečima, rezultat nerešavanja tih problema je pre ili kasnije prelazak na mainstream Win rešenje.

  • Milovanov zakon

    Ja sam krajerm 2001-e radio na Linux aplikaciji koristeći Borland Kylix 3. Ideja mi je bila da imam rešenje za oba sveta (kompajliram Delph-ijem isti source). To je bilo jako mučno iskustvo (dozvoljavam da su se za 10 godina stvari popravile) i brzina kojom je izrada knjigovodstvenog programa napredovala je bila veoma spora.
    Videvši to, moj prijatelj Milovan The Kick Ass knjigovođa me jednog dana pitao:

    „Da li tebe stvarno zanimaju klijenti koji nemaju 80 eura da plate za Windows XP Home?“.

    Efekt? Tehnički nokaut u prvoj rundi. Prosto mi nije bilo jasno kako mi ta misao nije pala na pamet kad sam počinjao rad sa Kylix-om. Nemojte da me shvatite pogrešno, ne radi se o nipodištavanju nikog ovde – svestan sam da ima ljudi kojima je 80 eura mnogo. Radi se isključivo o tome da ti ljudi ne predstavljaju moje klijente u toj meri da mi se isplati da investiram novac u stavke #3 i #4 da bi njih obuhvatio. Možemo da pričamo o principima koliko god hoćemo, ali na kraju dana se svede sve na to koliko novca potrošite i koliko zaradite. Zarada je glavni razlog našeg poslovanja. Možda brutalno, materijalistički itd zvuči, ali je bar iskreno moj stav.

    Cena Windows 7 sudeći po infromacijama koje sam našao na srpskom net-u je oko 90 eura što znači da je Milovanov zakon i danas važeći

Da zaključim deo o Linux-u ponvaljajući još jednom da Linux ko Linux nema absolutno nikakve mane, ali da usled gore navedenog jednostavno nema ekonomske opravdanosti investirati u njegovu podršku na našem tržištu u kontekstu koji sam gore naveo.

UPDATE: Odlucio sam da „komentar u crvenom“ obrišem odavde je mi nije mi namera da sa ovim postom započinjem religiozne ratove već da se fokusiram na bitne teme. Takodje, izmedju ES administratora i Linux zajednice ne moze da stoji znak jednakosti. Originalni tekst komentara je prebačen dole u komentare koga baš toliko zanima može tamo da pogleda.

O Open Source Software programima za knjigovodstvo

Za čitaoce kojima taj termin nije poznat samo kratka i laička definicija OSS-a. Da bi program bio OSS „otvorenog koda“, on mora da javno distribuira svoj izvorni programski kod, a ne samo verziju programa koja se koristi. To u praksi znači da vi teoretski možete da uzmete OSS program, prepravite ga po sopstvenoj volji i koristite ili distribuirate dalje.

Osnovna biznis ideja OSS aplikacija je da se program ne naplati (to je jedna od glavnih komparativnih prednosti kod prodaje) već da se profit ostvari putem održavanja i konsultantskih usluga.

Osnovna prednost OSS-a u svetu je to što imate pristup izvornom kodu tako da sami možete da se uverite u kvalitet izrade određenih delova programa, a takođe ako imate neki problem možete da ga otklonite. Na OSS programima rade grupe programera dobrovoljno (ili stipendirano od strane neke velike firme ako se radi o projektu od opšteg značaja – FireFox npr.) te ta kolaboracija i krospolinacija ideja i implementacije rezultuje kodom koji se uobičajno smatra kvalitetnim. Kod nas se po mom shvatanju pojam „Open Source program za knjigovostvo “ izjadnačava sa „besplatnim programom za knjigovodstvo“ što nije baš potpuno tačno, ali neka bude potpuno tačno u funkciji ovog članka. U ovom članku takođe neću se osvrtati na uobičajenu rak ranu OSS programa – dokumentaciju, već ću prihvatiti da postoji savršena dokumentacija, aktivne korisničke grupe itd…

Na osnovu gore rečenog nadam se da možete da shvatite da ja nemam ništa protiv OSS-a kao takvog, već nalik Linux-u smatram da nije ekonomski opravdan u slučaju knjigovodstvenih programa ili poslovnih aplikacija.

Besplatan ručak

Ako vam je prodajni moto (eng. „sales pitch“ ) da prodajete besplatni program onda logično možete da očekujete da ćete da privući baš taj tip korisnika – koji vole „besplatno“. To znači po meni da taj tip korisnika u najboljem slučaju ima da vas konsultuje jednom oko instalacije, a nakon toga će probati da prokljuvi sam od sebe. Ako je to rešenje vaše dobro kao što bi trebalo da bude OSS rešenje on neće da ima kvarove i moći će da ukapira sam kako da koristi program. Rezultat: prihod koji ćete da ostvarite po ovom tipu korisnika po meni bi vrlo lako mogao da bude jako nizak.

Daj 5 karte

Veliko je pitanje da li je korisnicima bitna cena programa. Da li je stvarno bitno za normalnu firmu to što će da uštedi 200 – 1000 eura za knjigovodstveni program ako se ima u vidu da se taj iznos amortizuje tokom 5 godina? Ako im je bitno da uštede taj iznos, zar mislite da će da plate sličan iznos vama za održavanje?

Panta rei

Ko god da je radio neku poslovnu aplikaciju kod nas zna da je jedina garantovana stvar: sve se menja. Menjaju se zakoni, stope itd na nivou zemlje, na nivou opština itd.
Ako vi imate aplikaciju koja je besplatna i čiji poslovni model je organizovan oko podrške i konsaltinga, onda verovatno većina tih ljudi nisu programeri jer je radni sat programera preskup za rad gde u većini vremena se obučavaju korisnici itd. U toj situaciji dolazi se do „optimalnij stajaćih kapaciteta“ što značajno limitira brzinu potrebnu da se reaguje na promene zakona. Takođe, kao što sam u članku vasa konkurencija ne spava i ako želite da opstanete na tržištu, danom kada isporučite tržištu V1 potrebno je krenuti u izradu V2 koja dodaje nove stvari i koriguje postojeće na osnovu povratnih informacija koje pristižu od korisnika. Jedini način da se ta razvojna dinamika održi je dugoročnim očuvanjem jezgra DEV tima. Ako oni rade na V2, onda vi morate da zaposlite druge ljude da rade konsulting i obuku (ne, ne verujem da isti mogu efektivno da rade oba). Eto vas sa timom značajne veličine i diskutabilnim nivom prihoda kao što sam objasnio u prethodnoj stavci.

Uslovi korišćenja

Najbitnija i potpuno nepremostiva po meni prepreka u OSS poslovnim aplikacijama.

Ono što većina ljudi poput mene ne čita nikad to su „uslovi korišćenja“. To vam je onaj dosadni EULA ekran na početku instalacije programa koji niko živi ne čita, a trebao bi jer je to ugovor između autora programa i korisnika koji jasno definiše prava i obaveze korisnika i autora. Da li je taj ugovor prikazan na ekranu ili stoji u tekstualnom fajlu u direktorijumu aplikacije (slučaj sa OSS ERP aplikacijama) nema nikakvog pravnog uticaja ‘ mora da se poštuje jer u suprotnom sudska tužba može da nastupi kao i u slučaju kršenja bilo kog drugog ugovora. Da ponovim još jednom: uslovi korišćenja su VEOMA bitni i ne smeju se zanemarivati.

Sad kad smo to nadam se razčistili da vam predočim dva interesantna primera o tome šta znači poštovanje tih uslova korišćenja za firmu koja se bavi izradom knjigovodstvenim programima.

MySQL

Kod nas u Srbiji koliko sam ja upoznat, kao prednost MySql-a od strane LAMP zajednice (u najšitrem smislu te reči) se navodi što je besplatan što ga čini logičnim izborom u poređenju sa zlim rešenjima Oracle-a, Microsoft-a i IBM-a.

Ono što se manje zna (barem ja nikad čuo da mi je to neko reako kod nas dok nisam sam pročitao) je da to zavisi od dva uslova:

  • Ako koristite MySql u neprofitne svrhe za izradu drugih besplatnih OSS aplikacija koje se distribuiraju pod GPL licencom (vise o GPL-u dole)
  • U suprotnom morate da sklopite poseban licencni ugovor sa Sun-om -> MySql vise nije besplatan

Po mom mišljenju, većina ljudi kod nas krši licencni ugovor o korišćenju. Možda se vama čini da to nije bitno, ali ako pričamo o ozbiljnom pristupu poslu gde za X godina planirate da imate hiljade i hiljade korisnika ne možete da se oslonite da niko to neće da primeti (postajete vidljivi). Po meni „neće grom u koprive“ pristup je apsolutno profesionalno neprihvatljiv.

GPL

Recimo da ste vi u drugoj grupi i da recimo radite na prevođenju postojeće OSS knjigovodstvene aplikacije i prilagođavanju našem zakonodavstvu koju nećete da naplaćujete, već planirate da ostvarite prihod podržavajući je. Recimo i da je ta OSS aplikacija koju vi prilagođavate pod GPL licencom.

Suština GPL licence za nas laike može biti objašenjena kao „korišćenje koda licenciranog GPL licencom je besplatno samo u slučaju kada se i kod koji ga koristi izda pod GPL licencom“. Izdati program pod GPL licencom znači da vaša aplikacija mora da bude otvorenog koda i da je dozvoljeno da da se koristi kao OSS od strane drugih subjekata itd.

Dva nepremostiva poslovna problema u vezi ovog pristupa ja lično vidim:

  • Nelojalna konkurencija

    Recimo da ste vi u Nišu, a ja u Ćupriji. Mojim klijentima više odgovara neko pri ruci, a imam i lična poznanstva. Ja se tako lepo zavalim u stolici i čekam da vi završite svoj rad (koji se meri mesecima i samim tim košta dosta). Jednom kad završite, skinem taj vaš kod kompajliram ga i krenem da instaliram sam po Ćupriji. A da, pošaljem vam razlednicu sa „Hvala!“

  • Recimo da sam ja velika firma poput Comtrade-a koja nema svoj program ya knjigovodstvo, ali ima znacajne distributerske kanale i dosta kapitala da uloži u podršku korisnika. Tako se oni zavale u svoje korporativne fotelje, vi radite – kad završite oni skinu kod, kompajliraju – ako treba doteraju i krenu da prodaju. A da, poslaće Vam i oni razglednicu sa „Hvala!“

Efekt GPL-a po meni je da istog momenta kad počnete da ostvarujete neki značajniji finansijski priliv novca i krenete da se širite van vaše lokalne zajednice, tu vas čeka konkurencija sa gore napisanim razglednicama, te samim tim je nemoguće je ostvariti nacionalnu/regionalnu distribuciju.

U najboljem slučaju /mada sumnjam i u to/ možete da naneste neku štetu postojećim programima za knjigovodstvo.

Zaključak

Evo čuli ste rezultat mog višednevnog razmišljanja na ovu temu. Po meni raditi knjigovodstveni softver u otvorenom kodu je ekonomski neodrživa opcija, dok je podrška za Linux operativni sistem od potuno sporedne važnosti u poređenju sa Windows podrškom. Ovaj moj zaključak uzmite u obzir imajući u obzir moj lični kontest koji sam izneo gore.

Iako sam tu odluku doneo pre 2 nedelje još uvek otpisao potpuno razvoj za Linux platformu tako da bi bio jako zahvalan ako bi neko mogao da mi pokaže da grešim u svojim tvrdnjama i ubedi da Linux podrška ima bitnu ekonomsku isplativost.

Čitamo se,

Nikola The Microsoft-ovac

Alan Ford, Pony Express i knjigovodstveni programi

Segmentacija i personalizacija knjigovodstvenih programa

Organizacija rada prosečne prodavnice računarske opreme “PC Servis”-a

GrupaTNTOrganizacija prosečne radnja za prodaju računarske opreme (PC servis) liči u mnogo čemu na grupu TNT jer kao i u grupi TNT i u radnji poslovnu delatnost obavljaju više ljudi gde se tačno zna ko šta radi. U svakoj radnji tako postoji Gazda , Knjigovođa (Grunf), komercijalista (Sir Oliver), serviseri (Bob Rock i Alan Ford)…

Gazda (“Broj 1”) je uobičajeno neko ko razgovara sa distributerima, gosti i tetoši bitnije lokalne kapitaliste, odlazi u nabavku, vrši kontrolnu funkciju nad ostatkom radnje, isplaćuje plate. Ne polaže mnogo računa nikome o tome šta gde i kako radi već izdaje naređenja “jednosmernim putem” o tome šta treba kome da se “sklopi”, kome šta da se servisira itd. To čini najčešće usmeno ili putem sveske dnevne zapovedi (Ko bio u vojsci, shvatiće) 🙂

Komercijalista (“Sir Oliver”) je naravno slatkorečivi prodavac koji zna napamet Kuzmanović-evu kolumnu iz poslednja 3 broja Sveta Kompjutera, zna napamet sve opise hardvera u meri dovoljnoj da izmami zapanjen izraz divljenja lica nabrijanog klinca koji je došao da kupi onu “best buy grafičku 7123X2KD1”. Šta Sir Oliver ne proda, zrelo je za rashod.

Radnik – crnac – fizikalac (“Bob Rock”) je onaj koji je instalirao toliko kompjutera da može da instalira 7 kompjutera u paraleli bez da pogleda ijedan serijski i to na dan kad je prosečno mamuran od burnog sinoćnog provoda. Od silnog instaliranja i slušanja besposlenih mušterija koje će “da pričekaju” razvio je specifičan humor gde nemilosrdno reže rečima mušterije koji gde-će-šta-će uz smešak trpe to jer “znaju da zna”.

Knjigovođa (“Grunf”) je “dopisni saradnik” koji ne potpada striktno pod platni spisak “gazde” i koga gazda tretira slično zubaru – ide se kod njega što se mora i po mogućstvu što manje to bolje. Ipak, kao i od Grunfa, i od knjigovođe se očekuje ništa manje nego magija. Da se ne lažemo svi mi znamo da sve knjigovođe imaju magične kutije u u koju na dan pre obračuna PDV-a se ubaci svakojaka zvanična i poluzvanična dokumentacija, rukom pisani računi itd, zažmuri se jako, izbroji do 86400 et voila… Kada se kutija otvori u njoj se magično stvori hrpa knjižnih naloga i sve ostale totalno nebitne stvari koje kako to lepo Broj 1 kaže:“… ovi iz vlade traže da se vode samo da bi se pošteni vlasnici radnji računarske robe maltretirali” – .

Sad kad smo se malo zabavili i vi čitajući i ja pišući o mom omiljenom “Alan Ford“ stripu da pređemo na..

Pony Express – najbrži način slanja informacija!

Potpuno tačna rečenica za ljude s polovine 19.-tog veka u Americi. Naime, u periodu april 1860 – oktobar 1861 u cilju ubrzavanja protoka informacija i dokumenata organizovana je u Americi kurirska služba od 157 postaja udaljenih oko 15-tak kilometara jedna od druge – razdaljina koju konj može da pređe u punom galopu. Na taj način je vreme potrebno da pismo stigne od obale tihog do obale Atlantskog okeana smanjeno na neverovatnih (za to vreme) 10 dana. Toliko je Pony Express bio uspešan da bi postojao još dugo nakon tih 18 meseci svog postojanja da nije bilo pronalaska telegrafa koji je tih 10 dana učinio nepodnošljivo dugim.

Problema nije bilo mnogo sem učestalog opijanja jahača i gubljenja ili oštećivanja dokumenata, ali svako je bio spreman da plati ceh da bi dobio šansu slanja dokumenata tako brzo na drugi kraj kontinenta.

Znam, sve je to lepo ali kakve to veze ima uopšte sa knjigovodstvenim programima?

Knjigovodstveni programi u Srbiji sa aspekta integracije kretanja dokumenata

Na tržištu knjigovodstvenih programa u Srbiji (sa aspekta ovog posta) postoje dva tipa programa za knjigovodstvo (poslovnih aplikacija u širem kontekstu): opšti i specijalizovani.

Opšti knjigovodstveni programi

Pozitivna strana generalnog tipa programa je da centralizuju na jednom mestu podatke obezbeđujući time veći integritet podataka olakšavajući kolaboraciju itd. Negativna strana generalnih programa je baš ta njihova generalnost – oni su programi koji “rade sve” na način koji ne odgovara nikom.
Knjigovođu ne zanimaju većina mogućnosti programa koje pokrivaju sferu prodaje, korisničke evidencije itd. Gazdu/Komercijalistu/Radnika sva ta konta, KEPU knjige itd totalno ne zanimaju i odvlače. Takođe postoji razlika između komercijalista velike i male firme – ako izdajete nekoliko faktura mesečno onda vam sve ove opcije apsolutno ne trebaju i pomalo i smetaju. Da ne dužim mnogo oko ovoga jer sam sam već pisao o negativnim stranama generalizacije na primeru Borg i Geek programa za knjigovodstvo

Specijalizovani knjigovodstveni programi

Kao reakcija na generalne programe nastali su specijalizovani programi za komercijalu, za materijalno poslovanje, za finansijsko poslovanje, za proizvodnju, za kasu. Prave se i prodaju kao zasebni poslovni programi ili kao “moduli” programa

Pozitivna strana specijalizovanih programa trebalo bi da bude da svaki korisnik dobije aplikaciju pravljenu bas po njegovim potrebama. Negativne strana ovih programa su drugačije u zavisnosti da li se radi o implementaciji putem posebnih aplikacija ili posebnih modula.

Posebni moduli su po meni samo prikriven oblik generalizovanih aplikacija sa svim manama i prednostima. Ako sam ja knjigovodja i kupim modul finansijsko knjigovodstva da li to znači da nikad neću morati/želeti da pogledam neki detalj same fakture na osnovu koga je neki nalog kreiran? Naravno da ne znači i naravno da u praksi knjigovodja završi sa “oba” modula efektivno dobijajući generalni program.

Kod pristupa sa posebnim aplikacija (u mom Pomoravlju dosta čest slučaj) opisanog problema sa modularnim aplikacijama nema. Svako radi sa aplikacijom kakvu baš on želi i svako je manje više zadovoljan. Knjigovodjin klijent ima svoju aplikaciju u kojoj može da brlja koliko god hoće sve dok na kraju dana/nedelje/meseca odštampa sva dokumenta fakture, kalkulacije, paragona i fiskalnih isečaka itd. Kupca u svom programu sam vodi interno dugovanja kupaca, potraživanja dobavljača itd. Svi izveštaji na osnovu koje gazda donosi poslovne odluke se rade na osnovu tog seta “neformalnih” podataka.

Nužno zlo zvano knjigovođa se ispoštuje time što se hrpa tih papira fizički nose u knjigovodstvenu agenciju gde ih onda knjigovodja uzima i prekucava ponovo u svom programu kreirajući svoje posebne šifre artikala, kupaca itd… Knjigovodja u taj “svoj program” unosi promene sumarno ili detaljno sa izvoda koje korisnik poslovne aplikacije vodi u paraleli na svoju ruku. Kada korisnik ili knjigovodja promene podatke nekog dokumenta nakon “razmene papira” tu nastaju problemi jer im podaci više nisu usklađeni pa kreću telefoniranja i improvizacije – simptom garantovanih problema u poslovanju

Baš u toj integraciji putem fizičkog raznošenja papira i prekucavanja u posebne izvore podataka je po meni problem sa ovim pristupom i baš ta činjenica mene asocira na Pony Express. Isti spori, od ruke do ruke, od postaje do postaje, prenos bisage – spor i sklon grešci. Sama činjenicom da postoje dva seta nepovezanih podataka je garant da će kad tad doći do neusaglašenosti, netačnih poslovnih odluka i zakonskih prekršaja. Sa tehničke strane postojanje posebnih aplikacija koje se (ako se integrišu uopšte) integrišu tek u nivou baze implicira povećane troškove održavanja i razvoja jer promena u jednoj aplikaciji mora ručno da se replicira u drugim itd..

Ako rešenje nije ni generalizacija ni specijalizacija, šta jeste? Šta je telegraf knjigovodstvenih programa?

Segmentacija na “hipotetičkom primeru iz prakse”

Po mom mišljenju dualitet specijalizovanih programa je nešto što treba izbeći po svaku cenu. Najkraće objašnjenje mog shvatanja bi moglo da se formuliše na osnovu ove konkretne izjave

Faktura i knjižni nalog te fakture nisu dva dokumenta nego dva lica iste poslovne aktivnosti.

Dakle, jedna ista aplikacija, isti programski kod treba da bud korišćen od strane oba korisnika. Svi korisnici poslovnog sistema treba da rade na istim podacima.

Kada roba stigne, radnik je popiše i kreira prijemnicu. Tu istu prijemnicu, za te iste artikle, komercijalista/gazda koriste kao osnovu za kalkulaciju gde se odrede prodajne cene. Onog momenta kad se snimi kalkulacija, knjižni nalog te kalkulacije se kreira i za isti iznos se time duži i materijalno i finansijski magacin. Po tim prodajnim cenama komercijalista izdaje račun kupcu. Naravno uporedo sa kreiranjem računa, stvara se knjižni nalog za taj račun, magacin se razdužuje materijalno i finansijski a kupac zadužuje za isti iznos. Knjigovođa knjiži izvoda koji sadrži podatke uplate kupca – komercijalista automatski to vidi u evidenciji kupca kao zatvorenu stavku. Itd, itd..

Dosta korisnika opšteg tipa programa u ovom opisu prepoznaju svoje programe i tu nema ničega spornog. Kao što sam već gore rekao, problem je u tome što sve što ti programi rade rade na način koji nije prilagođen nijednom posebnom korisniku pa sve to utiče na produktivnost rada i efikasnost korišćenja programa za knjigovodstvo. Ti se nedostaci rešavaju segmentiranjem knjigovodstvenih poslovnih programa po grupama korisnika na taj način da program pojavno i funkcionalno odgovara specifičnosti tog korisničkog segmenta (grupe).

Segmentacija kao princip izrade programa za knjigovodstvo kojem ja težim

Da ne bude ceo post na bazi negativnih ilustracija, evo pozitivnog konceptualnog primera jednog načina korišćenja segmentacije.

Tokom instalacije programa za knjigovodstvo program bi mogao da pita za koji tip delatnosti se program ima koristiti. Ako korisnik odgovori radnja računarske opreme tj. PC servisa, “moduli i opcije” vezane za taj tip preduzeća treba da se instaliraju. Primeri tih funkcija su integracija sa distributerima, reklamacije, sklapanje računara (nije isto kao i proizvodnja računara kako se obično tretira) itd treba da se “instaliraju”.

Takođe bi program bi mogao da pita koliko prodajnih objekata preduzeće ima. Ako se radi o samo jednom (u većini slučajeva), sve opcije vezane za odabir prodajnog objekta i magacina kao i međumagacinsko kretanje robe treba da nestanu. Segmentacija ne znači samo gašenje celih modula nego i sitne promene na pojedinim ekranima koji ostaju aktivni(npr. unos VP fakture ne pokazuje polje za objekat više)

Kod kreiranja korisničkog naloga, program bi mogao da pita koju funkciju korisnik vrši. Ako je korisnik Gazda, delovi programa fokusirani na analizu poslovnih rezultata, generalno stanje lagera, integraciju sa distributerima itd idu u prvi plan, dok se radni nalozi sa sklapanje, glavna knjiga i slično gase. Ako je korisnik Radnik, njega zanimaju uglavnom nalozi za sklapanje i prijemnice robe koje popunjava kod prijema robe. Komercijalistu korisnika zanimaju CRM podaci kupca gde na primer može na primer da vidi podatke o otvorenim stavkama i kontaktira kupce van valute. Takodje opcije integracije sa distributerom mogu da budu zanimljive ali u ovom slučaju ne ponuda robe nego provera stanja robe na reklamaciji po zahtevu kupca koji je robu predao na servis pre nekoliko dana. U slučaju da komercijalista zna da “čita izvod” knjigovodstvene funkcije treba da budu prisutne, ali u maksimalno limitiranoj formi dovoljnoj samo da pokrije čin unošenje izvoda. Knjigovođa treba naravno da primarno vidi knjigovodstvene funkcije. CRM, distributeri itd… sve to njega ne zanima uopšte. U sistemu gde je garantovana usklađenost materijalnih i finansijskih podataka (jedna baza, jedan entitet sa dva lica) knjigovođa sve što ga zanima može da vidi preko tog knjižnog naloga ali recimo i da ga zanima da pogleda detalje fakture na osnovu koje je nešto knjiženo, on tu fakturu može da vidi prezentovanu kroz sumarne podatke kao što su tarifna raspodela prenetog poreza, iznos i strukturu zavisnih troškova, detalji rabat odobrene kupcu itd.

Neki od ljudi kojima sam diskutovao o ovome reaguju na ovu koncepciju govoreći: ”A to su opcije podešavanja korisnika – to postoji u mnogim programima”. Izjednačavati “opcije” sa segmentacijom je pogrešno po meni iz dva razloga. Prvo, još nisam video nijedan program gde se putem opcija može u tolikoj meri da se podesi korisničko iskustvo u radu sa programom. Drugo, čak i da je moguće bilo bi pogrešno. Nije na korisniku da otvori ekran sa 17000 polja gde će da uključuje i isključuje delove ekrana i aplikacije, već je na autorima knjigovodstvenih programa da misle o korisniku i podese unapred sve te opcije a da korisnik i ne zna za postojanje tih opcija. To početno podešavanje ne treba da bude oholo “Borg tip aplikacije” podešavanje već treba da bude bazirano na posmatranju korisnika u vršenju svakodnevnih aktivnosti i razgovoru sa korisnicima gde autor kao profesionalac u svojoj struci dolazi do zaključka šta je to za korisnika najbolje i šta mu treba u stvari.

Dokaz da korisnici cene to “podesi mi podrazumevano šta meni treba” je tržišni uspeh Apple uređaja o čemu sam već pisao detaljnije ovde.

Personalizacija kao nužno potrebno zlo programa za knjigovodstvo

Svi ćemo se složiti da nisu baš svi korisnici isti i da se ne mogu svi svrstati u iste kalupe, ali to ne znači da segmentacija nema smisla. Ista misao interpretirana u ovom kontekstu korišćenjem Pareto 80-20 principa bi mogla da glasi da je segmentacija fokusirana u pravcu zadovoljavanja potreba 80% korisnika. O potrebama ovih ostalih 20% korisnika po meni stara se personalizacija koja označava

Mogućnost korisnika da u okviru nekog segmenta prilagodi pojavu i funkcionisanje sistema u skladu sa svojim ličnim potrebama.

Po meni jako bitna stvar koju treba istaći u prethodnoj definiciji je da ta personalizacija treba da bude jako limitirana (poštovanje principa minimalizma knjigovodstvenog programa) i fokusirana na realne situacije u životu. Imati personalizacioni ekran sa 17.000 opcija koje mogu da prebace korisnika iz jedan u drugi segment podjednako nema smisla u praksi kao i u slučaju segmentacije. Po meni, način na koji treba prići personalizaciji je da se inicijalno zaboravi tako da sav fokus bude usmeren na što bolju segmentaciju programa za knjigovodstvo, a da se tokom probne faze i početka korišćenja prikupe povratne informacije od korisnika o tome šta im nedostaje u njihovom segmentu te da se na osnovu toga ili prilagodi segment )ako velika većina korisnika traži to) ili da se personalizuje (ako značajna manjina korisnika traži to).

Po mom mišljenju, dodavanju funkcija koje traži statističko zanemarljiv broj korisnika treba prići veoma oprezno sa generalno negativnim predstavom i zahtevati da vam se dokaže kako je to stvarno bitno i kako to ne može da se odradi na drugačiji način. Logika ovde je da je to nešto stvarno bitno, većina korisnika bi već to tražila tokom izrade i probnog rada aplikacije, a ne želite da kaznite ugođaj u radu velike većine korisnika bez preke potrebe.

Zaključak

Evo doživesmo (vi čitajući a ja pišući) i ovaj poslednji blog post serijala gde ja objašnjavam šta to čini najbolji knjigovodstveni program.

Sledeći post će biti namenjen meni veoma bitnoj tematici: cenovna politika programa za knjigovodstvo gde ću izneti pregled toga kako i šta se sve naplaćuje kod nas na tržištu kao i neki svoju inicijalnu ideju o tome kako i koliko ja planiram da naplaćujem u budućnosti. Ako vam se čini suludo što pišem o ceni proizvoda bez imanja samog proizvoda, pozivam vas da obavezno pročitate post gde ću takođe se osvrnuti i na to zašto je to po meni ne bitno nego neophodno.

Čitamo se,

Nikola “The Segment” Malović

Programi na uvce

Kupovina gotovog programa za knjigovodstvo – za i protiv

Programi/Muzika na uvce

Pre nego što krenem na poslednji deo mog objašnjenja atributa savršenog programa za knjigovodstvo (segmentacija i personalizacija) želim da se kratko osvrnem na jedno veoma bitno pitanje do koga sva preduzeća dođu pre ili kasnije: kupiti ili praviti program za knjigovodstvo?

Za slogan ovog posta odabrao sam namerno naslov koji bi trebalo da vas asocira na kafanski termin “muzika na uvce” koji označava pojavu kada gost kafane (ili učesnik nekog drugog *opštenarodnog veselja*) poziva muziku za svoj sto da “sviraju samo njemu ono što on lično želi” što rezultuje besmislenim utroškom određene sume novca i kratkotrajnim egzibicionističkim  zadovoljavanjem sopstvenog ega. Na stranu (be)smislenost tog čina, razlog što sam odabrao da koristim ovaj fenomen za ovaj članak je paralela između ovog primera i kupovine kompjuterskog programa gde korisnik često zahteva “muziku na uvce”  jer se oseća posebnim u dovoljnoj meri da je spreman za to da plati ekstra novac (ponekad suludo velike cifre), i da takođe kao i u kafani za uzvrat dobije vrlo diskutabilni nivo usluge /pomislite samo na sve limene orkestre koje ste čuli/

Kupiti ili praviti?

Dakle, jedna od dilema do koje skoro svaka firma dođe je odluka o tome da li treba praviti program za knjigovodstvo po sopstvenoj meri i u sopstvenoj režiji ili kupiti neki od već postojećih. Ta dilema ima nekoliko svojih pojavnih oblika: kod velikih preduzeća se svodi na dilemu da li praviti program specijalizovan po sopstvenim potrebama korišćenjem sopstvenih (eng. inhouse) resursa ili pak investirati u kupovinu postojeće aplikacije. Kod malih preduzeća se svodi na izbor između kupovine gotovog knjigovodstvenog programa ili kontaktiranja nekog lokalnog Geek programera koji će “bez problema prepraviti kod koji trenutno ima da podrži sve željene funkcije”.

Iako na prvi pogled možda odluka o tome koji je pravi put za firmu izgleda lagana (u korist kupiti gotov proizvod), u stvarnom svetu na žalost ipak ima neke preduslove koje je veoma bitno ispoštovati.

Primer iz mog životnog iskustva kada je kupiti bila pogrešna odluka

Tokom 2007-e firma u kojoj sam radio je dobila novo rukovodstvo čija je jedna od glavnih odrednica bila favorizovanje kupovine gotovih paketa svetskih lidera nasuprot sopstvene izrade aplikacija. Čak i sama odluka o tome koje aplikacije treba da budu kupljene i korišćene je poverena svetskom lideru u toj oblasti, firmi Accenture koja je nakon 6 meseci izradila studiju čiji je zaključak bio da trebamo da koristimo Microsoft Commerce Server kao osnovu našeg budućeg sistema elektronske trgovine. Po njihovoj studiji, gradeći na ramenima diva kao što je Microsoft bi nam donelo stabilnost temelja i jeftino (eng. cost effective) implementaciju koda i korisničkog interfejsa. Sve što smo trebali da uradimo je da odbacimo sve što smo sami radili do tad, kupimo papren proizvod (1,7 miliona dinara po procesoru servera), nešto malo kao prilagodimo i to je to. Da ne davim detaljima (bilo ih je dosta), samo ću reći da nakon 1+ godine  rada više od sto ljudi (programera, poslovnih ljudi, menadyera, 200+ USD/sat konsultanata it ) je projekat propao u potpunosti, a mi ponovo započeli raditi stvari u sopstvenoj režiji.

Ako se pogleda razlog zašto je propao ceo projekat, ne radi se o:

  • nedostatku novca (bilo ga je više nego dovoljno),
  • nedostatku ljudstva (100+ ljudi),
  • nedostatku vremena (1+ godina),
  • nedostatku znanja – imali smo najbolje konsultante i sam Microsoft Commerce server tim na direktnoj liniji podrške – (ja sam sam proveo 6 nedelja u Redmond-u učeći CS)
  • pogrešnoj tehnologiji (pored MS CS-a, gledali smo i Oracle Siebel itd)

Razlog zašto je projekat propao (i razlog zašto ga spominjem u ovom članku) je taj što je naš poslovni model prepun nekih specifičnih osobenosti koje nijedan program opšte namene nije mogao efikasno da se prilagodi. Pokušaji da prilagodimo gotov program našim potrebama su rezultovali takvim hack-ovanjem sistema, da nakon godinu dana sama kompleksnost te oblande povrh sistema je bila komplikovanija nego naš lični kod i još uvek nije mogla da radi sve što kod radi 100%. Pokušaji da prilagodimo sopstveni model poslovanja su isto propali jer je ocenjeno da bi morali da se lišimo previse stvari koje smatramo svojom komparativnom prednošću.

Troškovi ili profit?

Po mom mišljenju, odluka o kupovini gotovog programa ili o izradi programa u sopstvenoj režiji se suštinski svodi na odluku šta je bitnije: smanjivanje troškova poslovanja ili maksimizacija dobiti.

Korišćenjem kupljenog standardizovanog rešenja smanjuju se troškovi održavanja kroz viši kvalitet proizvoda koji je u praksi testirana od strane drugih poslovnih subjekata, nema potrebe za velikim IT ljudstvom, održavanje i popravljanje aplikacije je centralizovano i specijalizovano itd.. S druge strane opet, korišćenjem gotovog rešenja model poslovanja se limitira na osobine podržane programom efektivno smanjujući time potencijalne komparativne prednosti koje preduzeće možda ima u odnosu na svoju konkurenciju, te na taj način utičući na smanjenje prihoda koje preduzeće ostvaruje vršenjem svoje delatnosti.

Kako odlučiti?

Osnovna stvar koju morate imati na umu je da program kupujete/radite kao “nužno zlo”. Program ko program je totalno nebitan van konteksta delatnosti kojom se bavite. Autori programa znaju to dosta dobro da zamagle korišćenjem bombastičnih reči o standardizacijama, svetskim tokovima itd. ali na kraju dana radili vi papirom, kompjuterom ili nečim trećem vam ne donosi prihod. Ono što vam donosi prihod je vaš lični posao koji obavljate dan za danom na način koji mislite da je najbolji.

Imajući gore rečeno u vidu, evo dva kriterijuma koja po meni određuju da li korišćenje gotovog programa ima smisla ili ne:

  • ako je delatnost kojim se bavite standardna delatnost koju obavljaju mnoge druge firme i ako je način na koji obavljate tu delatnost identičan ili sličan kao i drugi.
  • ako ste voljni da prilagodite svoj biznis načinu na koji program radi u momentu kupovine (eng. “out-of-box”)

Ilustracija prvog preduslova su pitanja tipa “Da li imate neke specijalne načine numerisanja dokumenata?“, “Da li u postojećem programu koji koristite imate delove koji su morali da budu rađeni specijalno za vas?”, “Da li kad vidite tuđe programe, primećujete nedostatak dosta stvari koje bi vama *nedostajale* za vaš rad kad abi ste taj program koristili?”
(Pomoć prijatelja:“Što više “DA” odgovora => razmotrite opcije posebno pisanog programa”)

Ilustracija drugog preduslova su pitanja tipa:”Da li ste spremni da uvedete ISO standardizaciju X i Y u skladu sa najboljim svetskim praksama?” (sa raznoraznim varijacijama u oblastima analitike, kretanje dokumenta, upravljanjem informacija itd)
(Pomoć prijatelja:“NE” => razmotrite opcije posebno pisanog programa”)

Svetsko, a naše…

Dati definitivne odgovore na prethodna dva pitanja je samo po sebi već veoma teško, ali ne bi mi bili Srbija da nemamo okolnosti koje dodatno otežavaju dolaženje do tih odgovora.

Stvar je u tome da na našem tržištu stvarno velike svetske kompanije (Sage, Intuit, Peachtree, Salesforce itd.)nisu prisutne delom zbog osobenosti našeg knjigovodstva (drugačije od anglo-saksonskog modela), a delom zato što smo realno zanemarljivo malo tržište. Usled toga, programe prave lokalne firme manje ili srednje veličine te kupovina bilo gotovog programa nije  garantovano kupovina kvalitetnog programa jer ih ima raznih na tržištu.

Zakon o računovodstvu u članu 8 lepo definiše potrebu za standardizacijom

“Pravno lice i preduzetnik koji vrši obradu podataka na računaru dužan je da koristi standardni računovodstveni softver

Problem je jedino u tome što jedini standard koji bi  definisao šta je to standardni računovodstveni softver (JRS 33) je nevažeći već decenijama, a nikakav certifikaciono telo koje bi izdavalo ateste programima za knjigovodstvo ne postoji te je u praksi time omogućeno da bilo ko bukvalno može da radi bilo kakvu aplikaciju.

Po meni jedan od boljih načina za detektovanje “dobrih” programa su korisnička svedočenja o njihovim iskustvima u radu sa programom. Skoro svi programi na našem tržištu imaju neku web stranicu sa taksativno navedenom listom korisnika koja u toj formi ne doprinosi sticanju poverenja. Kao retki pozitivni primer svetskog pristupa ovom problemu kod nas mogu samo da izdvojim slovenački DataLab koji počev od svoje liste korisnika, preko meni lično posebno bitnih svedočenja stvarnih korisnika na sajtu, pa do marketinškog sadržaja dostupnog van samog sajta i na YouTube-u se maksimalno trudi da stekne kredibilitet ozbiljne firme i time se diferencira od “ostalih firmi” na tržištu.

U slučaju da se odlučite da radite svoju aplikaciju, ako ste malo preduzeće u većini slučajeva ste primorani da tražite “malog Pericu genijalca iz bloka”, osuđeni da glumite zamorče testirajući u praksi taj program koji nikad ne radi kako treba i nikad nije gotov. Tokom vremena, pre ili kasnije, vaše testiranje i Peričino krpljenje dovedu do aplikacije skrojene po vašoj meri , ali pitanje je da sli ste spremni da platite tu cenu i čekate toliko dugo.

U slučaju da ste srednje ili veliko preduzeće možete da oformite svoj sopstveni IT tim čiji bi posao bio da rade na vašoj aplikaciji i da izbegnete zavisnost od malog Perice. Iako na prvi pogled to deluje sigurnije u smislu da imate punu kontrolu nad procesom izrade programa, po mom ličnom uverenju to skoro nikada neće da dovede do zadovoljavajućeg rezultata jer da dođete do programa po svojoj meri treba vam određena mešavina znanja, iskustva i maštovitosti što je po meni retkost u takvim timovima. Da budem maksimalno iskren, da članovi tog vašeg tima imaju te kvalitete ne bi radili kod vas na vašem malom programu nego bi radili ili za sebe ili u nekoj velikoj svetskoj firmi. Imaćete koga da budite u 8 ujutro da pogleda odmah što “faktura nije htela da se snimi” to je istina, ali nije to poenta – poenta je da vam i ne pada na pamet da faktura neće da se snimi isto kao kad kliknete na snimi u Word-u ne držite fige razmišljajući da li će da snimi dokument ili ne.

Da sumiram, koristili spoljašnje ili unutrašnje resurse, vaša poslovna odluka da zahtevate “program na uvce” vrlo lako može (kao i u kafani) da rezultuje gorkim kajanjem “sutradan ujutro” nad uludo utrošenom hrpom novca 🙂

Zaključak

Da privedem kraju ovaj neplanirani post (izmigoljio mi se iz tastature sam od sebe kad sam krenuo da pišem o segmentaciji i personalizaciji) preporukom u korist kupovine gotovog programa, jer zaista nema ekonomskog smisla da pravite sopstveni program z knjigovodstvo (sem ako vam to nije delatnost).

To naravno ne znači da srljate slepo i kupite najreklamiraniji i najskuplji knjigovodstveni program ili program koji znate da gigant DOO Mika koristi jer svako preduzeće ima svoj sopstveni model poslovanja tako da čak i ako program savršeno odgovara jednom preduzeću ne mora da znači da će da odgovara  u istoj meri i vama. Kupovina aplikacije koja može da radi 123 stvari koje ne trebate sad ali ćete možda koristi u budućnosti može podjednako da vas uspori u vršenju vaše delatnosti kao i kupovina programa za knjigovodstvo koji radi premalo stvari.

Dobro proučite koje stvari u vašem poslovanju nisu podržane potencijalnim knjigovodstvenim programom na način koji ste vi navikli da radite trenutni i razmislite malo da li je problem u programu ili vašem poslovanju. Ako ne vidite problem u vašem načinu poslovanja, preporučio bi razmatranje još nekog programa. Nije na vama da prilagođavate vaše poslovanje programu već sasvim obratno – program treba da se prilagodi vama.

Takođe, pažljivo proučite referentne liste korisnika i kontaktirajte ih bilo putem telefona ili možda najavljenom posetom. Ovo zadnje preporučujem pretpostavljajući da  je svaka firma na listi korisnika stavljena uz pristanak korisnika i da je razlog postojanja telefonskog broja kontaktiranje te reference.

Poslednje što želite je da  budete nečije zamorče-tester ili da limitirate vaš posao samo da bi ste koristili neku aplikaciju.

Čitamo se uskoro,

Nikola

P.S.

Ja sam inače krenuo da radim u paraleli sa blogovanjem na svom knjigovodstvenom “programu za prodavnice računarske opreme” i planiram da objavljujem nove verzije najmanje jednom mesečno s tim da planiram da do kraja novembra dođem do 1.0 verzije. Definitvno do kraja juna planiram da izbacim prvu verziju koja će da radi jednu malu ali veoma korisnu stvar za koju nisam čuo da postoji u bilo kom programu kod nas 🙂

U tom radu već sam naleteo na nekoliko meni vrlo interesantnih praktičnih tema vezanih za rad naših b2b portala, tako da jedva čekam da što pre očistim ova 3 preostala “teorijska” posta  i da krenem da objašnjavam konkretne stvari koje radim pritom vam omogućavajući da isprobate aplikaciju koja reflektuje u stvarnosti ove stvari o kojima pišem.

“Manje je vise”

Minimalizam kao atribut savršenog programa za knjigovodstvo

Po meni najlepša definiciju minimalizama kao jednog od atributa savršenstva je misao francuskog pisca Antoine de Saint-Exupéry-a

Savršenstvo očigledno ne nastaje onda kada nema sta da se doda, već kad se ne može ništa oduzeti.”

Minimalizam internet pretraživača

Da ilustrujem ovu prelepu misao u domenu računara koristiću primere dva internet pretraživača (eng. browser) : Microsoft Internet Explorer-a i Google Chrome-a, gde će mi prvi poslužiti kao ilustracija lošeg dizajna, a drugi kao ilustracija dobrog dizajna – naravno sa stanovišta minimalizma kao dizajnerskog cilja. Oni koji me lično znaju, znaju da sam ja 100% fanatični pobornik (eng. fanboy)  Microsoft-a (čak u toj meri da ne želim da koristim ni jedan jedini Google proizvod) + ja koristim Internet Explorer 8 u svakodnevnom radu, ali moram ipak da priznam ovde javno da je Google oduvek bio majstor minimalizma sa sajtom, pa je to isto preneo i na svoj internet pretraživač tako da je ovo primer lošeg i dobrog očigledan u toj meri da nisam mogao da izbegnem da ga koristim u ovom postu. 🙂

U svom svakodnevnom radu od internet pretraživača ja lično očekujem bar sledeće stvari:

  • da ima opciju za brzim pretraživanjem (ne želim da idem na url pretraživač-a Bing/Google da bi tragao)
  • da ima opciju sinhronizovanja snimljenih internet adresa (eng. favorites) (imam više kompjutera i bitno mi je da za koji god da sednem imam kolekciju istih prečica)
  • da za trenutni url mogu da vidim Google PR “Google Page Ranking” stranice za svoje SEO aktivnosti

Da vidimo kako to Internet Explorer rešava:

IE8

  • Opcija brzog pretraživanja je omogućena postojanjem posebnog okvira za unos teksta u gornjem desnom uglu.
  • Sinhronizovanje internet adresa je moguće odraditi putem Live Sync-a, ali to em zahteva instaliranje Live/Bing toolbar-a, em je rešenje koje ne može da se koristi u FireFox-u i Chrome-u. Elem, ja koristim delicious u te svrhe koji je podržan u IE-u putem toolbar-a koji na ovoj slici je u gornjem levom uglu.
  • Da bi video PR svake stranice na jednostavna način, morao sam da instaliram Google toolbar za internet explorer čisto da bi imao u centru PR ikonu (strelica u centru)

Sem te funkcionalnosti vidimo da je red omiljenih lokacija je uključen (ja lično to gasim,ali on ostaje uključen u 99% slučajeva koje viđam pa sam ga ostavio za potrebe dijagrama). Ispod tog reda imamo još jedan red sa jezičcima stranica i (zadivljujuće za IE) u istom redu se nalaze ikone i meniji.

Sad Chrome, isto to

Chrome

Ne postoji posebni okvir za unos teksta brzog pretraživanja već se koristi isto polje gde se unosi adresa. Logika je ako se ukuca u adresni deo nešto što nije adresa korisnik želi da pretraži internet za ukucane reči.
Taj prostor u desnom uglu reda sa adresom je tako iskorišćen za smeštanje ikona instaliranih ekstenzija. U ovom primeru ja imam instalirane ekstenzije za PR i delicious jedne pored drugih. Sami jezičci otvorenih stranica nemaju svoj sopstveni red već su ‘uglavljeni’ u okvir (eng. chrome) aplikacije.

Opcije ekstenzije koje u IE-u su prikazane taksativno u toolbar-u, u Chrome-u su prikazane po potrebi kao iskačući prozor.

Chrome2

Šta je poenta ovog prikaza internet pretraživača?

Poenta je u tome da dizajneri Chrome-a su minimizirali svoj korisnički interfejs, odričući se svih nepotrebnih elemenata na pametan način koji im je omogućio da zadrže istu funkcionalnost. Na taj način se Chrome jako dobro “sklanja sa puta” korisniku, prikazujući mu u datom momentu maksimalnu količinu informacija koje je zahtevao (sve ispod plave isprekidane linije je tekst koji se ne vidi u IE-u) pritom mu omogućavajući mu da se fokusira u većoj meri na sam sadržaj (crvena isprekidana linija pokazuje koliko dodatnog “informacionog šuma” IE ima u poređenju sa Chrome-om).
Toolbar-ovi u IE  mogu da se isključe i dase dobije sličan prikaz, ali onda ekstenzije ne rade + kao što sam rekao većina korisnika koriste podrazumevana podešavanja. Drugim rečima, IE većinu korisnika vodi lošim putem svojim dizajnom, dok Chrome korisniku taj loš put ne omogućava uopšte.

Ie8_Chrome

Microsoft Metro dizajnerski pristup – moj minimalistički uzor

Windows Media Center

Windows Phone 7Zune

Metro je radni naziv za dizajnerski pristup (minimalistički između ostalog) kojim je Microsoft dizajnirao do sada Windows Media Center, Zune klijent i Windows Phone 7 UI.

Ono što je bitno u kontekstu ovog posta o minimalizmu kao jednom od kriterijuma uspešnog dizajna programa za knjigovodstvo je način na koji je Zune aplikacija implementirana koji pokazuje da Microsoft /kad hoće/ može da dizajnira minimalistički kao Google.

Bez namere da idem u detalje Metro dizajna (koga zanima nek pogleda ovo) samo ću ga kratko opisati kao grafički intenzivan dizajn koji se zasniva na tekstualnim minimalističkim interfejsima sa tipografijom i svrsishodnim animacijom prelazima kao osnovnim implementacionim principima. Standardan Windows interfejs (siva dugmad itd) je napušten u korist vizuelnih elemenata koje se stapaju sa aplikacijom. Sve u metro aplikacijama je usmereno ka multimedijalnom sadržaju koji korisnik konzumira i u kome korisnički interfejs aplikacije treba da pridodaje tom korisničkom iskustvu svojom neupadljivošću i fokusiranim funkcionalnim osobinama .

Ako pogledamo samo jedan ekran Zune aplikacije (pregled kolekcije muzike koju korisnik ima)

Zune

možemo da vidimo sledeće minimalističke atribute:

  • u gornjem levom uglu aplikacije imamo glavni meni (collection odabrano) i podmeni tog menija (music odabrano) kao dva jednostavna niza reči – ostavlja osećaj laganosti
  • skroz u gornjem desnom uglu vidimo mali prostor za prijavljenog korisnika, mesto za ulazak u opcije sistema i opcije za zatvaranje, maksimiziranje i minimiziranje prozora.
  • Ispod toga se nalazi polje za tekstualni unos kriterijuma pretrage gde je namena polja ispisana u samom polju
  • Ispod polja za pretragu nalazi se meni 3-eg nivoa koji sadrži u ovom slučaju filter kriterijume za prikazanu kolekciju muzike.
  • U donjem delu ekrana imamo nekoliko interakcione tačke putem kojih korisnik može da izvrši neku funkciju nad odabranim sadržajem /pusti pesmu, nareže je, prebaci na Zune uređaj itd)
  • Kao i u slučaju Chrome-a, Zune interfejs
    • ne odvlači pažnju od glavne namene aplikacije – pesama u ovom smislu.
    • ne zauzima mnogo ekranskog prostora – prostor između isprekidanih linija zauzima veliku večinu ekrana.
    • izgleda lagano (uporedite npr. sa Ribbon aplikacijom), a vrši sve funkcije potrebne.
    • s obzirom da nema besnih grafičkih elemenata, moguće je stići dalje u implementaciji pre nego što postane neophodno uključiti profi dizajnera /veoma bitno u mom slučaju/

Sve je to lepo, ali program za knjigovodstvo ne radi sa muzikom i filmovima

Evo još jednog primera istog Metro tipa interfejsa, ovaj put na primeru jedne Silverlight stranice koja ima sličnosti sa nekim hipotetičkim ekranom knjigovodstvenog programa /zamalo da kažem poslovne (“LOB”) aplikacije – izraz koji mi je sugerirano da niko kod nas u Srbiji ne koristi/

Metro

Zaključak

U ovom članku sam objasnio kako će moj savršeni program za knjigovodstvo da bude dizajniran sa kriterijuma minimalizma – korišćenjem Metro dizajn paradigme. Potpuno sam svestan da veliki procenat ljudi u Srbiji ne smatraju da knjigovodstveni programi mogu/trebaju da izgledaju ovako, ali ja sam dosta razmišljao o ovome i isprobavao nekoliko pristupa /MDI, Ribbon, Billy Hollis-ov odličan pristup itd/ i na kraju uvideo da je Metro pristup najusklađeniji sa mojim pogledima i planovima po više osnova (jedan od njih je minimalizam).

Sledeći članak će biti zadnji deo mog filozofiranja o šta su savršeni knjigovodstveni programi i u njemu ću izneti svoje stanovište u vezi značaja personalizacije i segmentacije za moju aplikaciju.

Nakon tog članka prelazim na malo konkretnije teme kao što su “Da li treba dozvoliti brisanje/ispravku u knjigovodstvenim programima”, “Web VS Windows” itd…

Čitamo se,

Nikola

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

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