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ć
Interesantno….slucajno sam naleteo na ovu temu ali zaista interesantno…..a kada moze da se ocekuje tvoja verzija programa?
Uzgred, jesi li ono postavio tutorijal o C# na svom blogu?
Evo primera iz mog ličnog iskustva:
Program za koji se plaća pretplata od oko 40-50 evra mesečno.
Zadatak – „proizvodnja“ računara. U suštini napraviti jedan novi artikal od gomile postojećih.
„Procedura“ po kojoj se radi, a koju sam morao da zapišem i držim pri ruci je sledeća:
„1. Nov artikal definisati kao gotov proizvod са cenom koja je zbir nabavnih cena sirovina bez pdv-a.
Zapamti tu cenu.
2. Internom otpremnicom prebaciti sirovine iz vp u magacin sirovina – stavku po stavku.
3. Generisati internu u magacinu sirovina
4. Proizvodnja – radni nalog – novi
Onu zapamćenu cenu ukucati ovde kao vrednost radnog naloga.
5. Proizvodnja – izdatnica sirovina – Novi nalog – nađi u magacinu sirovina – radni nalog – preuzmi nalog
Dodaj sve stavke koje treba (koje imaš u magacinu sirovina) stavku po stavku – pri tome ne vidiš stanje u magacinu.
6. Proizvodnja – prijem pojedinacnog proizvoda
Nov nalog – biraj magacine – levo sirovine – desno gotovi proizvodi
7. Prebacivanje iz sirovina u gotove proizvode
Iz robnog napravi međuskladišnicu iz gotovih proizvoda u vp
“
Eto…. i onda pitaju što boli glava 🙂
Sve u svemu – u pravu si. Mene kao korisnika nije bitno šta program treba da „ispod haube“ da odradi.
Ja hoću da JEDNOM unesem artikle i količine sirovina – odredim šta je krajnji proizvod – i stisnem „Štampaj“ i da lupim pečat 🙂
ps. I mi imamo te „moćne tabele sa filterima“ koje znaju da koriste nas 10%…
Vladimire,
u potpunosti se slazem i razumem tacno o cemu pricas iz prostog razloga sto sam ja 3 godina radio kao serviser-„banderash“ i odlicno se secam koliki je bio disparitet izmedju onog sto se desava u stvarnosti – „sklapanja racunara“ i ceremonija koje zakon zahteva – „proizvodnje racunara“.
Ja sam ceo ovaj blog i projekat poceo jer sam trazio za svog prijatelja „program za PC shop-ove koji radi knjigovodstvo„, a sve sugestije koje sam dobijao su za „programe za knjigovodstvo koji mogu da se koriste u PC shopovima“. Sto me najvise zacudilo, niko nije kapirao u cemu je razlika izmedju ta dva. Sad sam odlucio da napisem sledeci post o necemu na cemu radim vec 3 nedelje za svoju pre-beta-v0.1-verziju koja verujem da ilustruje na konkretnom primeru u cemu je ta razlika i sta podrazumevam ja pod tim kad kazem da radim na programu „bas za PC shop-ove“.
Sad da se razumemo, to sto je papirologija komplikovana ne menja cinjenicu da je zakon – zakon i treba da bude ispostovan takav kakav je. Vuka nahraniti i ovce drzati na broju se u ovom slucaju postize razdvajanjem pojavne forme programa i sta se desava „ispod haube“. Imamo identicno glediste kao sto je tvoje u vezi papirologije „proizvodnju racunara“ – pojavno za korisnika treba da izgleda bas tako – lista delova i kolicina data u nekom „normativu“ kao polazna tacka (u malim firmama nema mnogo brendiranih racunara) ili bez njega. Proizvodjac prodje kroz listu koriguje kolicinu, promeni deo ako treba – „lupi enter“ – i to je sve sto on vidi radi. Ispod haube program treba da onda odradi svu tu papirologiju koju si naveo, a da cak taj korisnik i ne vidi to. Onaj ko vidi te dokumente je knjigovodja ili koga-vec-to-zanima (pisao sam o tome ovde).
Veliko hvala na konstantno korisnim komentarima!
Najzad sam nasao malo slobodnog vremena da pokusam da smisleno odgovorim . Jer „rukavica “ je bačena.
Šalim se naravno.
U osnovi, kada sam chatovao sa Nikolom na temu „Da li su fliteri, po mom pristupu, neophodni korisniku?“ ja sam odgovorio da je taj skup funkcija neophodan korisniku.
Obrazložio sam taj svoj stav na jednom primeru, koji je Nikola i citirao.
Kao i u životu, slika nije crno-bela.
Evo kako ja vidim stvari
Da li su filteri potrebni zavisi, kojem se tržištu/korisnicima obraćate. Ako su to poslovni korisnici, kojima će primena filtera olaksati pronalaženje neophodnih podataka za donosenje odluka, filteri su potrebni. To je moj početni stav.
Ja mogu navesti spisak od 10-15 filtera, koji će biti ugrađeni u softver i koji su neophodni korisnicima iz „branše“ kojoj se obraćamo. Da li nam onda treba i 15-tak dugmića, ako Nikola slikovito napisa? Nisam siguran da je to dobar pristup, jer šta ako korisniku treba 16. 17,..21..?
Ovi filteri se nalaze u jednoj formi, koja omogućava izbor ugrađenih filtera.
Korisnik na osnovu znanja (prethodno ili stečeno obukom) može kreirati „svoje“ – nove filtere.
Šta se na taj način obezbeđuje?
Uz naravno dodatan programerski rad na izradi skupa funkcija, koji obezbeđuju filtriranje podataka izbegava se, odnosno smanjuje potreba korisnika za izradu specifičnih izvestaja, koji nisu ugrađeni. Sledstveno i nezadovoljstvo klijenta tipa „“Ne mogu da imam izveštaj o završenim radovima u martu mesecu kod investitora X“. Ili.
„Ovi programeri nikako da mi spreme Izveštaj, a obećali su da će to biti završeno pre mesec dana.“
E, sad ako govorimo o drugoj stvari (zaboravimo na flitre, pretrage, grupisanja, sortiranja), a to je večita dilema, koji je optimalan skup funkcionalnih „performansi“, koje mora da poseduje softver, koji nudimo tržištu, to je mač sa dve oštice.
Prvi pristup, koji na neki način zastupa zastupa Nikola je da korisniku treba pružiti definisan skup karakteristika projektovan prema njegovim potrebama. Ovaj pristup je usko specijalistički.
Kako to prepoznati na ovom malom tržištu.
Prednost takvog pristupa je jednostavnost, minimalizam, vrlo brza implementacija. Vrlo kratka dokumentacija za obuku.
Nedostatak, po mom skromnom sudu, je da to zahteva verziranje softvera, odnosno prilagođavanje novoj grupi korisnika iz neke druge, ali slične branse. Što onda povećava probleme oko održavanja softvera.
Da se razumemo, nikako ne podržavam koncept ići za jednu funkciju više u odnosu na konkurenciju. Takvih „softverskih Frankeštajna“ sam se nagledao. U tom pogledu sam u potpunosti saglasan sa Nikolinim „procesnim“ pristupom, koji treba da definišu put u kreiranju/dizajniranju softvera.
Još samo nešto da dodam. Koristiti analogije, odnosno pristupe u definisanju, koja se primenjuju na razvijenim tržištima može razvojne timove dovesti u zabludu. Moj je stav da rešenje mora biti dovoljno fleksibilno da može da „pronadje“ maksimalno veliku grupu korisnika, po prihvatlljivoj ceni za obe strane, korisnike i tvorce. Naravno ovo je tako lako, kao što je jednostavno rešiti „kvadraturu kruga“.
Moj red 🙂
Pre svega moram da ponovim ovde da su filteri samo jedan adekvatan primer za diskusiju „funkcije vs procesi“ gde ja sustinski napadam funkcije sa stanovista njihove krajnje svrsishodnosti. Drugim recima, ako su filteri potrebni da bi se sacinio spisak cija je namena izrada krajnjeg dokumenta, nece biti ni filtera ni ‘dumica’.
To verovatno nije uvek slucaj pa da pretpostavimo da filteri nisu uvek ‘izbacivi’ i da ih ima 15 takvih neizbacivih kao sto Aleksandar navodi hipoteticki…
15 dugmica vs 15 filtera
Naravno da ne treba 15 dugmica, dugme je bilo vise figurativno spomenuto. U praksi je to uobicajeno jedan ekran sa listom izvestaja (ti filteri i jesu po meni vid izvestaja) odakle korisnik bira jedan i vidi rezultate.
Konceptualna razlika izmedju ovog pristupa i filtera je velika po krajnjeg korisnika jer bira iz liste od 15 prepoznatljivih izvestaja koji ispod haube imaju jedan ili vise kriterijuma „izveštaj o završenim radovima u mesecu X kod investitora Y“. U prvom pristupu je ta kompleksnost sakrivena ‘ispod tepiha’, u slucaju filtera opterecuje krajnjeg korisnika.
(Sage Peachtree Accounting je jedan primer toga)
Sta ako treba korisniku 16.-ti, 17-ti filter?
Za mene licno najbitnije u vezi ovog je da to znaci da autor programa nije dovoljno upoznao poslovni domen kojim se bavi korisnik jer mu se trazi neophodan poslovni izvestaj o kome on nije ni cuo. Drugo, sta je problam dodati izvestaj? Naravno da zavisi od implementacije, ali nacelno je uvek „pipes and filters“ u smislu da se neki set podataka filtrira po odredjenim podacima. Kod za prikaz i stampu rezultata se jednom radi za sve izvestaje ili kupuje (npr. Crystal Report) te bi dodavanje dodatnog izvestaja trebalo biti po meni relativno je jednostavna, jeftina i bezbedna programska promena.
Sto se kvadrature kruga tice, tu se slazem da se uglavnom radi o koncepcijskim razlikama o tome kako program treba praviti gde nema dobih i losih resenja i jedini sud daju trziste i korisnici. Ja sam 2003-e radio na jednom programu koji se u vecoj ili manjoj meri koristio u komisionima, prodavnicama, velikoprodajama, pekarama, restoranima itd te sam samim tim tada bio na stanovistu da je bolje imati jedan program koji radi sve. Sada ipak stojim na suprotnoj strani jer smatram da raditi na resenju koje podjedanako zadovoljava sve tipove i velicine preduzeca, industrijske grane je jako tesko i cak i ako je moguce da rezultuje funkcionalnim resenjem to je resenje kao rezultat kompromisa resenje koje nikom od korisnika nije skroz po volji.
Jedan od razloga sto ja toliko volim programiranje je ono cuveno da „ako petorici programera date problem dobicete 6 razlicitih resenja“ to sto sto pored nauke ima i dosta artizanstva i filozofiranja. U tom smislu, opet moram da naglasim da ja ne tvrdim da su filteri itd pogresni, vec samo iznosim svoj licni stav o tome zasto ih ja u mojim razmisljanjima o arhitekturi poslovnih aplikacija odbacujem, a na svakom je od nas autora i korisnika da donese svoj zakljucak u vezi koliko to ima smisla za njega licno.
Matori,
Nisam verovao da ima još ljudi koji toliko slično razmišljaju na ove teme.
Evo odgovora na poslednja 4 pitanja:
1. Ja pišem softver sa još par ljudi, i postoje funkcionalnosti koje ni sam ne poznajem dobro. Mi se pak trudimo da naprvimo optimalnu dokumentaciju za korišćenje programa, gde bi svako mogao da se snađe, ako mu nešto nije jasno.
2. Primetio sam da korisnici mnogo češće besomučno koriste scroll taster miša, makar tabela imala milion slogova, nego što koriste pametne filtere (i pored obuke koju su imali).
3. „+1 pristup“ je na žalost must, jer svi gledamo da gađamo i srednja i velika preduzeća, a uglavnom poslujemo sa malim preduzećima 🙁
4. Ni jedan ni drugi, jer u biti postoji više grupa korisnika. Oni koji hoće sve na „svoje dugme“ , i oni koji žele podrobnije da analiziraju podatke-tabele.
Rešenje je po meni da im predstaviš mogućnosti filtriranja i sortiranja podataka, a oni da izaberu način kako je njima najlakše (i na kraju se iznerviraš kad vidiš kako si ti programirao prelepe mogućnosti filtriranja, a oni i dalje sortiraju po jednoj koloni, a onda skroluju 30ak sekundi mišem ne bi li došli do podatka na slovo „M“)
Vladislave,
ima nas dosta samo treba neko da bude zaludan kao ja sto da naskraba nesto da krene diskusija 🙂
Jako interesantna razmisljanja si izneo pa ne zameri sto cu malo da te zapitkujem u vezi njih – na kraju krajeva to je i poenta bloga da kroz diskusiju svi dodjemo do nekih svojih zakljucka.
Bazirano na sva 4 tvoja stava (na moju zalost 🙂 ) mislim da ti sustinski podrzavas Aleksandrov stav koji se zasniva na tome da korisniku programa treba pruziti odredjeni „set podataka opste namene“ i alate (filtere, grupe, sortiranja) putem kojih oni vrse projekcije tog opsteg seta podataka u format koji njima treba. Moj stav se zasniva na tome da korisnicima treba dati samo „krajnju projekciju“ jer je po meni ok lisiti se cak i dela mogucnosti programa koji koristi samo mali broj korisnika ako se time bitno snizava kompleksnost programa.
Ne tvrdim uopste da je to opsat istina koju svi treba da prihvate, samo moj stav koji sam svestan da skoro niko ne smatra ispravnim.
Tvoje iskustvo je veom intersantno za ovu diskusiju pa bi da ga parafraziram u tom kontkstu (molim za ispravku ako sam nesto pogresno shvatio):
Vas nekoliko radite na programu koji treba da pokrije preduzeca raznih velicina te samim tim u program ugradjujete napredne mehanizme pretrazivanja koji nude velik eprednosti korisniku. Drugim recima, imate „odlicne filtere“.
Korisnicima pruzate optimalnu korisnicku dokumentaciju i obuku gde im ukazujete na prednosti ugradjenih naprednih mogucnosti pretrage potaka.
Ipak, korisnici i pored svega toga skroluju tabelu trazeci za slogom koji pocinje na slovo „M“
Pitanja:
Da li smatras da jedan isti program moze da bude podjednako i zadovoljavajuce optimalan za korisnike malih, srednjih i velikih preduzeca?
Kako objasnjavas to da korisnici, iako im je pokazano koliko je nesto korisno po njih, se i dalje se muce ne koristeci to?
Da li se to moze pripisati „korisnickoj inteligenicji“ ili to moze biti indikator gore navedenog da ono sto je nama programerima korisno nije uvek ono sto asi korisnici smatraju bitnim/korisnim?
Zar ne smatras to mozda dokazom moga stava iz ovog posta?
Da se posluzim tvojim primerom, zar ne mislis da (bazirano na uocenoj realnosti) umesto svih tih „filtera“ njima treba tabela u cijem zaglavlju imas 30 tastera – svako sa po jednim slovom.
Korisnik dakle dodje na ekran sa podacima, klikne na taster sa slovom „M“ i dobije tabelu sa podacima koji ga zanimaju. Ako je to nesto sto oni prirodno rade uvek, mislim da bi to bez ikakvog uputstva i obuke krenuli nagonski da koriste i budu srecni zbog toga.
(Sve ovo naravno strogo hipoteticki – price radi koristim tvoj primer jer na primerima se lakse diskutuje – ne tvrdim da u stvarnosti to treba da uradis)
Hvala veliko na podeljenom iskustvu!
Ono što je genijalno to je istovremeno i jako prosto (inače ne bi bilo genijalno nego komplikovano).
Korisnici softvera ovu izreku izgleda imaju upisanu u genima.
Zadnjih 20 godina sam izmišljao i implementirao u svoj poslovni knjigovodstveni softver sve moguće inovacije i unapređenja „da bi korisnik imao više mogućnosti i da bi mu bilo lakše“. Što je rešenje bilo sveobuhvatnije i sa više mogućnosti to je bilo i komplikovanije (bilo je potrebno više koraka za njegovo izvršenje a i da se malo pročita help) pa je to bilo i odbojnije za korisnika. U starijim prostijim verzijama programa korisnici su radi obrade nekog posla od za to potrebnih 8 tastera znali napamet bar 4. U novijim naprednijim (čitaj složenijim i komplikovanijim) verzijama programa od mogućih 20 tastera znaju napamet samo dva ?. Dakle, cela ta „pomoć namenjena njima“ ih deprimira, unesrećuje i gube interes da uopšte dalje istražuju. Ograničavaju se samo na ono neophodno: da skroluju mišem ili na genijalno rešenje – postavi abecedu pa pritisni jedno od 30 slova (nismo japanci oni imaju oko 20000 slova).
Cela ova priča iz mog iskustva odnosi se samo na knjigovodstveni softver i grupu (skup) korisnika knjigovodstvenog softvera iz Srbije, dakle knjigovođe po firmama, priučeni knjigovodstveni radnici po firmama, nedoučeni knjigovodstveni neradnici po firmama i ista ta vrsta korisnika u knjigovodstvenim agencijama. ALI ONI SU MOJI KUPCI i oni daju ocenu softvera sa kojim rade vlasniku firme i ostalim mojim potencijalnim kupcima a ne ja. Vrlo brzo sam izbacio svu „kaku“ iz programa i došao do zlatnog pravila: KAD TI SE UČINI DA JE NEKO REŠENJE „STRAŠNA STVAR“ ZA KORISNIKA TO JE ODLIČAN ZNAK DA GA NI PO KOJU CENU NE UGRAĐUJEŠ U PROGRAM! jer ti si bato programer i tvoj način razmišljanja i delovanja je dijametralno suprotan načinu razmišljanja i delovanja korisnika tvog programa. Dokaz: napravite program i testirate ga nedeljama na sve moguće gluposti koje korisnik može da uradi i da sruši program. Sve izblokirate i predvidite. Probate ponovo i zadnji dan pred isporuku. Sve radi čak i kada nogom nagazite na tastaturu. Ali, čim instalirate program i ženska sedne da ga proba, uradi nešto (a što je najgore više ne ume da vam objasni šta je uradila) i vaš program „pukne ko zvečka“.
Dakle, u program ugradi samo ona dva ili tri dugmeta koja su im neophodna za izvršenje njihovog svakodnevnog posla. Kad im jednom ili dva puta godišnje zatreba nešto više, i onako će te zvati da pitaju kako to da urade. Onda moraš da im prepričaš jednu ili dve strane iz Help-a (jer ako im kažeš da to pročitaju u Help-u obavezno se uvrede i na dalje te mrze) i normalno, moraš da im kažeš u koji meni da uđu i koju operaciju da izvrše.
Dakle, ja sam za Nikolin način gledanja na stvari, kad pričamo o Srbiji i knjigovodstvenom softveru u Srbiji. Ameriku i Kinu ostavljam dolazećim generacijama.