Menu

Rešenja po zahtevima klijenta

Najveća vrednost firme je stručnost: poznavanje posla i tržišta, znanje i procesi koji su usavršavani godinama. Međutim, kada je potrebno da softver to podrži nastaje ogroman problem jer programi su u suštini najčešće nefleksibilni. Aplikacije se prave da rade na određeni način, onako kako stručnjaci softverske kuće misle da je najbolje raditi posao. Gotova rešenja - čak i njihovo ime govori o tome da je tu priča prilično završena - su ili jeftina "univerzalna" rešenja koja implementiraju nekakvu neutralnu sredinu funkcionalnosti, ili skupi sistemi koji  forsiraju "best practice", dakle nešto što većina smatra da je najbolji način.

Firma koja želi da softverski podrži svoje poslovanje je često svedena na tri opcije: da kupi jeftino "standardno" rešenje (koje najčešće pokriva samo knjigovodstvo ili se najviše koncentriše na njega), da kupi veliki ERP (koji je vrlo skup) ili da pravi sebi rešenje "od nule".

Prvi najčešće na solidno dobar način podržavaju jedan uzak skup poslova, nešto što delimično odgovara svima ali nikoga ne zadovoljava u potpunosti. Ako korisnik zatraži doradu aplikacije, rezultat će najčešće biti da se njegova verzija izoluje od ostalih i postane odvojena kopija koja se ne razvija dalje, dakle ne dobija unapređenja i popravke koja postoje na nekakvoj glavnoj verziji. Često, a to se čak dešava na većim (tj. skupim) rešenjima, postoji praksa da se sve dorade rade na jedinstvenoj verziji koja je zajednička za sve, što znači da izmene specifične za jednog klijenta dobijaju svi ostali.

Sa druge strane, velika ERP rešenja obično podržavaju mogućnost prilagođavanja ali tu je cena bilo kakvog razvoja najčešće takva da je mogu priuštiti samo najveći od najvećih. Vro često se dešava da firme koje uzmu veliko rešenje još u toku implementacije potroše toliko novca da kasnije rade sa time što imaju u strahu da će ih i najmanje unapređenje skupo koštati. Ishod ovoga je da dobiju užasno skup softver uz koji moraju da koriste dodatna priručna sredstva pa podatke i dalje beleže u Excel-u i Word-u.

U oba ova slučaja, korisnik mora svoj poslovni proces da prilagodi softveru umesto da ga softver podrži u onome što on sam najbolje zna da radi - često mnogo bolje od autora softvera. Praktično, jedino rešenje je da angažuje softversku firmu da razvije softver "po meri", tj. po njegovoj specifikaciji i procesu. Međutim, i ovo rešenje često bude neefikasno jer se za ovako nešto obično angažuje programer koji pravi sve po uputstvima klijenta i "od nule". Ako je klijentovo poslovanje najvećim delom standardno, onda je ovo delom nepotrebno, bilo bi bolje ako bi aplikacija mogla da se nadogradi samo u delu koji je specifičan za tog korisnika. Firme najčešće posluju na standardan način u oblastima koje imaju dodirne tačke sa knjigovodstvom, a sam poslovni proces i podaci koji se u njemu koriste su to što je specifično. Specifičnosti se često manifestuju u proširenju nekih podataka koji su inače standardno prisutni i u najosnovnijim aplikacijama: na primer, firmi su možda potrebni detaljniji podaci o artiklima ili poslovnim partnerima, dok je poslovanje vezano za zalihe ili finansije potpuno standardno. Optimalno bi bilo ako bi mogao da se nadogradi samo jedan deo aplikacije a da ostatak ostane kakav je. Za ovo je potrebno da aplikacija od starta bude napravljena tako da je podesiva, a to se, kao što smo rekli, sreće skoro isključivo u velikim ERP sistemima (pa i tamo ne uvek), a cena prilagođavanja aplikacije nikad nije povoljna.

Tehnologija

Moderne softverske tehnologije omogućavaju pravljenje visoko modularnih i podesivih aplikacija, ali njih i dalje nije lako ugraditi u poslovne aplikacije tako da nisu često zastupljene.

Međutim, moderne tehnologije XXI veka pružaju mogućnost za visoku modularnost softverskih aplikacija: ugradnjom tzv. Dependency Injection (DI) mehanizama u softver omogućava se lakše razbijanje aplikacije na sitne sastavne delove od kojih svaki postaje zamenjiv. Naravno, ugradnja ovakve tehnologije zahteva dodatni napor prilikom projektovanja softvera i čak i danas retko ko ide takvim "zaobilaznim" putem, ali su dobici nemerljivi, ne samo u podesivosti aplikacije već i u kvalitetu i stabilnosti. Na primer, izolacija svakog sastavnog dela aplikacije od ostalih znači da se i greške izoluju unutar njega i lakše ih je pronaći i ukloniti. Stav firme 8bit je da ovakva filozofija razvoja ne samo da ne otežava rad već je ovo početak nove ere u razvoju softvera: trenutno je programiranje umetnost, i način na koji se aplikacije prave je kao kada bi se zidovi zidali tako što se svaka cigla pravi kao ručni rad, unikat specijalizovan za primenu samo u jednom jedinom zidu. Pojavom i širom upotrebom nekoliko novih tehnologija poslednjih godina, konačno se čini da imamo dovoljno sastojaka i pravu ideju da možemo aplikacije da sklapamo od gotovih i proverenih komponenti. Trenutno smo praktično na početku tog puta i nisu sve postojeće tehnologije usklađene sa tom idejom, ali razvojni tim firme 8bit je uspeo da prilagodi i integriše potrebne tehnologije da bi se postigao taj cilj.

Sama arhitektura 8bit Cyclone sistema je od početka razvoja zamišljena tako da bude podesiva. Prilično je jednostavno zameniti pojedine komponente ili određeni deo aplikacije nekom nadograđenom verzijom, sa više polja, drugačijim ponašanjem i slično. Ovo, naravno, ne podrazumeva da je tu nadograđenu verziju lako napraviti: ako se radi o komplikovanoj funkcionalnosti nije je lako praviti ispočetka. Međutim, komplikovani delovi aplikacije su pravljeni na poseban način tako da njihovo ponašanje može da se modifikuje umesto da budu kompletno zamenjeni. "Motor" aplikacije je napravljen tako da pojedinačni delovi mogu da se upotrebe u različitim funkcionalnostima, što omogućava brži i lakši razvoj po zahtevima klijenta.

Zahvaljujući ovakvoj arhitekturi, Cyclone aplikacija je implementirana u vrlo različitim poslovnim oblastima kao što su građevina (gde su dokumenti grupisani po projektima, finansijski dokumenti podešeni da mogu da se ponašaju kao privremene situacije i tako dalje), proizvodnja mašinskih delova (šifarnik artikala sadrži podatke o procesima proizvodnje, merama i slično), procena kreditnih rejtinga i boniteta (evidencija firmi nadograđena da sadrži podatke o vlasništvu, rukovodstvu, godišnjim izveštajima...), naplati potraživanja (evidencija zadataka i aktivnosti koja generiše evidenciju koje usluge treba fakturisati), nabavci (praćenje toka količina artikala kroz dokumente) i tako dalje.

Primeri

Navešćemo neke od osobina aplikacije koje omogućavaju ovakvu prilagodljivost:

  • Ponašanje tipova poslovnih dokumenata nije fiksirano u kodu već je podesivo od strane programera: može se izabrati da li određeni dokument ima finansijske podatke (i to kog tipa, troškovi ili prihodi), da li sadrži listu artikala sa količinama i da li i na koji način utiče na zalihe, da li je moguće vezivati na njega plaćanja, da li je moguće ostvarivati vezu sa drugim dokumentima i sa kojima (što se npr. koristi za evidenciju koja količina porudžbine je isporučena ili fakturisana), način na koji se generiše broj dokumenta i slično.
  • Postoji generički sistem za evidenciju zadataka i aktivnosti gde se beleži ko je za šta zadužen, vremena i rokovi izvršenja, statusi i slično. Aktivnosti je moguće podesiti da u određenom trenutku (najčešće kada se završe) generišu tzv. "naplativu stavku" sa određenim iznosom koji je potrebno naplatiti. Kasnije se takve stavke preuzimaju u fakturu kako bi se naplatile klijentu - štaviše, moguće je evidentirati i stavke za naplatu i za plaćanje tako da se one kompenzuju u trenutku ubacivanja u fakturu. Način na koji se aktivnosti ponašaju i kako se zovu je potpuno podesiv tako da je moguće brzo sklopiti potrebno rešenje.
  • Proizvoljno kompleksni cenovnici: preračun cena je centralizovan u jednu komponentu koju je lako zameniti i implementirati logiku preračuna po potrebi. Ovo često nije potrebno jer je cene moguće definisati na vrlo fleksibilan način.
  • Forme za obradu dokumenata su važan deo u automatizaciji poslovanja, one omogućavaju da se na jednom mestu vide stavke svih dokumenata određenog tipa (npr. porudžbina ili trebovanja) i da se lako od njih kreiraju drugi tipovi dokumenata (otpremnice, fakture, porudžbine i slično). Ovakve forme čak nemaju standardnu implementaciju u aplikaciji već je napravljena infrastruktura koja omogućava brzo kreiranje specijalizovanih formi po zahtevu klijenta. Infrastrukturne komponente znaju kako da manipulišu dokumentima (kreiraju ih i ubacuju stavke u njih), kako da vode računa o realizovanim i preostalim količinama, kako da omoguće prikaz detalja realizacije, kako da prilikom kreiranja novih dokumenata preuzmu potrebne podatke (i omoguće korisniku da ih izabere). Kada se takva forma pravi za klijenta, potrebno je zadati koji dokumenti se gde prikazuju i eventualno dodatno isprogramirati klijentove specifične zahteve.

Kao što se vidi, projektanti firme 8bit su vodili računa o tome da funkcionalnosti koje implementiraju budu što generalnije i što šire upotrebljive. Za sve što je rađeno traženi su svi mogući scenariji koji bi mogli da se pokriju i to je često išlo dotle da osnovna funkcionalnost ne podržava nijedan konkretan scenario već ju je potrebno podesiti da bi mogla bilo šta da radi. Ali zbog toga je aplikacija široko primenjiva i prilagođava se korisničkim zahtevima uz minimalne troškove: postoje osnovne funkcionalnosti koje su upotrebljive u najstandardnijim scenarijima poslovanja, puno funkcionalnosti može brzo da se podesi a za nešto što je manje standardno (ili potpuno nestandardno) uvek je moguće doraditi i prilagoditi. Ovakva filozofija je u skladu sa modernim trendovima razvoja softvera: aplikacije koje podržavaju samo neinteligentne manuelne poslove (recimo, automatizuju preračune ili smeštanje i prenos podataka) su sve manje u fokusu a sve više se težište stavlja na inteligentne sisteme koji umeju na automatizovan način da donose odluke (npr. ponude kupcu popust na artikl koji mu je zanimljiv ili naprave raspodelu proizvodnih resursa u skladu sa trenutnim stanjem i prethodnim analizama). Za ovako nešto, softverski sistem ne samo da mora da bude visoko podesiv već je potrebno da se podešavanja implementiraju po potrebi i u kratkom roku.

Na vrh